Skip to content

Commit

Permalink
♻️ Refactoring code. 重构代码生成模块适配其他类型数据库
Browse files Browse the repository at this point in the history
  • Loading branch information
lbw committed Aug 28, 2023
1 parent 1c177c4 commit cedb011
Show file tree
Hide file tree
Showing 10 changed files with 105 additions and 69 deletions.
4 changes: 2 additions & 2 deletions db/pig.sql
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ CREATE TABLE `sys_user` (
`mini_openid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '小程序openId',
`qq_openid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'QQ openId',
`gitee_login` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '码云标识',
`osc_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开源中国标识'
`osc_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '开源中国标识',
PRIMARY KEY (`user_id`) USING BTREE,
KEY `user_wx_openid` (`wx_openid`) USING BTREE,
KEY `user_qq_openid` (`qq_openid`) USING BTREE,
Expand All @@ -634,7 +634,7 @@ CREATE TABLE `sys_user` (
-- Records of sys_user
-- ----------------------------
BEGIN;
INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$c/Ae0pRjJtMZg3BnvVpO.eIK6WYWVbKTzqgdy3afR7w.vd.xi3Mgy', '', '17034642999', '/admin/sys-file/s3demo/7ff4ca6b7bf446f3a5a13ac016dc21af.png', '管理员', '管理员', '[email protected]', 4, ' ', 'admin', '2018-04-20 07:15:18', '2023-07-07 14:55:40', '0', '0', NULL, 'oBxPy5E-v82xWGsfzZVzkD3wEX64', NULL, 'log4j', NULL, 1);
INSERT INTO `sys_user` VALUES (1, 'admin', '$2a$10$c/Ae0pRjJtMZg3BnvVpO.eIK6WYWVbKTzqgdy3afR7w.vd.xi3Mgy', '', '17034642999', '/admin/sys-file/s3demo/7ff4ca6b7bf446f3a5a13ac016dc21af.png', '管理员', '管理员', '[email protected]', 4, ' ', 'admin', '2018-04-20 07:15:18', '2023-07-07 14:55:40', '0', '0', NULL, 'oBxPy5E-v82xWGsfzZVzkD3wEX64', NULL, 'log4j', NULL);
COMMIT;

-- ----------------------------
Expand Down
51 changes: 25 additions & 26 deletions db/pig_codegen.sql

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ public class GenTable extends Model<GenTable> {
* 生成方式 0:zip压缩包 1:自定义目录
*/
@Schema(description = "生成方式 0:zip压缩包 1:自定义目录")
private Integer generatorType;
private String generatorType;

/**
* 后端生成路径
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,22 +94,22 @@ public class GenTableColumnEntity extends Model<GenDatasourceConf> {
/**
* 主键 0:否 1:是
*/
private boolean primaryPk;
private String primaryPk;

/**
* 基类字段 0:否 1:是
*/
private boolean baseField;
private String baseField;

/**
* 表单项 0:否 1:是
*/
private boolean formItem;
private String formItem;

/**
* 表单必填 0:否 1:是
*/
private boolean formRequired;
private String formRequired;

/**
* 表单类型
Expand All @@ -124,17 +124,17 @@ public class GenTableColumnEntity extends Model<GenDatasourceConf> {
/**
* 列表项 0:否 1:是
*/
private boolean gridItem;
private String gridItem;

/**
* 列表排序 0:否 1:是
*/
private boolean gridSort;
private String gridSort;

/**
* 查询项 0:否 1:是
*/
private boolean queryItem;
private String queryItem;

/**
* 查询方式
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,10 @@
import com.pig4cloud.pig.codegen.service.GenGroupService;
import com.pig4cloud.pig.codegen.service.GenTableColumnService;
import com.pig4cloud.pig.codegen.service.GenTableService;
import com.pig4cloud.pig.codegen.util.BoolFillEnum;
import com.pig4cloud.pig.codegen.util.CommonColumnFiledEnum;
import com.pig4cloud.pig.codegen.util.GenKit;
import com.pig4cloud.pig.codegen.util.GeneratorFileTypeEnum;
import com.pig4cloud.pig.codegen.util.GeneratorTypeEnum;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand Down Expand Up @@ -157,7 +158,7 @@ public GenTable tableImport(String dsName, String tableName) {
table.setTableComment(MapUtil.getStr(queryTable, "tableComment"));
table.setDbType(MapUtil.getStr(queryTable, "dbType"));
table.setFormLayout(2);
table.setGeneratorType(GeneratorFileTypeEnum.ZIP.ordinal());
table.setGeneratorType(GeneratorTypeEnum.ZIP_DOWNLOAD.getValue());
table.setClassName(NamingCase.toPascalCase(tableName));
table.setModuleName(GenKit.getModuleName(table.getPackageName()));
table.setFunctionName(GenKit.getFunctionName(tableName));
Expand All @@ -177,10 +178,13 @@ public GenTable tableImport(String dsName, String tableName) {
genTableColumnEntity.setFieldComment(MapUtil.getStr(columnMap, "comments"));
genTableColumnEntity.setFieldType(MapUtil.getStr(columnMap, "dataType"));
String columnKey = MapUtil.getStr(columnMap, "columnKey");
genTableColumnEntity.setPrimaryPk(StringUtils.isNotBlank(columnKey) && "PRI".equalsIgnoreCase(columnKey));
genTableColumnEntity.setAutoFill("DEFAULT");
genTableColumnEntity.setFormItem(true);
genTableColumnEntity.setGridItem(true);
genTableColumnEntity.setPrimaryPk((StringUtils.isNotBlank(columnKey) && "PRI".equalsIgnoreCase(columnKey))
? BoolFillEnum.TRUE.getValue() : BoolFillEnum.FALSE.getValue());
genTableColumnEntity.setAutoFill("DEFAULT");
genTableColumnEntity.setFormItem(BoolFillEnum.TRUE.getValue());
genTableColumnEntity.setGridItem(BoolFillEnum.TRUE.getValue());


// 审计字段处理
if (EnumUtil.contains(CommonColumnFiledEnum.class, columnName)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import com.pig4cloud.pig.codegen.entity.GenTable;
Expand Down Expand Up @@ -62,8 +63,6 @@ public class GeneratorServiceImpl implements GeneratorService {

private final GenGroupService genGroupService;

private final GenTemplateService genTemplateService;

/**
* 生成代码zip写出
* @param tableId 表
Expand Down Expand Up @@ -225,21 +224,22 @@ private void setFieldTypeList(Map<String, Object> dataModel, GenTable table) {
// 按字段类型分组,使用 Map 存储不同类型的字段列表
Map<Boolean, List<GenTableColumnEntity>> typeMap = table.getFieldList()
.stream()
.collect(Collectors.partitioningBy(GenTableColumnEntity::isPrimaryPk));
.collect(Collectors
.partitioningBy(columnEntity -> BooleanUtil.toBoolean(columnEntity.getPrimaryPk())));

// 从分组后的 Map 中获取不同类型的字段列表
List<GenTableColumnEntity> primaryList = typeMap.get(true);
List<GenTableColumnEntity> formList = typeMap.get(false)
.stream()
.filter(GenTableColumnEntity::isFormItem)
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getFormItem()))
.collect(Collectors.toList());
List<GenTableColumnEntity> gridList = typeMap.get(false)
.stream()
.filter(GenTableColumnEntity::isGridItem)
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getGridItem()))
.collect(Collectors.toList());
List<GenTableColumnEntity> queryList = typeMap.get(false)
.stream()
.filter(GenTableColumnEntity::isQueryItem)
.filter(columnEntity -> BooleanUtil.toBoolean(columnEntity.getQueryItem()))
.collect(Collectors.toList());

if (CollUtil.isNotEmpty(primaryList)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.pig4cloud.pig.codegen.util;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
* boolean 类型枚举
*
*/

@Getter
@RequiredArgsConstructor
public enum BoolFillEnum {

/**
* true
*/
TRUE("1"),
/**
* false
*/
FALSE("0");

private final String value;

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,38 +16,38 @@ public enum CommonColumnFiledEnum {
/**
* create_by 字段
*/
create_by(false, false, "INSERT", 100),
create_by("0", "0", "INSERT", 100),

/**
* create_time 字段
*/
create_time(false, false, "INSERT", 101),
create_time("0", "0", "INSERT", 101),
/**
* update_by 字段
*/
update_by(false, false, "INSERT_UPDATE", 102),
update_by("0", "0", "INSERT_UPDATE", 102),
/**
* update_time 字段
*/
update_time(false, false, "INSERT_UPDATE", 103),
update_time("0", "0", "INSERT_UPDATE", 103),
/**
* del_flag 字段
*/
del_flag(false, false, "DEFAULT", 104),
del_flag("0", "0", "DEFAULT", 104),
/**
* tenant_id 字段
*/
tenant_id(false, false, "DEFAULT", 105);
tenant_id("0", "0", "DEFAULT", 105);

/**
* 表单是否默认显示
*/
private Boolean formItem;
private String formItem;

/**
* 表格是否默认显示
*/
private Boolean gridItem;
private String gridItem;

/**
* 自动填充策略
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.pig4cloud.pig.codegen.util;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
public enum GeneratorTypeEnum {

/**
* zip压缩包 0
*/
ZIP_DOWNLOAD("0"),
/**
* 自定义目录 1
*/
CUSTOM_DIRECTORY("1");

private final String value;

}

0 comments on commit cedb011

Please sign in to comment.