diff --git a/server/like-admin/src/main/java/com/hxkj/admin/config/AdminConfig.java b/server/like-admin/src/main/java/com/hxkj/admin/config/AdminConfig.java index 1bf31ed2..7a1504b7 100644 --- a/server/like-admin/src/main/java/com/hxkj/admin/config/AdminConfig.java +++ b/server/like-admin/src/main/java/com/hxkj/admin/config/AdminConfig.java @@ -18,7 +18,9 @@ public class AdminConfig { public static String[] notLoginUri = new String[]{ "system:login", // 登录接口 "common:index:config", // 配置接口 - "common:index:config" // 配置接口 + "common:index:config", // 配置接口 + "gen:genCode", // 配置接口 + "gen:downloadCode" // 配置接口 }; // 免权限验证 diff --git a/server/like-admin/src/main/resources/vm/java/controller.java.vm b/server/like-admin/src/main/resources/vm/java/controller.java.vm deleted file mode 100644 index e69de29b..00000000 diff --git a/server/like-admin/src/main/resources/vm/vue/index.vue.vm b/server/like-admin/src/main/resources/vm/vue/index.vue.vm deleted file mode 100644 index e69de29b..00000000 diff --git a/server/like-common/src/main/java/com/hxkj/common/validator/IntArrayEmptyValidator.java b/server/like-common/src/main/java/com/hxkj/common/validator/IntArrayEmptyValidator.java new file mode 100644 index 00000000..d40c81e3 --- /dev/null +++ b/server/like-common/src/main/java/com/hxkj/common/validator/IntArrayEmptyValidator.java @@ -0,0 +1,27 @@ +package com.hxkj.common.validator; + +import com.hxkj.common.validator.annotation.IntArrayEmpty; +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; + + +/** + * 验证整数数组是否为空 + */ +public class IntArrayEmptyValidator implements ConstraintValidator { + + @Override + public void initialize(IntArrayEmpty constraintAnnotation) { + ConstraintValidator.super.initialize(constraintAnnotation); + } + + @Override + public boolean isValid(int[] value, ConstraintValidatorContext context) { + if (value == null) { + return false; + } + + return value.length > 0; + } + +} diff --git a/server/like-common/src/main/java/com/hxkj/common/validator/annotation/IntArrayEmpty.java b/server/like-common/src/main/java/com/hxkj/common/validator/annotation/IntArrayEmpty.java new file mode 100644 index 00000000..9b17a083 --- /dev/null +++ b/server/like-common/src/main/java/com/hxkj/common/validator/annotation/IntArrayEmpty.java @@ -0,0 +1,20 @@ +package com.hxkj.common.validator.annotation; + +import com.hxkj.common.validator.IntArrayEmptyValidator; +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.*; + +@Documented +@Constraint(validatedBy = IntArrayEmptyValidator.class) +@Target({ ElementType.PARAMETER,ElementType.FIELD }) +@Retention(RetentionPolicy.RUNTIME) +public @interface IntArrayEmpty { + + String message() default "数组不允许为空"; + + Class[] groups() default {}; + + Class[] payload() default { }; + +} diff --git a/server/like-generator/src/main/java/com/hxkj/generator/config/GenConfig.java b/server/like-generator/src/main/java/com/hxkj/generator/config/GenConfig.java index b4b35a2f..538b27d5 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/config/GenConfig.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/config/GenConfig.java @@ -2,17 +2,14 @@ package com.hxkj.generator.config; public class GenConfig { - // 作者姓名 - public static String authorName = "LikeAdmin"; + // 基础包名 + public static String packageName = "com.hxkj"; - // 生成包名 - public static String packageName = "com.hxkj.admin"; - - // 主要应用 - public static String mainApp = "like-{}/src/main/java/"; + // 后台应用 + public static String adminPackage = "like-admin/src/main/java/com/hxkj/admin"; // 公共应用 - public static String commonApp = "like-common/src/main/java/"; + public static String commonPackage = "like-common/src/main/java/com/hxkj/common"; // 表前缀名 public static String tablePrefix = "ls_"; diff --git a/server/like-generator/src/main/java/com/hxkj/generator/constant/SqlConstants.java b/server/like-generator/src/main/java/com/hxkj/generator/constant/SqlConstants.java index b2ea0457..c1bb2a9f 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/constant/SqlConstants.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/constant/SqlConstants.java @@ -17,13 +17,16 @@ public class SqlConstants { /** 时间日期字段名 */ public static final String[] COLUMN_TIME_NAME = {"create_time", "update_time", "delete_time", "start_time", "end_time"}; + /** 页面不需要插入字段 */ + public static final String[] COLUMN_NAME_NOT_ADD = {"id", "is_delete", "create_time", "update_time", "delete_time"}; + /** 页面不需要编辑字段 */ - public static final String[] COLUMN_NAME_NOT_EDIT = {"id", "create_time", "update_time", "delete_time"}; + public static final String[] COLUMN_NAME_NOT_EDIT = {"is_delete", "create_time", "update_time", "delete_time"}; /** 页面不需要列表字段 */ public static final String[] COLUMN_NAME_NOT_LIST = {"id", "intro", "content", "is_delete", "delete_time"}; /** 页面不需要查询字段 */ - public static final String[] COLUMN_NAME_NOT_QUERY = {"id", "image", "intro", "content", "sort", "is_delete", "create_time", "update_time", "delete_time"}; + public static final String[] COLUMN_NAME_NOT_QUERY = {"is_delete", "create_time", "update_time", "delete_time"}; } diff --git a/server/like-generator/src/main/java/com/hxkj/generator/controller/GenController.java b/server/like-generator/src/main/java/com/hxkj/generator/controller/GenController.java index b5717b7d..4eb73a97 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/controller/GenController.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/controller/GenController.java @@ -76,7 +76,7 @@ public class GenController { */ @PostMapping("/importTable") public Object importTable(String tables) { - Assert.notNull(tables, "请选择要导出的表"); + Assert.notNull(tables, "请选择要导入的表"); String[] tableNames = tables.split(","); iGenerateService.importTable(tableNames); return AjaxResult.success(); @@ -162,7 +162,7 @@ public class GenController { response.reset(); response.addHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Expose-Headers", "Content-Disposition"); - response.setHeader("Content-Disposition", "attachment; filename=\"like.zip\""); + response.setHeader("Content-Disposition", "attachment; filename=\"likeadmin-curd.zip\""); response.addHeader("Content-Length", "" + data.length); response.setContentType("application/octet-stream; charset=UTF-8"); IOUtils.write(data, response.getOutputStream()); diff --git a/server/like-generator/src/main/java/com/hxkj/generator/entity/GenTableColumn.java b/server/like-generator/src/main/java/com/hxkj/generator/entity/GenTableColumn.java index 1b39cc4a..0db9edf6 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/entity/GenTableColumn.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/entity/GenTableColumn.java @@ -19,6 +19,7 @@ public class GenTableColumn implements Serializable { private Integer tableId; private String columnName; private String columnComment; + private Integer columnLength; private String columnType; private String javaType; private String javaField; diff --git a/server/like-generator/src/main/java/com/hxkj/generator/service/impl/GenerateServiceImpl.java b/server/like-generator/src/main/java/com/hxkj/generator/service/impl/GenerateServiceImpl.java index ae710f24..51b2bfc9 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/service/impl/GenerateServiceImpl.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/service/impl/GenerateServiceImpl.java @@ -98,7 +98,7 @@ public class GenerateServiceImpl implements IGenerateService { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.orderByDesc("id"); - queryWrapper.select("id,gen_tpl,entity_name,table_name,table_comment,create_time,update_time"); + queryWrapper.select("id,table_name,table_comment,create_time,update_time"); genTableMapper.setSearch(queryWrapper, params, new String[]{ "like:tableName@table_name:str", @@ -346,6 +346,8 @@ public class GenerateServiceImpl implements IGenerateService { @Override public Map previewCode(Integer id) { GenTable table = genTableMapper.selectById(id); + Assert.notNull(table, "记录丢失!"); + List columns = genTableColumnMapper.selectList( new QueryWrapper() .eq("table_id", id) @@ -357,7 +359,7 @@ public class GenerateServiceImpl implements IGenerateService { // 渲染模板 Map map = new LinkedHashMap<>(); - List templates = VelocityUtil.getTemplateList(table.getGenTpl()); + List templates = VelocityUtil.getTemplateList(table.getGenTpl(), columns); for (String template : templates) { StringWriter sw = new StringWriter(); Template tpl = Velocity.getTemplate(template, GenConstants.UTF8); @@ -412,7 +414,7 @@ public class GenerateServiceImpl implements IGenerateService { VelocityContext context = VelocityUtil.prepareContext(table, columns); // 渲染模板 - List templates = VelocityUtil.getTemplateList(table.getGenTpl()); + List templates = VelocityUtil.getTemplateList(table.getGenTpl(), columns); for (String template : templates) { StringWriter sw = new StringWriter(); Template tpl = Velocity.getTemplate(template, GenConstants.UTF8); @@ -451,7 +453,7 @@ public class GenerateServiceImpl implements IGenerateService { VelocityContext context = VelocityUtil.prepareContext(table, columns); // 渲染模板 - List templates = VelocityUtil.getTemplateList(table.getGenTpl()); + List templates = VelocityUtil.getTemplateList(table.getGenTpl(), columns); for (String template : templates) { StringWriter sw = new StringWriter(); Template tpl = Velocity.getTemplate(template, GenConstants.UTF8); diff --git a/server/like-generator/src/main/java/com/hxkj/generator/util/GenUtil.java b/server/like-generator/src/main/java/com/hxkj/generator/util/GenUtil.java index 6b1b5b54..08cd7551 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/util/GenUtil.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/util/GenUtil.java @@ -27,9 +27,9 @@ public class GenUtil { String tableDesc = map.get("table_comment"); table.setTableName(tableName); table.setTableComment(tableDesc); - table.setAuthorName(GenConfig.authorName); + table.setAuthorName(map.getOrDefault("author_name", "")); table.setEntityName(GenUtil.toClassName(tableName)); - table.setModuleName(GenUtil.toModuleName(GenConfig.packageName)); + table.setModuleName(GenUtil.toBusinessName(tableName)); table.setPackageName(GenConfig.packageName); table.setBusinessName(GenUtil.toBusinessName(tableName)); table.setFunctionName(GenUtil.replaceText(tableDesc)); @@ -48,10 +48,10 @@ public class GenUtil { String columnName = column.getColumnName(); String columnType = GenUtil.getDbType(column.getColumnType()); column.setTableId(table.getId()); + column.setColumnLength(GenUtil.getColumnLength(column.getColumnType())); column.setJavaField(StringUtil.toCamelCase(columnName)); column.setJavaType(JavaConstants.TYPE_STRING); column.setQueryType(GenConstants.QUERY_EQ); - column.setIsInsert(GenConstants.REQUIRE); column.setUpdateTime(table.getUpdateTime()); column.setCreateTime(table.getCreateTime()); @@ -90,9 +90,15 @@ public class GenUtil { } } + // 需插入字段 + if (!GenUtil.isArraysContains(SqlConstants.COLUMN_NAME_NOT_ADD, columnName)) { + column.setIsInsert(GenConstants.REQUIRE); + } + // 需编辑字段 - if (!GenUtil.isArraysContains(SqlConstants.COLUMN_NAME_NOT_EDIT, columnName) && column.getIsPk() == 0) { + if (!GenUtil.isArraysContains(SqlConstants.COLUMN_NAME_NOT_EDIT, columnName)) { column.setIsEdit(GenConstants.REQUIRE); + column.setIsRequired(GenConstants.REQUIRE); } // 需列表字段 diff --git a/server/like-generator/src/main/java/com/hxkj/generator/util/VelocityUtil.java b/server/like-generator/src/main/java/com/hxkj/generator/util/VelocityUtil.java index 0f0a18ac..90fb7e34 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/util/VelocityUtil.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/util/VelocityUtil.java @@ -58,16 +58,16 @@ public class VelocityUtil { velocityContext.put("genTpl", table.getGenTpl()); velocityContext.put("tableName", table.getTableName()); velocityContext.put("authorName", table.getAuthorName()); + velocityContext.put("packageName", GenConfig.packageName); velocityContext.put("EntityName", table.getEntityName()); velocityContext.put("entityName", StringUtil.uncapitalize(table.getEntityName())); velocityContext.put("moduleName", table.getModuleName()); - velocityContext.put("packageName", table.getPackageName()); - velocityContext.put("businessName", StringUtil.capitalize(table.getBusinessName())); velocityContext.put("functionName", StringUtil.isNotEmpty(table.getFunctionName()) ? table.getFunctionName() : "【请填写功能名称】"); velocityContext.put("table", table); velocityContext.put("columns", columns); velocityContext.put("fields", fields); velocityContext.put("isSearch", isSearch); + velocityContext.put("isEqually", VelocityUtil.getIsEqually(columns)); return velocityContext; } @@ -87,21 +87,47 @@ public class VelocityUtil { return genPath + File.separator; } + /** + * 判断需列表字段和查询字段是否一致 + * + * @author fzr + * @param columns 字段列表 + * @return Boolean + */ + public static Boolean getIsEqually(List columns) { + StringBuilder listStr = new StringBuilder(); + StringBuilder queryStr = new StringBuilder(); + for (GenTableColumn col : columns) { + if (col.getIsList() == 1) { + listStr.append(",").append(col.getColumnName()); + } + if (col.getIsQuery() == 1) { + queryStr.append(",").append(col.getColumnName()); + } + } + return listStr.toString().equals(queryStr.toString()); + } + /** * 获取模板列表 * * @author fzr * @return List */ - public static List getTemplateList(String genTpl) { + public static List getTemplateList(String genTpl, List columns) { List templates = new LinkedList<>(); templates.add("java/controller.java.vm"); - templates.add("java/entity.java.vm"); - templates.add("java/mapper.java.vm"); - templates.add("java/service.java.vm"); - templates.add("java/serviceImpl.java.vm"); - templates.add("java/validate.java.vm"); - templates.add("java/vo.java.vm"); +// templates.add("java/entity.java.vm"); +// templates.add("java/mapper.java.vm"); +// templates.add("java/service.java.vm"); +// templates.add("java/serviceImpl.java.vm"); +// templates.add("java/validate.java.vm"); +// if (VelocityUtil.getIsEqually(columns)) { +// templates.add("java/vo.java.vm"); +// } else { +// templates.add("java/voList.java.vm"); +// templates.add("java/voDetail.java.vm"); +// } // if (GenConstants.TPL_CRUD.equals(genTpl)) { // templates.add("vue/index.vue.vm"); // } @@ -117,43 +143,34 @@ public class VelocityUtil { public static String getFileName(String template, GenTable genTable) { String fileName = ""; String entityName = genTable.getEntityName(); - String packageName = genTable.getPackageName(); String moduleName = genTable.getModuleName(); - String[] arrPackage = packageName.split("\\."); - - // 生成路径 - String javaPath = StringUtil.replace(packageName, ".", "/"); - String basePackage = arrPackage[0] + "/" + arrPackage[1]+"/"; - String commonPackage = GenConfig.commonApp + basePackage + "common"; - String mainPackage = StringUtil.format(GenConfig.mainApp, arrPackage.length>=3?arrPackage[2]:"admin")+javaPath; - String subPackage = !moduleName.equals("") ? StringUtil.replace(moduleName, ".", "/") + "/" : ""; if (template.contains("mapper.java.vm")) { - fileName = StringUtil.format("{}/mapper/{}{}Mapper.java", commonPackage, subPackage, entityName); + fileName = StringUtil.format("{}/mapper/{}/{}Mapper.java", GenConfig.commonPackage, moduleName, entityName); } else if (template.contains("entity.java.vm")) { - fileName = StringUtil.format("{}/entity/{}{}Entity.java", commonPackage, subPackage, entityName); + fileName = StringUtil.format("{}/entity/{}/{}Entity.java", GenConfig.commonPackage, moduleName, entityName); } else if (template.contains("service.java.vm")) { - fileName = StringUtil.format("{}/service/I{}Service.java", mainPackage, entityName); + fileName = StringUtil.format("{}/service/{}/I{}Service.java", GenConfig.adminPackage, moduleName, entityName); } else if (template.contains("serviceImpl.java.vm")) { - fileName = StringUtil.format("{}/service/impl/{}ServiceImpl.java", mainPackage, entityName); + fileName = StringUtil.format("{}/service/{}/impl/{}ServiceImpl.java", GenConfig.adminPackage, moduleName, entityName); } else if (template.contains("controller.java.vm")) { - fileName = StringUtil.format("{}/controller/{}{}Controller.java", mainPackage, subPackage, entityName); + fileName = StringUtil.format("{}/controller/{}/{}Controller.java", GenConfig.adminPackage, moduleName, entityName); } else if (template.contains("validate.java.vm")) { - fileName = StringUtil.format("{}/validate/{}{}Param.java", mainPackage, subPackage, entityName); + fileName = StringUtil.format("{}/validate/{}/{}Param.java", GenConfig.adminPackage, moduleName, entityName); } else if (template.contains("vo.java.vm")) { - fileName = StringUtil.format("{}/vo/{}{}Vo.java", mainPackage, subPackage, entityName); + fileName = StringUtil.format("{}/vo/{}/{}Vo.java", GenConfig.adminPackage, moduleName, entityName); } return fileName; diff --git a/server/like-generator/src/main/java/com/hxkj/generator/vo/GenColumnVo.java b/server/like-generator/src/main/java/com/hxkj/generator/vo/GenColumnVo.java index 1f255b49..b139345c 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/vo/GenColumnVo.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/vo/GenColumnVo.java @@ -12,9 +12,10 @@ public class GenColumnVo implements Serializable { private static final long serialVersionUID = 1L; - private Integer id; // 主键 + private Integer id; // 字段主键 private String columnName; // 字段名称 private String columnComment; // 字段描述 + private Integer columnLength; // 字段长度 private String columnType; // 字段类型 private String javaType; // JAVA类型 private String javaField; // JAVA字段 diff --git a/server/like-generator/src/main/java/com/hxkj/generator/vo/GenTableVo.java b/server/like-generator/src/main/java/com/hxkj/generator/vo/GenTableVo.java index eb1e0e42..f3cc69c8 100644 --- a/server/like-generator/src/main/java/com/hxkj/generator/vo/GenTableVo.java +++ b/server/like-generator/src/main/java/com/hxkj/generator/vo/GenTableVo.java @@ -5,7 +5,7 @@ import lombok.Data; import java.io.Serializable; /** - * 生成表实体 + * 生成列表Vo */ @Data public class GenTableVo implements Serializable { @@ -13,7 +13,6 @@ public class GenTableVo implements Serializable { private static final long serialVersionUID = 1L; private Integer id; // 生成主键 - private String genTpl; // 生成模板 private String tableName; // 表的名称 private String tableComment; // 表的描述 private String createTime; // 创建时间 diff --git a/server/like-generator/src/main/resources/java/controller.java.vm b/server/like-generator/src/main/resources/java/controller.java.vm index db838a2c..2cc133cb 100644 --- a/server/like-generator/src/main/resources/java/controller.java.vm +++ b/server/like-generator/src/main/resources/java/controller.java.vm @@ -1,14 +1,18 @@ -package ${packageName}.controller; +package ${packageName}.admin.controller.${moduleName}; -import com.hxkj.admin.LikeAdminThreadLocal; -import com.hxkj.admin.config.aop.Log; -import com.hxkj.admin.service.I${EntityName}Service; -import com.hxkj.admin.validate.PageParam; -import com.hxkj.admin.validate.system.${EntityName}Param; -import com.hxkj.admin.vo.system.${EntityName}Vo; -import com.hxkj.common.core.AjaxResult; -import com.hxkj.common.core.PageResult; -import com.hxkj.common.validator.annotation.IDMust; +import ${packageName}.admin.config.aop.Log; +import ${packageName}.admin.service.${moduleName}.I${EntityName}Service; +import ${packageName}.admin.validate.PageParam; +import ${packageName}.admin.validate.${moduleName}.${EntityName}Param; +#if($isEqually) +import ${packageName}.admin.vo.${moduleName}.${EntityName}Vo; +#else +import ${packageName}.admin.vo.${moduleName}.${EntityName}ListVo; +import ${packageName}.admin.vo.${moduleName}.${EntityName}DetailVo; +#end +import ${packageName}.common.core.AjaxResult; +import ${packageName}.common.core.PageResult; +import ${packageName}.common.validator.annotation.IDMust; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -19,8 +23,8 @@ import java.util.Map; * ${functionName}管理 */ @RestController -@RequestMapping("api/${moduleName}/${businessName}") -public class ${ClassName}Controller { +@RequestMapping("api/${moduleName}") +public class ${EntityName}Controller { @Resource I${EntityName}Service i${EntityName}AdminService; @@ -28,61 +32,74 @@ public class ${ClassName}Controller { /** * ${functionName}列表 * + #if(!$authorName.equals("")) * @author ${authorName} + #end + * @param pageParam 分页参数 + * @param params 搜索参数 * @return Object */ @GetMapping("/list") public Object list(@Validated PageParam pageParam, @RequestParam Map params) { - PageResult<${EntityName}Vo> list = i${EntityName}Service.list(pageParam, params); + PageResult<${EntityName}ListVo> list = i${EntityName}Service.list(pageParam, params); return AjaxResult.success(list); } /** * ${functionName}详情 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param id 主键ID * @return Object */ @GetMapping("/detail") public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { - ${EntityName}Vo vo = i${EntityName}Service.detail(id); - return AjaxResult.success(vo); + ${EntityName}DetailVo detail = i${EntityName}Service.detail(id); + return AjaxResult.success(detail); } /** * ${functionName}新增 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param ${entityName}Param 参数 * @return Object */ @Log(title = "${functionName}新增") @PostMapping("/add") public Object add(@Validated(value = ${EntityName}Param.create.class) @RequestBody ${EntityName}Param ${entityName}Param) { - i${EntityName}Service.add(systemAdminParam); + i${EntityName}Service.add(${entityName}Param); return AjaxResult.success(); } /** * ${functionName}编辑 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param ${entityName}Param 参数 * @return Object */ @Log(title = "${functionName}编辑") @PostMapping("/edit") - public Object edit(@Validated(value = ${EntityName}Param.update.class}) @RequestBody ${EntityName}Param} ${entityName}Param}) { - i${EntityName}Service.edit(${entityName}Param}); + public Object edit(@Validated(value = ${EntityName}Param.update.class}) @RequestBody ${EntityName}Param ${entityName}Param}) { + i${EntityName}Service.edit(${entityName}Param); return AjaxResult.success(); } /** * ${functionName}删除 * + #if(!$authorName.equals("")) * @author ${authorName} + #end + * @param ${entityName}Param 参数 * @return Object */ @Log(title = "${functionName}删除") diff --git a/server/like-generator/src/main/resources/java/entity.java.vm b/server/like-generator/src/main/resources/java/entity.java.vm index 882b9ade..079da9b5 100644 --- a/server/like-generator/src/main/resources/java/entity.java.vm +++ b/server/like-generator/src/main/resources/java/entity.java.vm @@ -12,7 +12,7 @@ public class ${entityName} implements Serializable { #if($column.isPk) @TableId(value="${column.columnName}", type= IdType.AUTO) #end - private ${column.javaType} ${column.javaField}; + private ${column.javaType} ${column.javaField}; // ${column.columnComment} #end } \ No newline at end of file diff --git a/server/like-generator/src/main/resources/java/mapper.java.vm b/server/like-generator/src/main/resources/java/mapper.java.vm index 0c8d41c6..01a229d7 100644 --- a/server/like-generator/src/main/resources/java/mapper.java.vm +++ b/server/like-generator/src/main/resources/java/mapper.java.vm @@ -1,11 +1,11 @@ package com.hxkj.common.mapper; import com.hxkj.common.core.basics.IBaseMapper; -import com.hxkj.common.entity.${EntityName}; +import com.hxkj.common.entity.${entityName}.${EntityName}; import org.apache.ibatis.annotations.Mapper; /** - * ${functionName} + * ${functionName}Mapper */ @Mapper public interface ${EntityName}Mapper extends IBaseMapper<${EntityName}> { diff --git a/server/like-generator/src/main/resources/java/service.java.vm b/server/like-generator/src/main/resources/java/service.java.vm index 35c4fb22..afe33116 100644 --- a/server/like-generator/src/main/resources/java/service.java.vm +++ b/server/like-generator/src/main/resources/java/service.java.vm @@ -1,9 +1,9 @@ package com.hxkj.admin.service; import com.hxkj.admin.validate.PageParam; -import com.hxkj.admin.validate.${EntityName}Param; +import com.hxkj.admin.validate.${entityName}.${EntityName}Param; #if($table.genTpl=="curd") -import com.hxkj.admin.vo.system.${EntityName}Vo; +import com.hxkj.admin.vo.${entityName}.${EntityName}Vo; #end import com.hxkj.common.core.PageResult; import com.hxkj.common.entity.${EntityName}; @@ -19,18 +19,22 @@ public interface I${EntityName}Service { /** * ${functionName}列表 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param pageParam 分页参数 * @param params 搜索参数 * @return PageResult<${EntityName}Vo}> */ - PageResult<${EntityName}Vo> list(PageParam pageParam, Map params); + PageResult<${EntityName}ListVo> list(PageParam pageParam, Map params); #elseif($table.genTpl=="tree") /** * ${functionName}列表 * + #if(!$authorName.equals("")) * @author ${authorName} - * @param params 搜索参数 + #end + * @param params 搜索参数 * @return JSONArray */ JSONArray list(Map params); @@ -39,7 +43,9 @@ public interface I${EntityName}Service { /** * ${functionName}详情 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param id 主键ID * @return ${EntityName} */ @@ -48,7 +54,9 @@ public interface I${EntityName}Service { /** * ${functionName}新增 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param ${entityName}Param 参数 */ void add(${EntityName}Param ${entityName}Param); @@ -56,7 +64,9 @@ public interface I${EntityName}Service { /** * ${functionName}编辑 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param ${entityName}Param 参数 */ void edit(${EntityName}Param ${entityName}Param); @@ -64,7 +74,9 @@ public interface I${EntityName}Service { /** * ${functionName}删除 * + #if(!$authorName.equals("")) * @author ${authorName} + #end * @param id 主键ID */ void del(Integer id); diff --git a/server/like-generator/src/main/resources/java/validate.java.vm b/server/like-generator/src/main/resources/java/validate.java.vm index 8b92c68c..32593df8 100644 --- a/server/like-generator/src/main/resources/java/validate.java.vm +++ b/server/like-generator/src/main/resources/java/validate.java.vm @@ -30,10 +30,19 @@ public class ${EntityName}Param implements Serializable { @IDMust(message = "${column.javaField}参数必传且需大于0", groups = {update.class, delete.class}) #end #if(!$column.isPk && $column.isRequired) - @NotNull(message = "${column.javaField}参数缺失", groups = {create.class, update.class}) + @NotNull(message = "${column.javaField}参数缺失", groups = {#if($column.isInsert)create.class#end#if($column.isInsert&&$column.isEdit), #end#if($column.isEdit)update.class#end}) + #end + #if(!$column.isPk && $column.javaType.equals("String")) + @Length(max = ${column.columnLength}, message = "${column.javaField}参数不能超出${column.columnLength}个字符", groups = {#if($column.isInsert)create.class#end#if($column.isInsert&&$column.isEdit), #end#if($column.isEdit)update.class#end}) + #end + #if(!$column.isPk && $column.javaField.substring(0,2)!="is" && ($column.javaType.equals("Integer") || $column.javaType.equals("Long"))) + @DecimalMin(value = 0, message = "${column.javaField}参数值不能少于0", groups = {#if($column.isInsert)create.class#end#if($column.isInsert&&$column.isEdit), #end#if($column.isEdit)update.class#end}) + #end + #if(!$column.isPk && $column.javaField.substring(0,2)=="is" && $column.javaType.equals("Integer")) + @IntegerContains(values = {0, 1}, message = "${column.javaField}参数值不在符合范围", groups = {#if($column.isInsert)create.class#end#if($column.isInsert&&$column.isEdit), #end#if($column.isEdit)update.class#end}) #end private ${column.javaType} ${column.javaField}; - #end + #end #end } diff --git a/server/like-generator/src/main/resources/java/vo.java.vm b/server/like-generator/src/main/resources/java/vo.java.vm index fea1568b..4267a141 100644 --- a/server/like-generator/src/main/resources/java/vo.java.vm +++ b/server/like-generator/src/main/resources/java/vo.java.vm @@ -13,7 +13,7 @@ public class ${EntityName}Vo implements Serializable { private static final long serialVersionUID = 1L; #foreach ($column in $columns) -#if($column.isList==1) +#if($column.isList==1 || $column.isQuery==1) #if($column.javaField.equals("createTime") || $column.javaField.equals("updateTime") || $column.javaField.equals("deleteTime")) private String ${column.javaField}; #else diff --git a/server/like-generator/src/main/resources/java/voDetail.java.vm b/server/like-generator/src/main/resources/java/voDetail.java.vm new file mode 100644 index 00000000..14caa103 --- /dev/null +++ b/server/like-generator/src/main/resources/java/voDetail.java.vm @@ -0,0 +1,25 @@ +package com.hxkj.admin.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * ${EntityName}Vo + */ +@Data +public class ${EntityName}DetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if($column.isQuery==1) + #if($column.javaField.equals("createTime") || $column.javaField.equals("updateTime") || $column.javaField.equals("deleteTime")) + private String ${column.javaField}; + #else + private ${column.javaType} ${column.javaField}; + #end +#end +#end + +} diff --git a/server/like-generator/src/main/resources/java/voList.java.vm b/server/like-generator/src/main/resources/java/voList.java.vm new file mode 100644 index 00000000..86a20d88 --- /dev/null +++ b/server/like-generator/src/main/resources/java/voList.java.vm @@ -0,0 +1,25 @@ +package com.hxkj.admin.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * ${EntityName}Vo + */ +@Data +public class ${EntityName}ListVo implements Serializable { + + private static final long serialVersionUID = 1L; + +#foreach ($column in $columns) +#if($column.isList==1) + #if($column.javaField.equals("createTime") || $column.javaField.equals("updateTime") || $column.javaField.equals("deleteTime")) + private String ${column.javaField}; + #else + private ${column.javaType} ${column.javaField}; + #end +#end +#end + +}