From 3356a63092709bb93affcb89a17bcfd91cda7f04 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Tue, 30 Jul 2024 18:20:35 +0800 Subject: [PATCH 1/5] =?UTF-8?q?refactor:=20mapper.xml=20=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/generator/mapper.xml.vm | 58 ++++++++++++++----- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/src/main/resources/templates/generator/mapper.xml.vm b/src/main/resources/templates/generator/mapper.xml.vm index 91fe442e..55a33559 100644 --- a/src/main/resources/templates/generator/mapper.xml.vm +++ b/src/main/resources/templates/generator/mapper.xml.vm @@ -5,25 +5,53 @@ From 04d83232a7a74aa74573495ed6811f9484b52321 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Wed, 31 Jul 2024 07:45:02 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=E4=BB=A3=E7=A0=81=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=85=A8=E5=B1=80=E5=8F=98=E9=87=8F=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GeneratorServiceImpl.java | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java b/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java index 50713e67..66d26dff 100644 --- a/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java @@ -140,18 +140,19 @@ public class GeneratorServiceImpl implements GeneratorService { /** * 创建默认字段配置 * - * @param tableColumn 表字段元数据 + * @param columnMetaData 表字段元数据 * @return */ - private GenFieldConfig createDefaultFieldConfig(ColumnMetaData tableColumn) { + private GenFieldConfig createDefaultFieldConfig(ColumnMetaData columnMetaData) { GenFieldConfig fieldConfig = new GenFieldConfig(); - fieldConfig.setColumnName(tableColumn.getColumnName()); - fieldConfig.setColumnType(tableColumn.getDataType()); - fieldConfig.setFieldComment(tableColumn.getColumnComment()); - fieldConfig.setFieldName(StrUtil.toCamelCase(tableColumn.getColumnName())); - fieldConfig.setIsRequired("YES".equals(tableColumn.getIsNullable()) ? 1 : 0); + fieldConfig.setColumnName(columnMetaData.getColumnName()); + fieldConfig.setColumnType(columnMetaData.getDataType()); + fieldConfig.setFieldComment(columnMetaData.getColumnComment()); + fieldConfig.setFieldName(StrUtil.toCamelCase(columnMetaData.getColumnName())); + fieldConfig.setIsRequired("YES".equals(columnMetaData.getIsNullable()) ? 1 : 0); fieldConfig.setFormType(FormTypeEnum.INPUT); fieldConfig.setQueryType(QueryTypeEnum.EQ); + fieldConfig.setMaxLength(columnMetaData.getCharacterMaximumLength()); return fieldConfig; } @@ -316,13 +317,27 @@ public class GeneratorServiceImpl implements GeneratorService { bindMap.put("businessName", genConfig.getBusinessName()); bindMap.put("fieldConfigs", fieldConfigs); + boolean hasLocalDateTime = false; + boolean hasBigDecimal = false; + boolean hasRequiredField = false; + for (GenFieldConfig fieldConfig : fieldConfigs) { - bindMap.put("hasLocalDateTime", "LocalDateTime".equals(fieldConfig.getFieldType())); - bindMap.put("hasBigDecimal", "BigDecimal".equals(fieldConfig.getFieldType())); - bindMap.put("hasRequiredField", ObjectUtil.equals(fieldConfig.getIsRequired(), 1)); + if ("LocalDateTime".equals(fieldConfig.getFieldType())) { + hasLocalDateTime = true; + } + if ("BigDecimal".equals(fieldConfig.getFieldType())) { + hasBigDecimal = true; + } + if (ObjectUtil.equals(fieldConfig.getIsRequired(), 1)) { + hasRequiredField = true; + } fieldConfig.setTsType(JavaTypeEnum.getTsTypeByJavaType(fieldConfig.getFieldType())); } + bindMap.put("hasLocalDateTime", hasLocalDateTime); + bindMap.put("hasBigDecimal", hasBigDecimal); + bindMap.put("hasRequiredField", hasRequiredField); + TemplateEngine templateEngine = TemplateUtil.createEngine(new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH)); Template template = templateEngine.getTemplate(templateConfig.getTemplatePath()); String content = template.render(bindMap); From 837dac6e172f5fb63ed58aeda34229919485cbe2 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Wed, 31 Jul 2024 07:46:14 +0800 Subject: [PATCH 3/5] =?UTF-8?q?refactor:=20=E5=AE=8C=E5=96=84=20view=20?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E6=A8=A1=E6=9D=BF=EF=BC=8C?= =?UTF-8?q?rules=20=E5=8A=A8=E6=80=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/generator/index.vue.vm | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/main/resources/templates/generator/index.vue.vm b/src/main/resources/templates/generator/index.vue.vm index f2e1bf63..998fd4f4 100644 --- a/src/main/resources/templates/generator/index.vue.vm +++ b/src/main/resources/templates/generator/index.vue.vm @@ -157,9 +157,6 @@ const queryParams = reactive<${entityName}PageQuery>({ pageNum: 1, pageSize: 10, - keywords: '', - name: '', - code: '', }); // $!{businessName}表格数据 @@ -170,16 +167,19 @@ title: "", visible: false, }); - // $!{businessName}表单 - const formData = reactive<${entityName}Form>({ - keywords: '', - name: '', - code: '', - }); + // $!{businessName}表单数据 + const formData = reactive<${entityName}Form>({}); + + // $!{businessName}表单校验规则 const rules = reactive({ - name: [{ required: true, message: "请输入$!{businessName}名称", trigger: "blur" }], - code: [{ required: true, message: "请输入$!{businessName}编码", trigger: "blur" }], + #if($fieldConfigs) + #foreach($fieldConfig in ${fieldConfigs}) + #if($fieldConfig.isShowInForm && $fieldConfig.isRequired) + ${fieldConfig.fieldName}: [{ required: true, message: "请输入${fieldConfig.fieldComment}", trigger: "blur" }], + #end + #end + #end }); /** 查询$!{businessName} */ @@ -194,6 +194,7 @@ loading.value = false; }); } + /** 重置$!{businessName}查询 */ function handleResetQuery() { queryFormRef.value!.resetFields(); From 56ab702568b2ce72ecfaae166a1e790b1ed08cc8 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Wed, 31 Jul 2024 07:46:57 +0800 Subject: [PATCH 4/5] =?UTF-8?q?refactor:=20=E5=AE=8C=E5=96=84=20mapper.xml?= =?UTF-8?q?=20=E6=97=A5=E6=9C=9F=E6=9D=A1=E4=BB=B6=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/generator/mapper.xml.vm | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/resources/templates/generator/mapper.xml.vm b/src/main/resources/templates/generator/mapper.xml.vm index 55a33559..ed2fdf96 100644 --- a/src/main/resources/templates/generator/mapper.xml.vm +++ b/src/main/resources/templates/generator/mapper.xml.vm @@ -9,7 +9,7 @@ #set ($fields = []) #foreach($fieldConfig in ${fieldConfigs}) #if($fieldConfig.isShowInList) - #set ($discard = $fields.add(${fieldConfig.columnName})) + #set ($discard = $fields.add(${fieldConfig.columnName})) #end #end #foreach($field in $fields) @@ -22,32 +22,38 @@ #if($fieldConfigs) #foreach($fieldConfig in ${fieldConfigs}) #if($fieldConfig.isShowInQuery) - + #set ($queryType = ${fieldConfig.queryType}) #if($queryType == "EQ") - AND ${fieldConfig.columnName} = #{queryParams.${fieldConfig.fieldName}} + AND ${fieldConfig.columnName} = #{queryParams.${fieldConfig.fieldName}} #elseif($queryType == "LIKE") - AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}, '%') + AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}, '%') #elseif($queryType == "IN") - AND ${fieldConfig.columnName} IN + + AND ${fieldConfig.columnName} IN #{item} + #elseif($queryType == "BETWEEN") - AND ${fieldConfig.columnName} BETWEEN #{queryParams.${fieldConfig.fieldName}Start} AND #{queryParams.${fieldConfig.fieldName}End} + #if(${fieldConfig.fieldType} == "LocalDateTime") + AND ${fieldConfig.columnName} BETWEEN STR_TO_DATE(#{queryParams.${fieldConfig.fieldName}Start}, '%Y-%m-%d %H:%i:%s') AND STR_TO_DATE(#{queryParams.${fieldConfig.fieldName}End}, '%Y-%m-%d %H:%i:%s') + #else + AND ${fieldConfig.columnName} BETWEEN #{queryParams.${fieldConfig.fieldName}Start} AND #{queryParams.${fieldConfig.fieldName}End} + #end #elseif($queryType == "GT") - AND ${fieldConfig.columnName} > #{queryParams.${fieldConfig.fieldName}} + AND ${fieldConfig.columnName} > #{queryParams.${fieldConfig.fieldName}} #elseif($queryType == "GE") - AND ${fieldConfig.columnName} >= #{queryParams.${fieldConfig.fieldName}} + AND ${fieldConfig.columnName} >= #{queryParams.${fieldConfig.fieldName}} #elseif($queryType == "LT") - AND ${fieldConfig.columnName} < #{queryParams.${fieldConfig.fieldName}} + AND ${fieldConfig.columnName} < #{queryParams.${fieldConfig.fieldName}} #elseif($queryType == "LE") - AND ${fieldConfig.columnName} <= #{queryParams.${fieldConfig.fieldName}} + AND ${fieldConfig.columnName} <= #{queryParams.${fieldConfig.fieldName}} #elseif($queryType == "NE") - AND ${fieldConfig.columnName} != #{queryParams.${fieldConfig.fieldName}} + AND ${fieldConfig.columnName} != #{queryParams.${fieldConfig.fieldName}} #elseif($queryType == "LIKE_LEFT") - AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}) + AND ${fieldConfig.columnName} LIKE CONCAT('%', #{queryParams.${fieldConfig.fieldName}}) #elseif($queryType == "LIKE_RIGHT") - AND ${fieldConfig.columnName} LIKE CONCAT(#{queryParams.${fieldConfig.fieldName}}, '%') + AND ${fieldConfig.columnName} LIKE CONCAT(#{queryParams.${fieldConfig.fieldName}}, '%') #end - + #end #end #end From 433cb6133ffe337a324936c8854996d95edeaee6 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Wed, 31 Jul 2024 07:47:20 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=9C=80=E5=A4=A7=E9=95=BF=E5=BA=A6=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/youlai/system/model/entity/GenFieldConfig.java | 2 +- .../com/youlai/system/model/form/GenConfigForm.java | 3 +++ src/main/resources/templates/generator/form.java.vm | 10 +++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java b/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java index 93e1b2e1..75a3d542 100644 --- a/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java +++ b/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java @@ -40,7 +40,7 @@ public class GenFieldConfig extends BaseEntity { /** * 字段长度 */ - private String columnLength; + private Integer maxLength; /** * 字段名称 diff --git a/src/main/java/com/youlai/system/model/form/GenConfigForm.java b/src/main/java/com/youlai/system/model/form/GenConfigForm.java index b761005d..98bd07bf 100644 --- a/src/main/java/com/youlai/system/model/form/GenConfigForm.java +++ b/src/main/java/com/youlai/system/model/form/GenConfigForm.java @@ -75,6 +75,9 @@ public class GenConfigForm { @Schema(description = "是否必填") private Integer isRequired; + @Schema(description = "最大长度") + private Integer maxLength; + @Schema(description = "表单类型") private FormTypeEnum formType; diff --git a/src/main/resources/templates/generator/form.java.vm b/src/main/resources/templates/generator/form.java.vm index aa4767f0..1787e941 100644 --- a/src/main/resources/templates/generator/form.java.vm +++ b/src/main/resources/templates/generator/form.java.vm @@ -33,6 +33,9 @@ public class ${entityName}Form implements Serializable { #if($fieldConfigs) #foreach($fieldConfig in ${fieldConfigs}) #if($fieldConfig.isShowInForm) + #if("$!fieldConfig.fieldComment" != "") + @Schema(description = "${fieldConfig.fieldComment}") + #end #if($fieldConfig.isRequired) #if($fieldConfig.fieldType == 'String') @NotBlank(message = "$fieldConfig.fieldComment不能为空") @@ -40,10 +43,11 @@ public class ${entityName}Form implements Serializable { @NotNull(message = "$fieldConfig.fieldComment不能为空") #end #end - #if("$!fieldConfig.fieldComment" != "") - @Schema(description = "${fieldConfig.fieldComment}") - #end + #if($fieldConfig.maxLength) + @Size(max=$fieldConfig.maxLength, message="$fieldConfig.fieldComment长度不能超过${fieldConfig.maxLength}个字符") + #end private ${fieldConfig.fieldType} ${fieldConfig.fieldName}; + #end #end #end