tiangong-doc tiangong-doc
首页
  • 天宫体系

    • 前端架构
    • 后端架构
    • 扩展功能
    • 打包部署
    • 更新日志
    • 辅助开发平台 (opens new window)
    • 权限平台部署包下载 (opens new window)
  • 基础组件

    • 工作流引擎(待整理)
    • 跨境加签客户端(待整理)
    • 权限平台(待整理)
  • 数字化工具

    • 数字魔方
    • 数据采集
    • 智能导入
    • 数字员工
    • 规则引擎(开发中)
    • 消息引擎(待开发)
    • 智能导出(待开发)
  • 业务算法

    • 南京业务体检(待整理)
    • 智慧长江(待整理)
  • 识别模型

    • 空箱识别(待整理)
    • 智能客服(待整理)
    • OCR识别(待整理)
    • 车牌识别(待整理)
    • 超市停留识别(待整理)
    • 危险品识别(待开发)
    • 超长车识别(待开发)
    • 车辆靠台(待开发)
    • 车辆占用(待开发)
  • 算法模型(待整理)
  • 风控模型(待整理)
  • 海关规则(待整理)
  • 危险品知识(待整理)
  • 组件设计文档(待整理)
  • 数据服务

    • 商品归类服务(待开发)
    • RECP贸易服务(待开发)
    • 商品价格服务(待开发)
    • 业务申报解答(待开发)
    • 报关单状态查询(待开发)
  • 常用开发工具

    • BASE64编解码工具 (opens new window)
    • MD5编码工具 (opens new window)
    • AES/DES加解密 (opens new window)
    • JWT解码工具 (opens new window)
    • ASCII编解码工具 (opens new window)
    • Unicode编解码工具 (opens new window)
    • UTF-8编解码工具 (opens new window)
    • 字符串编解码工具 (opens new window)
    • 通用进制转换工具 (opens new window)
    • 浮点数十进制转换 (opens new window)
    • 在线JSON解析 (opens new window)
    • 在线JS代码格式化工具 (opens new window)
    • CSS可视化工具 (opens new window)
    • XML格式化工具
    • SQL压缩/格式化工具 (opens new window)
    • JSON/XML在线转换 (opens new window)
    • JSON/YAML在线转换 (opens new window)
    • IP地址查询 (opens new window)
    • HTTP在线接口测试 (opens new window)
    • UUID在线生成器 (opens new window)
    • 随机数生成器 (opens new window)
    • 在线文本比对 (opens new window)
  • 研发标准规范(待整理)
  • 国产化适配
首页
  • 天宫体系

    • 前端架构
    • 后端架构
    • 扩展功能
    • 打包部署
    • 更新日志
    • 辅助开发平台 (opens new window)
    • 权限平台部署包下载 (opens new window)
  • 基础组件

    • 工作流引擎(待整理)
    • 跨境加签客户端(待整理)
    • 权限平台(待整理)
  • 数字化工具

    • 数字魔方
    • 数据采集
    • 智能导入
    • 数字员工
    • 规则引擎(开发中)
    • 消息引擎(待开发)
    • 智能导出(待开发)
  • 业务算法

    • 南京业务体检(待整理)
    • 智慧长江(待整理)
  • 识别模型

    • 空箱识别(待整理)
    • 智能客服(待整理)
    • OCR识别(待整理)
    • 车牌识别(待整理)
    • 超市停留识别(待整理)
    • 危险品识别(待开发)
    • 超长车识别(待开发)
    • 车辆靠台(待开发)
    • 车辆占用(待开发)
  • 算法模型(待整理)
  • 风控模型(待整理)
  • 海关规则(待整理)
  • 危险品知识(待整理)
  • 组件设计文档(待整理)
  • 数据服务

    • 商品归类服务(待开发)
    • RECP贸易服务(待开发)
    • 商品价格服务(待开发)
    • 业务申报解答(待开发)
    • 报关单状态查询(待开发)
  • 常用开发工具

    • BASE64编解码工具 (opens new window)
    • MD5编码工具 (opens new window)
    • AES/DES加解密 (opens new window)
    • JWT解码工具 (opens new window)
    • ASCII编解码工具 (opens new window)
    • Unicode编解码工具 (opens new window)
    • UTF-8编解码工具 (opens new window)
    • 字符串编解码工具 (opens new window)
    • 通用进制转换工具 (opens new window)
    • 浮点数十进制转换 (opens new window)
    • 在线JSON解析 (opens new window)
    • 在线JS代码格式化工具 (opens new window)
    • CSS可视化工具 (opens new window)
    • XML格式化工具
    • SQL压缩/格式化工具 (opens new window)
    • JSON/XML在线转换 (opens new window)
    • JSON/YAML在线转换 (opens new window)
    • IP地址查询 (opens new window)
    • HTTP在线接口测试 (opens new window)
    • UUID在线生成器 (opens new window)
    • 随机数生成器 (opens new window)
    • 在线文本比对 (opens new window)
  • 研发标准规范(待整理)
  • 国产化适配
  • 天宫架构

    • 前端架构

    • 后端架构

      • 后端基础功能

        • 天宫框架简介
        • 用户相关
        • 使用文档
          • 项目管理
            • 新增项目
            • 测试连接
          • 代码生成
            • 生成解决方案
            • 代码生成
          • 增删改查接口文档
            • 新增/修改 -> save
            • 删除
            • 查询列表
            • 分页查询
            • 约定说明
            • 请求参数
            • 导出excel
            • 上传文件
          • 代码名称转换
            • 1.注解
            • 2.子类扩展
          • 操作缓存
          • swagger配置
          • 配置文件加密
        • 增删改查
      • 开发脚本

    • 打包部署

    • 扩展功能

    • 业务组件

    • 国际化

    • 迁移助手

    • 历史版本

    • 更新日志

    • 开发手册

    • 权限平台

  • 基础架构
  • 天宫架构
  • 后端架构
  • 后端基础功能
2024-02-26
目录

使用文档

# 项目管理

代码生成器链接: http://192.168.106.182:6101/#/gen/generator/index

image-20240226160123753

# 新增项目

image-20240226160203299

项目名称: 中文的名字

项目代码: 英文的名字, 后面生成代码的时候会用到

# 测试连接

image-20240226160339920

# 代码生成

# 生成解决方案

image-20240226160454703

image-20240226160514202

生成解决方案的时候, 如果库里面已经有对应的表了, 可以顺便生成对应的实体的增删改查

# 代码生成

点击导入 -> 选择配置的数据源 -> 选择需要生成的表

image-20240226160748091

修改表或包名的配置

点击列表编辑 -> 模块配置(修改包名) -> 配置表体(表头+表体的业务)

image-20240226160908190

image-20240226160931957

下载 -> 将代码文件夹拖进idea

image-20240226170857391

说明:

如果就是单表, 并且没有写复杂sql的情况, xml文件可以不用放

# 增删改查接口文档

# 新增/修改 -> save

接口: /appGen/save

{
    "entity": {
        "id":1394101768454200,
        "iEFlag": "I",
        "createTime": "2023-06-29 19:53:27",
        "price": 85.10,
        "createTimeEnd": null,
        "name": "hello27",
        "gNo": "1",
        "usedFlag": "1",
        "createTimeStart": null,
        "detail": "测试19",
        "custCode": "2"
    },
    "tgTime": 1708935705650,
    "businessType": "INSERT"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

结构说明:

entity: 实体的属性

tgTime: 时间戳

businessType: 业务类型 INSERT / UPDATE, 根据不同的类型传不同的值(前端已经封装好了)

# 删除

接口: /appGen/deleteById

{
    "entity": {
        "id":1394101768454200,
    },
    "tgTime": 1708935705650,
    "businessType": "DELETE"
}
1
2
3
4
5
6
7

# 查询列表

接口: /appGen/selectList

{
	"entity":{
		"id":211
	},
    "tgTime": 1708935705650,
    "businessType": "SELECT"
}
1
2
3
4
5
6
7

entity里面传什么, where条件后面就拼什么

# 分页查询

对于框架封装的selectPageList方法做说明:

# 约定说明

这个方法是一个由框架封装的通用的模板

约定: __queryField

__queryField

name|A.xx|s|=|and

字段|别名|类型|比较符号|连接符号

类型: s字符串 n数字 d日期

比较符号: = > < >= <= != in nin l rl ll isnull isnotnull between

连接符号: and or

# 请求参数

接口: /appGen/selectPageList

{
    "type": "1",
    "paging": {
        "pageSize": 10,
        "pageNum": 1,
        "sortFields": [
            {
                "sortField": "A.price",
                "asc": true
            },
            {
                "sortField": "A.custCode",
                "asc": false
            }
        ]
    },
    "entity": {
        "name": "hello",
        "createTimeStart": "2022-02-15",
        "createTimeEnd": "2023-11-15",
        "__queryField": "name|A.NAME|s|l|and,createTime|A.CREATE_TIME|d|between|and"
    },
    "query": {
        "totalColumn": "",
        "selectColumns": ""
    },
    "tgTime": 13213123,
    "businessType": "SELECT"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

说明:

paging: 分页信息

​ sortFields: 排序数组, 支持多个字段的排序, asc : true 正序, 否则为倒序

query:

​ totalColumn: 这里是一个可以配置汇总的列, 比如price字段, 会计算出来一个总金额

​ selectColumns: 指定查询的字段,小驼峰字段, 多个用逗号隔开 如: myName,myAge -> select my_name, my_age from xxx

# 导出excel

导出查询的数据, 框架封装的方法就是将上面的查询的数据直接导出excel

{
    "type": "1",
    "paging": {
        "pageSize": 10,
        "pageNum": 1,
        "sortField": "price",
        "asc": true
    },
    "entity": {
        
        "createTimeStart": "2023-09-15",
        "createTimeEnd": "2024-5-15",
        "__queryField": "name|A.NAME|s|l|and,createTime|A.CREATE_TIME|d|between|and"
    },
    "query": {
        "totalColumn": "",
        "selectColumns": ""
    },
    "tgTime":13213123,
    "businessType": "EXPORT",
    "excel":{
       "excelName":"测试excel",
        "columns":[
            {"columnCode":"name","columnName":"名字"},
            {"columnCode":"custCode","columnName":"代码"},
            {"columnCode":"price","columnName":"价格"},
            {"columnCode":"iEFlag","columnName":"进出口标记"},
            {"columnCode":"iEFlagName","columnName":"进出口名称"},
            {"columnCode":"createTime","columnName":"创建时间"}
        ]
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

说明:

**businessType: **

EXPORT 同步导出

ASYNC_EXPORT 异步导出, 适合大数据量的导出场景

导出excel还需要向后端指定类名和中文注释

# 上传文件

image-20240226165018936

files: 文件
formData: 
{
    "entity":{
        "usedFlag":"1",
        "price":12.3
    },
    "bussionType":"IMPORT",
    "tgTime":121231
}
-----------------entity----------------------
// 自定义文件上传
@TableField(exist = false)
private List<MultipartFile> files;
---------------controller----------------------
@PostMapping("/upload")
public ResponseMsg upload(AppGenEntity appGenEntity){
	// 可以取出文件 ....
    appGenEntity.getFiles();
    return ResponseMsgUtil.success(10001,null);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

说明:

controller是可以接受一个对象参数, 同时将数据和文件同时接收到

# 代码名称转换

# 1.注解

实际缓存中的key是:

TG_WEB_BASE_CODE:ECIGW_ENT_I_E_FLAG_CN

我们只取冒号后面的那部分

@EciCode("ECIGW_ENT_I_E_FLAG_CN")
private String iEFlag;
1
2

说明:

优点: 简单方便

缺点: 破坏了原始的生成代码, 如果代码重新生成无法直接覆盖

# 2.子类扩展

// AppGenEntity类里面是空的
public class AppGenEntity extends BaseAppGenEntity {

    @Override
    protected void addConvertMap() {

        // 和上面注解效果一样
        convertMap.put(Fields.iEFlag, ()-> "ECIGW_ENT_I_E_FLAG_CN");

        // 自义定Map, 没有缓存, 就固定值, 快速转换
        convertMap.put(Fields.usedFlag, ()-> {
            Map<String,String> map = new HashMap<>();
            map.put("1","有效");
            map.put("0","无效");
            return map;
        });
    }
}    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

说明:

addConvertMap方法是框架提供的

# 操作缓存

如果升级最新, 需要修改代码

2.1.X 之前

废弃
RedisUtil redisUtil;
1
2

当前版本

新的操作方法 
redisUtil.set("k1","v1")  -> TgCacheHelper.set("k1","v1");
1
2
没变
@Cacheable("IAppGenServiceImpl-queryPageList#3600")
1
2

新增使用jvm作为缓存

配置

project:
  cache:
    type: redis  # jvm
1
2
3

# swagger配置

project:
  swagger:
    config:
      -
        packageScan: com.eci.component.sysCacheHelp
        module: 缓存管理
      -
        packageScan: com.eci.component.sysTaskInfo
        module: 任务中心
1
2
3
4
5
6
7
8
9

说明:

packageScan: 指定只扫描具体的包内的controller

module: 该包名的表述, 后面在swagger-ui界面可以选

# 配置文件加密

  1. 加密配置

    private final static String secret = "d1104d7c3b616f0b";
    public static void main1(String[] args) {
            String url = "jdbc:mysql://192.168.100.105:3308/ECI_TG?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=CONVERT_TO_NULL";
            String username = "ECI_TG";
            String password = "ECI_TG_1qaz";
            String redisPassword = "Redis_1qaz";
            System.out.println(AES.encrypt(url,secret));
            System.out.println(AES.encrypt(username,secret));
            System.out.println(AES.encrypt(password,secret));
            System.out.println(AES.encrypt(redisPassword,secret));
    
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
  2. 替换配置文件

      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: mpw:jWzqiSOb81tRagxvtwP5cLKwkuCzTq1Dko05oUynzlEsYVNpFoYF4PlF7ka8Lnoq0obo+Vv0wcmwXhVHS/pFKIg2MhDOL+eD75QOmvI7N5lJiZsyVhiNMCEFjtdMIfL4qOSkXN9r4/oXX8/NQePak36yV+dppgE+RZfJY4XlFAqMz+eNmwVrPih+/ucEb8DC
        username: mpw:R+r95hsVqc/m2idR3yQTHA==
        password: mpw:a2i5Nt1wAW3EV3crvvxJGA==
        type: com.alibaba.druid.pool.DruidDataSource
      redis:
        host: 192.168.106.182
        port: 6379
        database: 10
        password: mpw:pX0zTvDmHD2+8PFqaVqM3Q==
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  3. 添加运行时参数

    java -jar xxx.jar --mpw.key=d1104d7c3b616f0b
    
    1
上次更新: 2024/5/21 14:16:13
用户相关
增删改查

← 用户相关 增删改查→

最近更新
01
EciReport模板导出_Core
09-10
02
EciReport模板导出
09-09
03
Core权限平台接口
07-25
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式