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)
  • 研发标准规范(待整理)
  • 国产化适配
  • 天宫架构

    • 前端架构

    • 后端架构

    • 打包部署

    • 扩展功能

    • 业务组件

    • 国际化

    • 迁移助手

    • 历史版本

      • 前端架构

      • 后端架构

        • 2.1.X版本使用文档
          • 代码生成器
          • 增删改查
            • 增加方法
            • 删除
            • 修改
            • 查询列表
            • 分页查询
            • 自定义分页查询
          • 代码名称转换
            • 字段过滤
          • 缓存使用
          • 配置文件加密
            • 使用说明
            • 项目演示
    • 更新日志

    • 开发手册

    • 权限平台

  • 基础架构
  • 天宫架构
  • 历史版本
  • 后端架构
2024-02-26
目录

2.1.X版本使用文档

注意: 此版本2024.1.1后不再提供升级, 请使用最新版本

# 代码生成器

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

image-20230128164859649

image-20230128165220541

# 增删改查

# 增加方法

/appGen/insert
{
    "name":"abcd3",
    "custCode":"101",
    "price":16.55,
    "createTime":"2022-12-15"
}
1
2
3
4
5
6
7

# 删除

真删除

/appGen/deleteById
{
    "id":1372075003314177
}
1
2
3
4

假删除, 使用注解@TableLogic

/**
  * 删除标记(0有效, 1删除)
  */
@TableField("del_falg")
@TableLogic
private Integer delFalg;
1
2
3
4
5
6

# 修改

/appGen/updateOneById
{
    "id":1372074954391552,
    "name":"abcde"
}
1
2
3
4
5

# 查询列表

/appGen/selectList
{
    "name":"abc"
}
1
2
3
4

# 分页查询

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

/appGen/selectPageList
{
    "name":"hello",
    "iEFlag":"I,E",
    "createTimeStart":"2022-02-01 16:50:46",
    "createTimeEnd":"2022-02-15 16:50:46",
    "custCode":"1",
    "usedFlag":"0",
    "queryField":"name|l,iEFlag|in,iEFlag|nin,createTime|d,custCode|or,usedFlag|or",
    "pageSize":10,
    "pageNum":1,
    "sortField":"price",
    "asc":true,
    "totalColumn":"price,id", // 非必填
    "selectColumns":"id,name,iEFlag,custCode" // 非必填
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

queryField: 对传入的参数加以说明, 中间用竖线分割, 字段间用逗号隔开

使用这个方法, 前端可以自由的对sql组装

字段 字段说明
name|l name字段采用like%%, (rl: 右边匹配白分号, ll: 左边匹配白分号)
iEFlag|in 传入的是字符串, 中间用逗号隔开, sql-> in (xx,xx,xx)
iEFlag|nin 传入的是字符串, 中间用逗号隔开, sql-> not in (xx,xx,xx)
createTime|d 传入的是一个时间字段, 需要传入时间范围 xxxStart, xxxEnd
custCode|or 多个or条件, sql-> and (xxx = xx or xxx = xx)
name|= / name|!= 等值匹配或不等于
name|nin not in 查询方式(半角逗号分隔)
SELECT id,name,cust_code,used_flag,price,i_e_flag,g_no,create_time,detail FROM app_gen WHERE (name LIKE ? AND create_time BETWEEN ? AND ? AND i_e_flag IN (?,?) AND i_e_flag NOT IN (?,?) AND (cust_code = ? OR used_flag = ?)) ORDER BY price ASC LIMIT ?
1

pageSize: 一页几套

pageNum: 第几页

sortField: 排序字段, 驼峰命名

asc: true升序, false降序

totalColumn: 对字段进行求和汇总, 不是当前页

selectColumns: 只查哪些字段

# 自定义分页查询

service层代码

// 在分页方法前调用
startPage();
// 正常的查询语句
List<AppGenEntity> entities = appGenDao.selectPageList(entity);
// 含有分页信息的pageInfo
return PageHandler.getPageInfo(entities);
1
2
3
4
5
6

# 代码名称转换

在controller层, 返回方法使用 successPlus()

使用1

// rediskey TG_WEB_BASE_CODE:ECIGW_ENT_I_E_FLAG_CN
@EciCode("ECIGW_ENT_I_E_FLAG") //redis里面的key, 这里是去头去尾的
private String iEFlag;
1
2
3

使用2

Map<String,String> map = new HashMap<>();
map.put(AppGenEntity.Fields.custCode,"ECIGW_BASE_TRANSAC");
return ResponseMsgUtil.successPlus(10001, appGenService.selectOneById(entity.getId()),map);
1
2
3

# 字段过滤

如果不做过滤, 返回给前端的字段将是整个实体类的所有字段, 有时候只想返回部分字段给前端

public ResponseMsg selectList(@RequestBody AppGenEntity entity){
    List<? extends Map<?, ?>> maps = FieldFilterUtils.filterFields(appGenService.selectList(entity), true,
                                                                   AppGenEntity::getId,
                                                                   AppGenEntity::getgNo,
                                                                   AppGenEntity::getiEFlag,
                                                                   AppGenEntity::getName,
                                                                   AppGenEntity::getPrice
                                                                  );
    return ResponseMsgUtil.successPlus(10001,maps);
}
1
2
3
4
5
6
7
8
9
10

# 缓存使用

使用注解@Cacheable

框架对@Cacheable注解增强过, 只需要填入字符串(redis-key), 框架自动加入参数作为key的一部分

#120表示有效期 120秒, 不写#120默认 2小时

#120   ->  有效期120秒

@Override
@Cacheable("IAppGenServiceImpl-redisCacheTest#120")
public List<AppGenEntity> redisCacheTest(AppGenEntity entity) {
return appGenDao.selectPageList(entity);
}
1
2
3
4
5
6
7

# 配置文件加密

# 使用说明

背景: 项目部署上线后, 配置文件中的数据库连接信息不能明文暴露, 需要做加密处理, 框架提供了加密的解决方案

使用postman或浏览器

GET请求
127.0.0.1:端口/secret?str=明文
返回:
{
    "encryptStr": "mpw:98Qz2/UQSWapzO3qcTi7UdaUjyDJC6GnScs4pq7mcho=",
    "vmArgs": "--mpw.key=d1104d7c3b616f0b"
}
1
2
3
4
5
6
7

参数说明:

encryptStr: 密文

vmArgs: 项目重新启动的时候, 给虚拟机添加的参数

# 项目演示

  1. 先将项目运行起来, 保证项目能正常启动
  2. 原来配置文件: application-dev.yml
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.100.105:3308/ECI_TIANGONG?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=CONVERT_TO_NULL
    username: ECI_TIANGONG
    password: ECI_TIANGONG_1qaz
1
2
3
4
5
  1. 现在要对密码加密
GET请求
127.0.0.1:5005/secret?str=ECI_TIANGONG_1qaz
返回:
{
    "encryptStr": "mpw:0qVZVrUwrMA8f09UVSqh2rNMH241T5cSSYJ5eYZFprY=",
    "vmArgs": "--mpw.key=d1104d7c3b616f0b"
}
1
2
3
4
5
6
7
  1. 修改后的配置文件
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.100.105:3308/ECI_TIANGONG?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=CONVERT_TO_NULL
    username: ECI_TIANGONG
    password: mpw:0qVZVrUwrMA8f09UVSqh2rNMH241T5cSSYJ5eYZFprY=
1
2
3
4
5
  1. 项目启动, 添加项目参数
nohup java -jar xxxxx.jar --mpw.key=xxxx > /dev/null 2>&1 &
1
  1. 使用这种方式, 可以对application.yml中的各种参数加密, 如redis的url, ip, 密码等加密
上次更新: 2024/5/21 14:16:13
前端常见问题
天宫更新记录_202403

← 前端常见问题 天宫更新记录_202403→

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