From 888882943759a1da93062d1bd85647dbbce86480 Mon Sep 17 00:00:00 2001 From: ray <1490493387@qq.com> Date: Sun, 28 Jul 2024 23:33:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=20?= =?UTF-8?q?Beta=20=E5=85=AC=E6=B5=8B=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/property/GeneratorProperties.java | 36 +- .../controller/GeneratorController.java | 9 +- .../system/controller/SysUserController.java | 2 +- .../com/youlai/system/enums/FormTypeEnum.java | 16 +- .../com/youlai/system/enums/JavaTypeEnum.java | 84 +++++ .../youlai/system/enums/QueryTypeEnum.java | 41 +-- .../filter/CaptchaValidationFilter.java | 2 +- .../system/filter/JwtValidationFilter.java | 2 +- .../youlai/system/mapper/DatabaseMapper.java | 3 +- .../system/model/entity/GenFieldConfig.java | 12 +- .../system/model/form/GenConfigForm.java | 2 +- .../youlai/system/model/vo/TableColumnVO.java | 34 -- .../youlai/system/model/vo/TablePageVO.java | 2 +- .../plugin/syslog/aspect/LogAspect.java | 4 +- .../exception/MyAccessDeniedHandler.java | 2 +- .../exception/MyAuthenticationEntryPoint.java | 2 +- .../system/service/GenConfigService.java | 8 - .../system/service/GeneratorService.java | 6 +- .../service/impl/GeneratorServiceImpl.java | 99 ++++-- .../service/impl/SysLogServiceImpl.java | 2 +- .../service/impl/SysUserServiceImpl.java | 2 +- .../system/{common => }/util/DateUtils.java | 2 +- .../system/{common => }/util/ExcelUtils.java | 2 +- .../system/{common => }/util/IPUtils.java | 2 +- .../{common => }/util/ResponseUtils.java | 2 +- src/main/resources/application-generator.yml | 9 +- src/main/resources/mapper/DatabaseMapper.xml | 2 +- .../resources/mapper/GenFieldConfigMapper.xml | 21 -- .../resources/templates/generator/api.ts.vm | 114 +++---- .../templates/generator/controller.java.vm | 20 +- .../templates/generator/converter.java.vm | 2 +- .../templates/generator/entity.java.vm | 2 +- .../templates/generator/form.java.vm | 6 +- .../templates/generator/index.vue.vm | 314 ++++++++++++------ .../templates/generator/mapper.java.vm | 4 +- .../templates/generator/mapper.xml.vm | 2 +- .../templates/generator/query.java.vm | 8 +- .../templates/generator/service.java.vm | 22 +- .../templates/generator/serviceImpl.java.vm | 26 +- .../resources/templates/generator/vo.java.vm | 10 +- 40 files changed, 556 insertions(+), 384 deletions(-) create mode 100644 src/main/java/com/youlai/system/enums/JavaTypeEnum.java delete mode 100644 src/main/java/com/youlai/system/model/vo/TableColumnVO.java rename src/main/java/com/youlai/system/{common => }/util/DateUtils.java (98%) rename src/main/java/com/youlai/system/{common => }/util/ExcelUtils.java (91%) rename src/main/java/com/youlai/system/{common => }/util/IPUtils.java (99%) rename src/main/java/com/youlai/system/{common => }/util/ResponseUtils.java (97%) diff --git a/src/main/java/com/youlai/system/config/property/GeneratorProperties.java b/src/main/java/com/youlai/system/config/property/GeneratorProperties.java index 126680b8..c4325645 100644 --- a/src/main/java/com/youlai/system/config/property/GeneratorProperties.java +++ b/src/main/java/com/youlai/system/config/property/GeneratorProperties.java @@ -19,13 +19,34 @@ import java.util.Map; @Data public class GeneratorProperties { + + /** + * 默认配置 + */ + private DefaultConfig defaultConfig ; + + /** + * 模板配置 + */ private Map templateConfigs = MapUtil.newHashMap(true); + + /** + * 后端应用名 + */ + + private String backendAppName; + + /** + * 前端应用名 + */ + private String frontendAppName; + /** * 模板配置 */ @Data - public static class TemplateConfig{ + public static class TemplateConfig { private String templatePath; @@ -34,7 +55,18 @@ public class GeneratorProperties { /** * 文件扩展名,如 .java */ - private String extension= FileNameUtil.EXT_JAVA; + private String extension = FileNameUtil.EXT_JAVA; + + } + + /** + * 默认配置 + */ + @Data + public static class DefaultConfig { + + private String author; + } diff --git a/src/main/java/com/youlai/system/controller/GeneratorController.java b/src/main/java/com/youlai/system/controller/GeneratorController.java index cdf35a58..82754898 100644 --- a/src/main/java/com/youlai/system/controller/GeneratorController.java +++ b/src/main/java/com/youlai/system/controller/GeneratorController.java @@ -3,7 +3,6 @@ package com.youlai.system.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.youlai.system.common.result.PageResult; import com.youlai.system.common.result.Result; -import com.youlai.system.model.bo.TableMetaData; import com.youlai.system.model.form.GenConfigForm; import com.youlai.system.model.query.TablePageQuery; import com.youlai.system.model.vo.GeneratorPreviewVO; @@ -33,18 +32,18 @@ public class GeneratorController { @Operation(summary = "获取数据表分页列表") @GetMapping("/table/page") - public PageResult getTablePage( + public PageResult getTablePage( TablePageQuery queryParams ) { - Page result = generatorService.getTablePage(queryParams); + Page result = generatorService.getTablePage(queryParams); return PageResult.success(result); } @Operation(summary = "获取代码生成配置") @GetMapping("/{tableName}/config") - public Result getGenConfig( + public Result getGenConfigFormData( @Parameter(description = "表名", example = "sys_user") @PathVariable String tableName) { - GenConfigForm formData = generatorService.getGenConfig(tableName); + GenConfigForm formData = generatorService.getGenConfigFormData(tableName); return Result.success(formData); } diff --git a/src/main/java/com/youlai/system/controller/SysUserController.java b/src/main/java/com/youlai/system/controller/SysUserController.java index 9fe8faa5..d2b1cd27 100644 --- a/src/main/java/com/youlai/system/controller/SysUserController.java +++ b/src/main/java/com/youlai/system/controller/SysUserController.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.youlai.system.common.result.PageResult; import com.youlai.system.common.result.Result; -import com.youlai.system.common.util.ExcelUtils; +import com.youlai.system.util.ExcelUtils; import com.youlai.system.enums.LogModuleEnum; import com.youlai.system.model.dto.UserImportDTO; import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit; diff --git a/src/main/java/com/youlai/system/enums/FormTypeEnum.java b/src/main/java/com/youlai/system/enums/FormTypeEnum.java index 6383934a..349cbd2d 100644 --- a/src/main/java/com/youlai/system/enums/FormTypeEnum.java +++ b/src/main/java/com/youlai/system/enums/FormTypeEnum.java @@ -32,20 +32,20 @@ public enum FormTypeEnum implements IBaseEnum { */ RADIO(3, "单选框"), + /** + * 复选框 + */ + CHECK_BOX(4, "复选框"), + /** * 数字输入框 */ - INPUT_NUMBER(4, "数字输入框"), + INPUT_NUMBER(5, "数字输入框"), /** * 开关 */ - SWITCH(5, "开关"), - - /** - * 复选框 - */ - CHECK_BOX(6, "复选框"), + SWITCH(6, "开关"), /** * 文本域 @@ -60,7 +60,7 @@ public enum FormTypeEnum implements IBaseEnum { /** * 日期框 */ - DATE(9, "日期框"),; + DATE(9, "日期框"); // Mybatis-Plus 提供注解表示插入数据库时插入该值 diff --git a/src/main/java/com/youlai/system/enums/JavaTypeEnum.java b/src/main/java/com/youlai/system/enums/JavaTypeEnum.java new file mode 100644 index 00000000..52bed42f --- /dev/null +++ b/src/main/java/com/youlai/system/enums/JavaTypeEnum.java @@ -0,0 +1,84 @@ +package com.youlai.system.enums; + +import lombok.Getter; + +import java.util.HashMap; +import java.util.Map; + +/** + * 表单类型枚举 + * + * @author Ray + * @since 2.10.0 + */ +@Getter +public enum JavaTypeEnum { + + VARCHAR("varchar", "String", "string"), + CHAR("char", "String", "string"), + BLOB("blob", "byte[]", "Uint8Array"), + TEXT("text", "String", "string"), + JSON("json", "String", "any"), + INTEGER("int", "Integer", "number"), + TINYINT("tinyint", "Integer", "number"), + SMALLINT("smallint", "Integer", "number"), + MEDIUMINT("mediumint", "Integer", "number"), + BIGINT("bigint", "Long", "bigint"), + FLOAT("float", "Float", "number"), + DOUBLE("double", "Double", "number"), + DECIMAL("decimal", "BigDecimal", "number"), + DATE("date", "LocalDate", "Date"), + DATETIME("datetime", "LocalDateTime", "Date"); + + // 数据库类型 + private final String dbType; + // Java类型 + private final String javaType; + // TypeScript类型 + private final String tsType; + + // 数据库类型和Java类型的映射 + private static final Map typeMap = new HashMap<>(); + + // 初始化映射关系 + static { + for (JavaTypeEnum javaTypeEnum : JavaTypeEnum.values()) { + typeMap.put(javaTypeEnum.getDbType(), javaTypeEnum); + } + } + + JavaTypeEnum(String dbType, String javaType, String tsType) { + this.dbType = dbType; + this.javaType = javaType; + this.tsType = tsType; + } + + /** + * 根据数据库类型获取对应的Java类型 + * + * @param dbType 数据库类型 + * @return 对应的Java类型 + */ + public static String getJavaTypeByDbType(String dbType) { + JavaTypeEnum javaTypeEnum = typeMap.get(dbType); + if (javaTypeEnum != null) { + return javaTypeEnum.getJavaType(); + } + return null; + } + + /** + * 根据Java类型获取对应的TypeScript类型 + * + * @param javaType Java类型 + * @return 对应的TypeScript类型 + */ + public static String getTsTypeByJavaType(String javaType) { + for (JavaTypeEnum javaTypeEnum : JavaTypeEnum.values()) { + if (javaTypeEnum.getJavaType().equals(javaType)) { + return javaTypeEnum.getTsType(); + } + } + return null; + } +} diff --git a/src/main/java/com/youlai/system/enums/QueryTypeEnum.java b/src/main/java/com/youlai/system/enums/QueryTypeEnum.java index 024591e5..c6e15470 100644 --- a/src/main/java/com/youlai/system/enums/QueryTypeEnum.java +++ b/src/main/java/com/youlai/system/enums/QueryTypeEnum.java @@ -17,38 +17,39 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public enum QueryTypeEnum implements IBaseEnum { - + /** 等于 */ EQ(1, "="), + /** 模糊匹配 */ + LIKE(2, "LIKE '%s%'"), - NE(2, "!="), + /** 包含 */ + IN(3, "IN"), + /** 范围 */ + BETWEEN(4, "BETWEEN"), - GT(3, ">"), + /** 大于 */ + GT(5, ">"), + /** 大于等于 */ + GE(6, ">="), - GE(4, ">="), + /** 小于 */ + LT(7, "<"), - LT(5, "<"), + /** 小于等于 */ + LE(8, "<="), - LE(6, "<="), + /** 不等于 */ + NE(9, "!="), - BETWEEN(7, "BETWEEN"), + /** 左模糊匹配 */ + LIKE_LEFT(10, "LIKE '%s'"), - LIKE(8, "LIKE '%s%'"), + /** 右模糊匹配 */ + LIKE_RIGHT(11, "LIKE 's%'"); - LIKE_LEFT(9, "LIKE '%s'"), - - LIKE_RIGHT(10, "LIKE 's%'"), - - IN(11, "IN"), - - NOT_IN(12, "NOT IN"), - - IS_NULL(13, "IS NULL"), - - IS_NOT_NULL(14, "IS NOT NULL") - ; // 存储在数据库中的枚举属性值 @EnumValue diff --git a/src/main/java/com/youlai/system/filter/CaptchaValidationFilter.java b/src/main/java/com/youlai/system/filter/CaptchaValidationFilter.java index 310c59b3..291570ba 100644 --- a/src/main/java/com/youlai/system/filter/CaptchaValidationFilter.java +++ b/src/main/java/com/youlai/system/filter/CaptchaValidationFilter.java @@ -4,7 +4,7 @@ import cn.hutool.captcha.generator.CodeGenerator; import cn.hutool.core.util.StrUtil; import com.youlai.system.common.constant.SecurityConstants; import com.youlai.system.common.result.ResultCode; -import com.youlai.system.common.util.ResponseUtils; +import com.youlai.system.util.ResponseUtils; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; diff --git a/src/main/java/com/youlai/system/filter/JwtValidationFilter.java b/src/main/java/com/youlai/system/filter/JwtValidationFilter.java index 1a5f69b2..f541083a 100644 --- a/src/main/java/com/youlai/system/filter/JwtValidationFilter.java +++ b/src/main/java/com/youlai/system/filter/JwtValidationFilter.java @@ -8,7 +8,7 @@ import cn.hutool.jwt.JWTUtil; import com.youlai.system.common.constant.SecurityConstants; import com.youlai.system.common.result.ResultCode; import com.youlai.system.security.util.JwtUtils; -import com.youlai.system.common.util.ResponseUtils; +import com.youlai.system.util.ResponseUtils; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; diff --git a/src/main/java/com/youlai/system/mapper/DatabaseMapper.java b/src/main/java/com/youlai/system/mapper/DatabaseMapper.java index 9ce548a9..870c0119 100644 --- a/src/main/java/com/youlai/system/mapper/DatabaseMapper.java +++ b/src/main/java/com/youlai/system/mapper/DatabaseMapper.java @@ -6,7 +6,6 @@ import com.youlai.system.model.bo.ColumnMetaData; import com.youlai.system.model.bo.TableMetaData; import com.youlai.system.model.entity.SysDept; import com.youlai.system.model.query.TablePageQuery; -import com.youlai.system.model.vo.TableColumnVO; import com.youlai.system.model.vo.TablePageVO; import org.apache.ibatis.annotations.Mapper; @@ -23,7 +22,7 @@ import java.util.List; public interface DatabaseMapper extends BaseMapper { - Page getTablePage(Page page, TablePageQuery queryParams); + Page getTablePage(Page page, TablePageQuery queryParams); List getTableColumns(String tableName); 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 ee48674b..bb8b0d07 100644 --- a/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java +++ b/src/main/java/com/youlai/system/model/entity/GenFieldConfig.java @@ -1,7 +1,9 @@ package com.youlai.system.model.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.youlai.system.common.base.BaseEntity; import com.youlai.system.enums.FormTypeEnum; import com.youlai.system.enums.QueryTypeEnum; @@ -53,7 +55,7 @@ public class GenFieldConfig extends BaseEntity { /** * 字段描述 */ - private String comment; + private String fieldComment; /** * 表单类型 @@ -86,4 +88,12 @@ public class GenFieldConfig extends BaseEntity { private Integer isRequired; + /** + * TypeScript类型 + */ + @TableField(exist = false) + @JsonIgnore + private String tsType; + + } \ No newline at end of file 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 c212c0a2..3f03aec1 100644 --- a/src/main/java/com/youlai/system/model/form/GenConfigForm.java +++ b/src/main/java/com/youlai/system/model/form/GenConfigForm.java @@ -61,7 +61,7 @@ public class GenConfigForm { private String fieldType; @Schema(description = "字段描述") - private String comment; + private String fieldComment; @Schema(description = "是否在列表显示") private Integer isShowInList; diff --git a/src/main/java/com/youlai/system/model/vo/TableColumnVO.java b/src/main/java/com/youlai/system/model/vo/TableColumnVO.java deleted file mode 100644 index 8559c6d4..00000000 --- a/src/main/java/com/youlai/system/model/vo/TableColumnVO.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.youlai.system.model.vo; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -@Schema(description = "数据表字段VO") -@Data -public class TableColumnVO { - - @Schema(description = "字段名称", example = "id") - private String columnName; - - @Schema(description = "字段类型", example = "bigint") - private String dataType; - - @Schema(description = "字段描述", example = "主键") - private String columnComment; - - @Schema(description = "字段长度", example = "20") - private Integer characterMaximumLength; - - @Schema(description = "是否主键(1-是 0-否)", example = "1") - private Integer isPrimaryKey; - - @Schema(description = "是否可为空(1-是 0-否)", example = "1") - private String isNullable; - - @Schema(description = "字符集", example = "utf8mb4") - private String characterSetName; - - @Schema(description = "字符集排序规则", example = "utf8mb4_general_ci") - private String collationName; - -} diff --git a/src/main/java/com/youlai/system/model/vo/TablePageVO.java b/src/main/java/com/youlai/system/model/vo/TablePageVO.java index 8c709831..c4e3b4d2 100644 --- a/src/main/java/com/youlai/system/model/vo/TablePageVO.java +++ b/src/main/java/com/youlai/system/model/vo/TablePageVO.java @@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -@Schema(description = "数据表VO") +@Schema(description = "表视图对象") @Data public class TablePageVO { diff --git a/src/main/java/com/youlai/system/plugin/syslog/aspect/LogAspect.java b/src/main/java/com/youlai/system/plugin/syslog/aspect/LogAspect.java index 5c8d682b..f103766c 100644 --- a/src/main/java/com/youlai/system/plugin/syslog/aspect/LogAspect.java +++ b/src/main/java/com/youlai/system/plugin/syslog/aspect/LogAspect.java @@ -3,12 +3,10 @@ package com.youlai.system.plugin.syslog.aspect; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.TimeInterval; import cn.hutool.core.util.StrUtil; -import cn.hutool.http.useragent.Browser; -import cn.hutool.http.useragent.OS; import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgentUtil; import com.youlai.system.common.constant.SecurityConstants; -import com.youlai.system.common.util.IPUtils; +import com.youlai.system.util.IPUtils; import com.youlai.system.model.entity.SysLog; import com.youlai.system.plugin.syslog.annotation.LogAnnotation; import com.youlai.system.security.util.SecurityUtils; diff --git a/src/main/java/com/youlai/system/security/exception/MyAccessDeniedHandler.java b/src/main/java/com/youlai/system/security/exception/MyAccessDeniedHandler.java index 1da85cd7..484b24ee 100644 --- a/src/main/java/com/youlai/system/security/exception/MyAccessDeniedHandler.java +++ b/src/main/java/com/youlai/system/security/exception/MyAccessDeniedHandler.java @@ -1,7 +1,7 @@ package com.youlai.system.security.exception; import com.youlai.system.common.result.ResultCode; -import com.youlai.system.common.util.ResponseUtils; +import com.youlai.system.util.ResponseUtils; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.web.access.AccessDeniedHandler; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/youlai/system/security/exception/MyAuthenticationEntryPoint.java b/src/main/java/com/youlai/system/security/exception/MyAuthenticationEntryPoint.java index 7d197533..28552173 100644 --- a/src/main/java/com/youlai/system/security/exception/MyAuthenticationEntryPoint.java +++ b/src/main/java/com/youlai/system/security/exception/MyAuthenticationEntryPoint.java @@ -1,7 +1,7 @@ package com.youlai.system.security.exception; import com.youlai.system.common.result.ResultCode; -import com.youlai.system.common.util.ResponseUtils; +import com.youlai.system.util.ResponseUtils; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.core.AuthenticationException; import org.springframework.security.web.AuthenticationEntryPoint; diff --git a/src/main/java/com/youlai/system/service/GenConfigService.java b/src/main/java/com/youlai/system/service/GenConfigService.java index 7e91e33a..76156819 100644 --- a/src/main/java/com/youlai/system/service/GenConfigService.java +++ b/src/main/java/com/youlai/system/service/GenConfigService.java @@ -1,15 +1,7 @@ package com.youlai.system.service; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.youlai.system.model.entity.GenConfig; -import com.youlai.system.model.form.GenConfigForm; -import com.youlai.system.model.query.TablePageQuery; -import com.youlai.system.model.vo.GeneratorPreviewVO; -import com.youlai.system.model.vo.TableColumnVO; -import com.youlai.system.model.vo.TablePageVO; - -import java.util.List; /** * 代码生成配置接口 diff --git a/src/main/java/com/youlai/system/service/GeneratorService.java b/src/main/java/com/youlai/system/service/GeneratorService.java index e6fd51ba..0aae0491 100644 --- a/src/main/java/com/youlai/system/service/GeneratorService.java +++ b/src/main/java/com/youlai/system/service/GeneratorService.java @@ -1,11 +1,9 @@ package com.youlai.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.youlai.system.model.bo.TableMetaData; import com.youlai.system.model.form.GenConfigForm; import com.youlai.system.model.query.TablePageQuery; import com.youlai.system.model.vo.GeneratorPreviewVO; -import com.youlai.system.model.vo.TableColumnVO; import com.youlai.system.model.vo.TablePageVO; import java.util.List; @@ -24,7 +22,7 @@ public interface GeneratorService { * @param queryParams 查询参数 * @return */ - Page getTablePage(TablePageQuery queryParams); + Page getTablePage(TablePageQuery queryParams); /** * 获取预览生成代码 @@ -40,7 +38,7 @@ public interface GeneratorService { * @param tableName 表名 * @return */ - GenConfigForm getGenConfig(String tableName); + GenConfigForm getGenConfigFormData(String tableName); /** * 保存代码生成配置 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 0c2e41cc..d96d0635 100644 --- a/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/GeneratorServiceImpl.java @@ -15,18 +15,22 @@ import com.youlai.system.SystemApplication; import com.youlai.system.config.property.GeneratorProperties; import com.youlai.system.converter.GenConfigConverter; import com.youlai.system.enums.FormTypeEnum; +import com.youlai.system.enums.JavaTypeEnum; import com.youlai.system.enums.QueryTypeEnum; import com.youlai.system.exception.BusinessException; import com.youlai.system.mapper.DatabaseMapper; +import com.youlai.system.model.bo.ColumnMetaData; +import com.youlai.system.model.bo.TableMetaData; +import com.youlai.system.model.entity.GenConfig; import com.youlai.system.model.entity.GenFieldConfig; import com.youlai.system.model.form.GenConfigForm; import com.youlai.system.model.query.TablePageQuery; +import com.youlai.system.model.vo.GeneratorPreviewVO; +import com.youlai.system.model.vo.TablePageVO; import com.youlai.system.service.GeneratorService; import com.youlai.system.service.GenConfigService; import com.youlai.system.service.GenFieldConfigService; import lombok.RequiredArgsConstructor; -import org.apache.logging.log4j.util.Strings; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.File; @@ -42,14 +46,10 @@ import java.util.*; @RequiredArgsConstructor public class GeneratorServiceImpl implements GeneratorService { - @Value("${spring.application.name}") - private String applicationName; - private final DatabaseMapper databaseMapper; private final GeneratorProperties generatorProperties; private final GenConfigService genConfigService; private final GenFieldConfigService genFieldConfigService; - private final GenConfigConverter genConfigConverter; /** @@ -58,8 +58,8 @@ public class GeneratorServiceImpl implements GeneratorService { * @param queryParams 查询参数 * @return 分页结果 */ - public Page getTablePage(TablePageQuery queryParams) { - Page page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize()); + public Page getTablePage(TablePageQuery queryParams) { + Page page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize()); return databaseMapper.getTablePage(page, queryParams); } @@ -70,7 +70,7 @@ public class GeneratorServiceImpl implements GeneratorService { * @return 代码生成配置 */ @Override - public GenConfigForm getGenConfig(String tableName) { + public GenConfigForm getGenConfigFormData(String tableName) { // 查询表生成配置 GenConfig genConfig = genConfigService.getOne( new LambdaQueryWrapper<>(GenConfig.class) @@ -96,6 +96,8 @@ public class GeneratorServiceImpl implements GeneratorService { String packageName = SystemApplication.class.getPackageName(); genConfig.setPackageName(packageName); + genConfig.setAuthor(generatorProperties.getDefaultConfig().getAuthor()); + } // 根据表的列 + 已经存在的字段生成配置 得到 组合后的字段生成配置 @@ -114,19 +116,15 @@ public class GeneratorServiceImpl implements GeneratorService { String columnName = tableColumn.getColumnName(); GenFieldConfig genFieldConfig = fieldConfigList.stream() .filter(item -> StrUtil.equals(item.getColumnName(), columnName)) - .findFirst().orElseGet(() -> { - GenFieldConfig fieldConfig = new GenFieldConfig(); - fieldConfig.setColumnName(tableColumn.getColumnName()); - fieldConfig.setColumnType(tableColumn.getDataType()); - fieldConfig.setComment(tableColumn.getColumnComment()); - fieldConfig.setFieldName(StrUtil.toCamelCase(columnName)); - fieldConfig.setFieldType(StrUtil.toCamelCase(tableColumn.getDataType())); - fieldConfig.setIsRequired("YES".equals(tableColumn.getIsNullable()) ? 1 : 0); - fieldConfig.setFormType(FormTypeEnum.INPUT); - fieldConfig.setQueryType(QueryTypeEnum.EQ); - return fieldConfig; + .findFirst() + .orElseGet(() -> createDefaultFieldConfig(tableColumn)); - }); + // 根据列类型设置字段类型 + String fieldType = genFieldConfig.getFieldType(); + if (StrUtil.isBlank(fieldType)) { + String javaType = JavaTypeEnum.getJavaTypeByDbType(genFieldConfig.getColumnType()); + genFieldConfig.setFieldType(javaType); + } genFieldConfigs.add(genFieldConfig); } } @@ -135,6 +133,24 @@ public class GeneratorServiceImpl implements GeneratorService { } + /** + * 创建默认字段配置 + * + * @param tableColumn 表字段元数据 + * @return + */ + private GenFieldConfig createDefaultFieldConfig(ColumnMetaData tableColumn) { + 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.setFormType(FormTypeEnum.INPUT); + fieldConfig.setQueryType(QueryTypeEnum.EQ); + return fieldConfig; + } + /** * 保存代码生成配置 * @@ -204,7 +220,7 @@ public class GeneratorServiceImpl implements GeneratorService { // controller String subPackageName = templateConfig.getPackageName(); // 文件路径 com.youlai.system.controller - String filePath = getFilePath(templateName, packageName, subPackageName); + String filePath = getFilePath(templateName, packageName, subPackageName,entityName); previewVO.setPath(filePath); /* 3. 生成文件内容 */ @@ -227,32 +243,48 @@ public class GeneratorServiceImpl implements GeneratorService { if ("MapperXml".equals(templateName)) { return entityName + "Mapper" + extension; } - if ("API".equals(templateName) || "VIEW".equals(templateName)) { + if ("API".equals(templateName)) { return StrUtil.toSymbolCase(entityName, '-') + extension; } + + if ("VIEW".equals(templateName)) { + return "index.vue"; + } + return entityName + templateName + extension; } - private String getFilePath(String templateName, String packageName, String subPackageName) { + private String getFilePath(String templateName, String packageName, String subPackageName,String entityName) { String path; if ("MapperXml".equals(templateName)) { - path = (applicationName + path = (generatorProperties.getBackendAppName() + File.separator + "src" + File.separator + "main" + File.separator + "resources" + File.separator + subPackageName - ).replace(".", File.separator); - } else if ("API".equals(templateName) || "VIEW".equals(templateName)) { - path = ("vue3-element-admin" + ); + } else if ("API".equals(templateName) ) { + path = (generatorProperties.getFrontendAppName() + File.separator + "src" + File.separator + subPackageName - ).replace(".", File.separator); - } else { - path = (applicationName + ); + } else if("VIEW".equals(templateName)){ + path = (generatorProperties.getFrontendAppName() + + File.separator + + "src" + File.separator + subPackageName + + File.separator + + StrUtil.toSymbolCase(entityName, '-') + ); + }else { + path = (generatorProperties.getBackendAppName() + File.separator + "src" + File.separator + "main" + File.separator + "java" + File.separator + packageName + File.separator + subPackageName - ).replace(".", File.separator); + ); } + + // subPackageName = model.entity => model/entity + path = path.replace(".", File.separator); + return path; } @@ -277,13 +309,14 @@ public class GeneratorServiceImpl implements GeneratorService { bindMap.put("tableName", genConfig.getTableName()); bindMap.put("author", genConfig.getAuthor()); bindMap.put("lowerFirstEntityName", StrUtil.lowerFirst(entityName)); - bindMap.put("tableComment", genConfig.getBusinessName()); + bindMap.put("businessName", genConfig.getBusinessName()); bindMap.put("fieldConfigs", fieldConfigs); 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)); + fieldConfig.setTsType(JavaTypeEnum.getTsTypeByJavaType(fieldConfig.getFieldType())); } TemplateEngine templateEngine = TemplateUtil.createEngine(new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH)); diff --git a/src/main/java/com/youlai/system/service/impl/SysLogServiceImpl.java b/src/main/java/com/youlai/system/service/impl/SysLogServiceImpl.java index 5839a7d1..65d4baec 100644 --- a/src/main/java/com/youlai/system/service/impl/SysLogServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/SysLogServiceImpl.java @@ -2,7 +2,7 @@ package com.youlai.system.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.youlai.system.common.util.DateUtils; +import com.youlai.system.util.DateUtils; import com.youlai.system.model.bo.VisitCount; import com.youlai.system.model.entity.SysLog; import com.youlai.system.model.query.LogPageQuery; diff --git a/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java b/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java index a8fca05a..2db14b96 100644 --- a/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java +++ b/src/main/java/com/youlai/system/service/impl/SysUserServiceImpl.java @@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.youlai.system.common.constant.SystemConstants; -import com.youlai.system.common.util.DateUtils; +import com.youlai.system.util.DateUtils; import com.youlai.system.converter.UserConverter; import com.youlai.system.security.util.SecurityUtils; import com.youlai.system.mapper.SysUserMapper; diff --git a/src/main/java/com/youlai/system/common/util/DateUtils.java b/src/main/java/com/youlai/system/util/DateUtils.java similarity index 98% rename from src/main/java/com/youlai/system/common/util/DateUtils.java rename to src/main/java/com/youlai/system/util/DateUtils.java index 6066bc7a..167fce20 100644 --- a/src/main/java/com/youlai/system/common/util/DateUtils.java +++ b/src/main/java/com/youlai/system/util/DateUtils.java @@ -1,5 +1,5 @@ -package com.youlai.system.common.util; +package com.youlai.system.util; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; diff --git a/src/main/java/com/youlai/system/common/util/ExcelUtils.java b/src/main/java/com/youlai/system/util/ExcelUtils.java similarity index 91% rename from src/main/java/com/youlai/system/common/util/ExcelUtils.java rename to src/main/java/com/youlai/system/util/ExcelUtils.java index d25921fe..14894baf 100644 --- a/src/main/java/com/youlai/system/common/util/ExcelUtils.java +++ b/src/main/java/com/youlai/system/util/ExcelUtils.java @@ -1,4 +1,4 @@ -package com.youlai.system.common.util; +package com.youlai.system.util; import com.alibaba.excel.EasyExcel; import com.youlai.system.plugin.easyexcel.MyAnalysisEventListener; diff --git a/src/main/java/com/youlai/system/common/util/IPUtils.java b/src/main/java/com/youlai/system/util/IPUtils.java similarity index 99% rename from src/main/java/com/youlai/system/common/util/IPUtils.java rename to src/main/java/com/youlai/system/util/IPUtils.java index 816c42a2..2d77f90d 100644 --- a/src/main/java/com/youlai/system/common/util/IPUtils.java +++ b/src/main/java/com/youlai/system/util/IPUtils.java @@ -1,4 +1,4 @@ -package com.youlai.system.common.util; +package com.youlai.system.util; import cn.hutool.core.util.StrUtil; import jakarta.annotation.PostConstruct; diff --git a/src/main/java/com/youlai/system/common/util/ResponseUtils.java b/src/main/java/com/youlai/system/util/ResponseUtils.java similarity index 97% rename from src/main/java/com/youlai/system/common/util/ResponseUtils.java rename to src/main/java/com/youlai/system/util/ResponseUtils.java index cc46a6fc..3bb84286 100644 --- a/src/main/java/com/youlai/system/common/util/ResponseUtils.java +++ b/src/main/java/com/youlai/system/util/ResponseUtils.java @@ -1,4 +1,4 @@ -package com.youlai.system.common.util; +package com.youlai.system.util; import cn.hutool.json.JSONUtil; import com.youlai.system.common.result.Result; diff --git a/src/main/resources/application-generator.yml b/src/main/resources/application-generator.yml index 2a7e3996..d8359790 100644 --- a/src/main/resources/application-generator.yml +++ b/src/main/resources/application-generator.yml @@ -1,5 +1,9 @@ -### 代码生成器配置 +# 代码生成器配置 generator: + defaultConfig: + author: youlaitech + backendAppName: youlai-boot + frontendAppName: vue3-element-admin ## 模板配置 templateConfigs: Controller: @@ -18,6 +22,9 @@ generator: templatePath: generator/mapper.xml.vm packageName: mapper extension: .xml + Converter: + templatePath: generator/converter.java.vm + packageName: converter Query: templatePath: generator/query.java.vm packageName: model.query diff --git a/src/main/resources/mapper/DatabaseMapper.xml b/src/main/resources/mapper/DatabaseMapper.xml index 7aecef51..646ec80a 100644 --- a/src/main/resources/mapper/DatabaseMapper.xml +++ b/src/main/resources/mapper/DatabaseMapper.xml @@ -5,7 +5,7 @@ - SELECT TABLE_NAME , TABLE_COMMENT , diff --git a/src/main/resources/mapper/GenFieldConfigMapper.xml b/src/main/resources/mapper/GenFieldConfigMapper.xml index 03607e26..475c8cf1 100644 --- a/src/main/resources/mapper/GenFieldConfigMapper.xml +++ b/src/main/resources/mapper/GenFieldConfigMapper.xml @@ -4,25 +4,4 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - - - - - id,config_id,name, - type,description,show_in_list, - show_in_form,show_in_query,form_type, - query_method,create_time,update_time - diff --git a/src/main/resources/templates/generator/api.ts.vm b/src/main/resources/templates/generator/api.ts.vm index 4fb19ad1..fda318e2 100644 --- a/src/main/resources/templates/generator/api.ts.vm +++ b/src/main/resources/templates/generator/api.ts.vm @@ -1,121 +1,93 @@ import request from "@/utils/request"; -const ${className.toUpperCase()}_BASE_URL = "/api/v1/${className.toLowerCase()}s"; +const ${entityName.toUpperCase()}_BASE_URL = "/api/v1/${entityName.toLowerCase()}s"; -class ${className}API { - /** 获取${className}分页数据 */ - static getPage(queryParams?: ${className}PageQuery) { - return request>({ - url: `${${className.toUpperCase()}_BASE_URL}/page`, +class ${entityName}API { + /** 获取${businessName}分页数据 */ + static getPage(queryParams?: ${entityName}PageQuery) { + return request>({ + url: `${${entityName.toUpperCase()}_BASE_URL}/page`, method: "get", params: queryParams, }); } - - /** 获取${className}下拉数据源 */ - static getOptions() { - return request({ - url: `${${className.toUpperCase()}_BASE_URL}/options`, - method: "get", - }); - } - /** - * 获取${className}的菜单ID集合 + * 获取${businessName}表单数据 * - * @param ${className.toLowerCase()}Id ${className}ID - * @returns ${className}的菜单ID集合 - */ - static get${className}MenuIds(${className.toLowerCase()}Id: number) { - return request({ - url: `${${className.toUpperCase()}_BASE_URL}/${${className.toLowerCase()}Id}/menuIds`, - method: "get", - }); - } - - /** - * 分配菜单权限 - * - * @param ${className.toLowerCase()}Id ${className}ID - * @param data 菜单ID集合 - */ - static update${className}Menus(${className.toLowerCase()}Id: number, data: number[]) { - return request({ - url: `${${className.toUpperCase()}_BASE_URL}/${${className.toLowerCase()}Id}/menus`, - method: "put", - data: data, - }); - } - - /** - * 获取${className}表单数据 - * - * @param id ${className}ID - * @returns ${className}表单数据 + * @param id ${entityName}ID + * @returns ${entityName}表单数据 */ static getFormData(id: number) { - return request({ - url: `${${className.toUpperCase()}_BASE_URL}/${id}/form`, + return request({ + url: `${${entityName.toUpperCase()}_BASE_URL}/${id}/form`, method: "get", }); } - /** 添加${className} */ - static add(data: ${className}Form) { + /** 添加${businessName}*/ + static add(data: ${entityName}Form) { return request({ - url: `${${className.toUpperCase()}_BASE_URL}`, + url: `${${entityName.toUpperCase()}_BASE_URL}`, method: "post", data: data, }); } /** - * 更新${className} + * 更新${businessName} * - * @param id ${className}ID - * @param data ${className}表单数据 + * @param id ${entityName}ID + * @param data ${entityName}表单数据 */ - static update(id: number, data: ${className}Form) { + static update(id: number, data: ${entityName}Form) { return request({ - url: `${${className.toUpperCase()}_BASE_URL}/${id}`, + url: `${${entityName.toUpperCase()}_BASE_URL}/${id}`, method: "put", data: data, }); } /** - * 批量删除${className},多个以英文逗号(,)分割 + * 批量删除${businessName},多个以英文逗号(,)分割 * - * @param ids ${className}ID字符串,多个以英文逗号(,)分割 + * @param ids ${businessName}ID字符串,多个以英文逗号(,)分割 */ static deleteByIds(ids: string) { return request({ - url: `${${className.toUpperCase()}_BASE_URL}/${ids}`, + url: `${${entityName.toUpperCase()}_BASE_URL}/${ids}`, method: "delete", }); } } -export default ${className}API; +export default ${entityName}API; -/** ${className}分页查询参数 */ -export interface ${className}PageQuery extends PageQuery { +/** $${businessName}分页查询参数 */ +export interface ${entityName}PageQuery extends PageQuery { /** 搜索关键字 */ keywords?: string; } -/** ${className}分页对象 */ -export interface ${className}PageVO { - #foreach($field in $fields) - /** ${field.comment} */ - ${field.name}?: ${field.type}; +/** ${businessName}表单对象 */ +export interface ${entityName}Form { + #foreach($fieldConfig in $fieldConfigs) + #if($fieldConfig.isShowInForm) + #if("$!fieldConfig.fieldComment" != "") + /** ${fieldConfig.fieldComment} */ + #end + ${fieldConfig.fieldName}?: ${fieldConfig.tsType}; + #end #end } -/** ${className}表单对象 */ -export interface ${className}Form { - #foreach($field in $fields) - /** ${field.comment} */ - ${field.name}?: ${field.type}; +/** ${businessName}分页对象 */ +export interface ${entityName}PageVO { + #foreach($fieldConfig in $fieldConfigs) + #if($fieldConfig.isShowInList) + #if("$!fieldConfig.fieldComment" != "") + /** ${fieldConfig.fieldComment} */ + #end + ${fieldConfig.fieldName}?: ${fieldConfig.tsType}; + #end #end } diff --git a/src/main/resources/templates/generator/controller.java.vm b/src/main/resources/templates/generator/controller.java.vm index 292830e4..5982a4f0 100644 --- a/src/main/resources/templates/generator/controller.java.vm +++ b/src/main/resources/templates/generator/controller.java.vm @@ -17,12 +17,12 @@ import org.springframework.web.bind.annotation.*; import jakarta.validation.Valid; /** - * $!{tableComment}前端控制层 + * $!{businessName}前端控制层 * * @author ${author} * @since ${date} */ -@Tag(name = "${tableComment}接口") +@Tag(name = "${businessName}接口") @RestController @RequestMapping("/api/v1/${lowerFirstEntityName}s") @RequiredArgsConstructor @@ -30,41 +30,41 @@ public class ${entityName}Controller { private final ${entityName}Serivie ${lowerFirstEntityName}Service; - @Operation(summary = "$!{tableComment}分页列表") + @Operation(summary = "$!{businessName}分页列表") @GetMapping("/page") public PageResult<${entityName}PageVO> get${entityName}Page(${entityName}PageQuery queryParams ) { IPage<${entityName}PageVO> result = ${lowerFirstEntityName}Service.get${entityName}Page(queryParams); return PageResult.success(result); } - @Operation(summary = "新增$!{tableComment}") + @Operation(summary = "新增${businessName}") @PostMapping public Result save${entityName}(@RequestBody @Valid ${entityName}Form formData ) { boolean result = ${lowerFirstEntityName}Service.save${entityName}(formData); return Result.judge(result); } - @Operation(summary = "获取$!{tableComment}表单数据") + @Operation(summary = "获取${businessName}表单数据") @GetMapping("/{id}/form") public Result<${entityName}Form> get${entityName}Form( - @Parameter(description = "$!{tableComment}ID") @PathVariable Long id + @Parameter(description = "$!{businessName}ID") @PathVariable Long id ) { ${entityName}Form formData = ${lowerFirstEntityName}Service.get${entityName}FormData(id); return Result.success(formData); } - @Operation(summary = "修改$!{tableComment}") + @Operation(summary = "修改${businessName}") @PutMapping(value = "/{id}") - public Result update${entityName}(@Parameter(description = "$!{tableComment}ID") @PathVariable Long id, + public Result update${entityName}(@Parameter(description = "$!{businessName}ID") @PathVariable Long id, @RequestBody @Validated ${entityName}Form formData) { boolean result = ${lowerFirstEntityName}Service.update${entityName}(id, formData); return Result.judge(result); } - @Operation(summary = "删除$!{tableComment}") + @Operation(summary = "删除${businessName}") @DeleteMapping("/{ids}") public Result delete${entityName}s( - @Parameter(description = "$!{tableComment}ID,多个以英文逗号(,)分割") @PathVariable String ids + @Parameter(description = "$!{businessName}ID,多个以英文逗号(,)分割") @PathVariable String ids ) { boolean result = ${lowerFirstEntityName}Service.delete${entityName}s(ids); return Result.judge(result); diff --git a/src/main/resources/templates/generator/converter.java.vm b/src/main/resources/templates/generator/converter.java.vm index 6907a4d5..b98c48f0 100644 --- a/src/main/resources/templates/generator/converter.java.vm +++ b/src/main/resources/templates/generator/converter.java.vm @@ -6,7 +6,7 @@ import ${package}.model.entity.${entityName}; import ${package}.model.form.${entityName}Form; /** - * $!{tableComment}对象转换器 + * $!{businessName}对象转换器 * * @author ${author} * @since ${date} diff --git a/src/main/resources/templates/generator/entity.java.vm b/src/main/resources/templates/generator/entity.java.vm index ca994871..0af92e93 100644 --- a/src/main/resources/templates/generator/entity.java.vm +++ b/src/main/resources/templates/generator/entity.java.vm @@ -12,7 +12,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.youlai.system.common.base.BaseEntity; /** - * $!{tableComment}实体对象 + * $!{businessName}实体对象 * * @author ${author} * @since ${date} diff --git a/src/main/resources/templates/generator/form.java.vm b/src/main/resources/templates/generator/form.java.vm index ea493d0f..aa4767f0 100644 --- a/src/main/resources/templates/generator/form.java.vm +++ b/src/main/resources/templates/generator/form.java.vm @@ -16,14 +16,14 @@ import jakarta.validation.constraints.*; #end /** - * $!{tableComment}表单对象 + * $!{businessName}表单对象 * * @author ${author} * @since ${date} */ @Getter @Setter -@Schema(description = "$!{tableComment}表单对象") +@Schema(description = "$!{businessName}表单对象") public class ${entityName}Form implements Serializable { @Serial @@ -32,7 +32,7 @@ public class ${entityName}Form implements Serializable { ## ---------- BEGIN 字段循环遍历 ---------- #if($fieldConfigs) #foreach($fieldConfig in ${fieldConfigs}) - #if($fieldConfig.showInForm) + #if($fieldConfig.isShowInForm) #if($fieldConfig.isRequired) #if($fieldConfig.fieldType == 'String') @NotBlank(message = "$fieldConfig.fieldComment不能为空") diff --git a/src/main/resources/templates/generator/index.vue.vm b/src/main/resources/templates/generator/index.vue.vm index bdd146fa..1d023ac5 100644 --- a/src/main/resources/templates/generator/index.vue.vm +++ b/src/main/resources/templates/generator/index.vue.vm @@ -2,114 +2,127 @@
- - - - + #foreach($fieldConfig in $fieldConfigs) + #if($fieldConfig.isShowInQuery == 1) + + #if($fieldConfig.formType == "INPUT") + + #elseif($fieldConfig.formType == "SELECT") + + + + + #elseif($fieldConfig.formType == "RADIO") + + {{ option.label }} + + #elseif($fieldConfig.formType == "CHECK_BOX") + + {{ option.label }} + + #elseif($fieldConfig.formType == "INPUT_NUMBER") + + #elseif($fieldConfig.formType == "SWITCH") + + #elseif($fieldConfig.formType == "TEXT_AREA") + + #elseif($fieldConfig.formType == "DATE_TIME") + + #elseif($fieldConfig.formType == "DATE") + + #end + + #end + #end - - - 搜索 - - - - 重置 - + 搜索 + 重置
- #foreach($field in $fields) - + #foreach($fieldConfig in $fieldConfigs) + #if($fieldConfig.isShowInList == 1) + #end - + #end - - - - #foreach($field in $fields) - - - + + + + #foreach($fieldConfig in $fieldConfigs) + #if($fieldConfig.isShowInForm == 1) + + #if($fieldConfig.formType == "INPUT") + + #elseif($fieldConfig.formType == "SELECT") + + + + + #elseif($fieldConfig.formType == "RADIO") + + {{ option.label }} + + #elseif($fieldConfig.formType == "CHECK_BOX") + + {{ option.label }} + + #elseif($fieldConfig.formType == "INPUT_NUMBER") + + #elseif($fieldConfig.formType == "SWITCH") + + #elseif($fieldConfig.formType == "TEXT_AREA") + + #elseif($fieldConfig.formType == "DATE_TIME") + + #elseif($fieldConfig.formType == "DATE") + + #end + #end + #end - @@ -118,55 +131,60 @@ diff --git a/src/main/resources/templates/generator/mapper.java.vm b/src/main/resources/templates/generator/mapper.java.vm index fa9bbbf7..378b98b0 100644 --- a/src/main/resources/templates/generator/mapper.java.vm +++ b/src/main/resources/templates/generator/mapper.java.vm @@ -7,7 +7,7 @@ import ${package}.model.query.${entityName}Query; import org.apache.ibatis.annotations.Mapper; /** - * $!{tableComment}Mapper接口 + * $!{businessName}Mapper接口 * * @author ${author} * @since ${date} @@ -16,7 +16,7 @@ import org.apache.ibatis.annotations.Mapper; public interface ${entityName}Mapper extends BaseMapper<${entityName}> { /** - * 获取$!{tableComment}分页数据 + * 获取${businessName}分页数据 * * @param page 分页对象 * @param queryParams 查询参数 diff --git a/src/main/resources/templates/generator/mapper.xml.vm b/src/main/resources/templates/generator/mapper.xml.vm index 06984819..91fe442e 100644 --- a/src/main/resources/templates/generator/mapper.xml.vm +++ b/src/main/resources/templates/generator/mapper.xml.vm @@ -2,7 +2,7 @@ - +