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/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); 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 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(); diff --git a/src/main/resources/templates/generator/mapper.xml.vm b/src/main/resources/templates/generator/mapper.xml.vm index 91fe442e..ed2fdf96 100644 --- a/src/main/resources/templates/generator/mapper.xml.vm +++ b/src/main/resources/templates/generator/mapper.xml.vm @@ -5,25 +5,59 @@