diff --git a/src/test/java/com/youlai/system/generator/FastAutoGeneratorTest.java b/src/test/java/com/youlai/system/generator/FastAutoGeneratorTest.java index 38d11f68..8942a811 100644 --- a/src/test/java/com/youlai/system/generator/FastAutoGeneratorTest.java +++ b/src/test/java/com/youlai/system/generator/FastAutoGeneratorTest.java @@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.generator.config.DataSourceConfig; import com.baomidou.mybatisplus.generator.config.OutputFile; import com.baomidou.mybatisplus.generator.config.builder.CustomFile; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; +import java.util.*; /** * 代码交互式生成 @@ -22,7 +20,7 @@ import java.util.List; public class FastAutoGeneratorTest { private static final DataSourceConfig.Builder DATA_SOURCE_CONFIG = new DataSourceConfig - .Builder("jdbc:mysql://localhost:3306/youlai_boot?serverTimezone=Asia/Shanghai" , "root" , "123456"); + .Builder("jdbc:mysql://localhost:3306/youlai_boot?serverTimezone=Asia/Shanghai", "root", "123456"); /** * 执行 run @@ -37,14 +35,14 @@ public class FastAutoGeneratorTest { }) // 包配置 .packageConfig(builder -> { - builder - .parent("com.youlai.system") - .entity("model.entity") - .mapper("mapper") - .service("service") - .serviceImpl("service.impl") - .controller("controller") - .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); + builder + .parent("com.youlai.system") + .entity("model.entity") + .mapper("mapper") + .service("service") + .serviceImpl("service.impl") + .controller("controller") + .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); } ) // 注入配置(设置扩展类的模板路径和包路径) @@ -58,14 +56,24 @@ public class FastAutoGeneratorTest { customFiles.add(new CustomFile.Builder().fileName("Form.java").templatePath("/templates/form.java.vm").packageName("model.form").build()); customFiles.add(new CustomFile.Builder().fileName("Converter.java").templatePath("/templates/converter.java.vm").packageName("converter").build()); consumer.customFile(customFiles); + consumer.beforeOutputFile((tableInfo, objectMap) -> { + // 为每个表生成首字母小写的实体名 + String entityName = tableInfo.getEntityName(); + String lowerCaseEntity = entityName.substring(0, 1).toLowerCase() + entityName.substring(1); + // 注入自定义参数 + objectMap.put("firstCharLowerCaseEntity", lowerCaseEntity); + + }); + }) // 策略配置 .strategyConfig((scanner, builder) -> { builder.entityBuilder() .enableLombok() // 是否使用lombok - //.enableFileOverride() // 是否覆盖文件 + //.enableFileOverride() // 开启覆盖已生成的文件 .logicDeleteColumnName("deleted") // 逻辑删除字段名 + .enableRemoveIsPrefix() // 开启移除is前缀 ; builder.mapperBuilder() @@ -73,6 +81,11 @@ public class FastAutoGeneratorTest { .enableBaseResultMap() ; + builder.serviceBuilder() + .formatServiceFileName("%sService" + ); + + builder.addTablePrefix("sys_") // 过滤移除表前缀 sys_user 表生成的实体类 User.java .addInclude(scanner.apply("请输入表名,多个表名用,隔开")); } diff --git a/src/test/resources/templates/controller.java.vm b/src/test/resources/templates/controller.java.vm index 9bf1ff97..ae455628 100644 --- a/src/test/resources/templates/controller.java.vm +++ b/src/test/resources/templates/controller.java.vm @@ -6,20 +6,16 @@ import org.springframework.web.bind.annotation.RestController; import ${package.Parent}.model.form.${entity}Form; import ${package.Parent}.model.query.${entity}PageQuery; import ${package.Parent}.model.vo.${entity}PageVO; -import ${package.Parent}.service.${entity}Service; +import ${package.Parent}.service.${table.serviceName}; import com.baomidou.mybatisplus.core.metadata.IPage; import com.youlai.system.common.result.PageResult; import com.youlai.system.common.result.Result; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; -import lombok.RequiredArgsConstructor; -import org.springdoc.core.annotations.ParameterObject; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import jakarta.validation.Valid; -import java.util.List; #if(${superControllerClassPackage}) import ${superControllerClassPackage}; @@ -28,10 +24,12 @@ import ${superControllerClassPackage}; /** * $!{table.comment} 前端控制器 * - * @author${author} - * @since${date} + * @author ${author} + * @since ${date} */ +@Tag(name = "${table.comment}接口") @RestController +@RequestMapping("/api/v1/${firstCharLowerCaseEntity}s") @RequiredArgsConstructor #if(${superControllerClass}) public class ${table.controllerName} extends ${superControllerClass} { @@ -39,21 +37,19 @@ public class ${table.controllerName} extends ${superControllerClass} { public class ${table.controllerName} { #end - #set($entityLower = $string.toLowerCase($entity)) - private final ${table.serviceName} $entityLowerService; + private final ${table.serviceName} ${firstCharLowerCaseEntity}Service; @Operation(summary = "$!{table.comment}分页列表") @GetMapping("/page") public PageResult<${entity}PageVO> listPaged${entity}s(${entity}PageQuery queryParams ) { - IPage<${entity}PageVO> result = ${entityLower}Service.listPaged${entity}s(queryParams); + IPage<${entity}PageVO> result = ${firstCharLowerCaseEntity}Service.listPaged${entity}s(queryParams); return PageResult.success(result); } @Operation(summary = "新增$!{table.comment}") @PostMapping - @PreventDuplicateSubmit public Result save${entity}(@RequestBody @Valid ${entity}Form formData ) { - boolean result = ${entityLower}Service.save${entity}(userForm); + boolean result = ${firstCharLowerCaseEntity}Service.save${entity}(formData); return Result.judge(result); } @@ -62,7 +58,7 @@ public class ${table.controllerName} { public Result<${entity}Form> get${entity}Form( @Parameter(description = "$!{table.comment}ID") @PathVariable Long id ) { - ${entity}Form formData = ${entityLower}Service.get${entity}FormData(id); + ${entity}Form formData = ${firstCharLowerCaseEntity}Service.get${entity}FormData(id); return Result.success(formData); } @@ -70,7 +66,7 @@ public class ${table.controllerName} { @PutMapping(value = "/{id}") public Result update${entity}(@Parameter(description = "$!{table.comment}ID") @PathVariable Long id, @RequestBody @Validated ${entity}Form formData) { - boolean result = ${entityLower}Service.update${entity}(userId, formData); + boolean result = ${firstCharLowerCaseEntity}Service.update${entity}(id, formData); return Result.judge(result); } @@ -79,7 +75,7 @@ public class ${table.controllerName} { public Result delete${entity}s( @Parameter(description = "$!{table.comment}ID,多个以英文逗号(,)分割") @PathVariable String ids ) { - boolean result = ${entityLower}Service.delete${entity}s(ids); + boolean result = ${firstCharLowerCaseEntity}Service.delete${entity}s(ids); return Result.judge(result); } } diff --git a/src/test/resources/templates/service.java.vm b/src/test/resources/templates/service.java.vm index 2556ab94..76f7ad35 100644 --- a/src/test/resources/templates/service.java.vm +++ b/src/test/resources/templates/service.java.vm @@ -26,7 +26,7 @@ public interface ${table.serviceName} extends ${superServiceClass}<${entity}> { /** * 获取$!{table.comment}表单数据 * - * @param userId + * @param id $!{table.comment}ID * @return */ ${entity}Form get${entity}FormData(Long id); diff --git a/src/test/resources/templates/serviceImpl.java.vm b/src/test/resources/templates/serviceImpl.java.vm index 4ee4df71..09b5addf 100644 --- a/src/test/resources/templates/serviceImpl.java.vm +++ b/src/test/resources/templates/serviceImpl.java.vm @@ -21,6 +21,9 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; + /** * $!{table.comment} 服务实现类 *