Commit e7e3b187040d6b75703e2cda89fdc2c50b103c67

Authored by YunaiV
1 parent fffd023d

多模块重构 6:tool 模块的迁移完成

Showing 71 changed files with 667 additions and 517 deletions
@@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
17 <!-- <module>yudao-module-bpm</module>--> 17 <!-- <module>yudao-module-bpm</module>-->
18 <module>yudao-module-system</module> 18 <module>yudao-module-system</module>
19 <module>yudao-module-infra</module> 19 <module>yudao-module-infra</module>
  20 + <module>yudao-module-tool</module>
20 </modules> 21 </modules>
21 22
22 <name>${artifactId}</name> 23 <name>${artifactId}</name>
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/ToolCodegenDetailRespVO.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo;  
2 -  
3 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.column.ToolCodegenColumnRespVO;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTableRespVO;  
5 -import io.swagger.annotations.ApiModel;  
6 -import io.swagger.annotations.ApiModelProperty;  
7 -import lombok.Data;  
8 -  
9 -import java.util.List;  
10 -  
11 -@ApiModel("代码生成表和字段的明细 Response VO")  
12 -@Data  
13 -public class ToolCodegenDetailRespVO {  
14 -  
15 - @ApiModelProperty("表定义")  
16 - private ToolCodegenTableRespVO table;  
17 -  
18 - @ApiModelProperty("字段定义")  
19 - private List<ToolCodegenColumnRespVO> columns;  
20 -  
21 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/convert/codegen/ToolCodegenConvert.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.convert.codegen;  
2 -  
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenDetailRespVO;  
5 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenPreviewRespVO;  
6 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenUpdateReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.column.ToolCodegenColumnRespVO;  
8 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTableRespVO;  
9 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolSchemaTableRespVO;  
10 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;  
11 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;  
12 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO;  
13 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO;  
14 -import org.mapstruct.Mapper;  
15 -import org.mapstruct.factory.Mappers;  
16 -  
17 -import java.util.List;  
18 -import java.util.Map;  
19 -import java.util.stream.Collectors;  
20 -  
21 -@Mapper  
22 -public interface ToolCodegenConvert {  
23 -  
24 - ToolCodegenConvert INSTANCE = Mappers.getMapper(ToolCodegenConvert.class);  
25 -  
26 - // ========== ToolInformationSchemaTableDO 和 ToolInformationSchemaColumnDO 相关 ==========  
27 -  
28 - ToolCodegenTableDO convert(ToolSchemaTableDO bean);  
29 -  
30 - List<ToolCodegenColumnDO> convertList(List<ToolSchemaColumnDO> list);  
31 -  
32 - ToolCodegenTableRespVO convert(ToolSchemaColumnDO bean);  
33 -  
34 - // ========== ToolCodegenTableDO 相关 ==========  
35 -  
36 -// List<ToolCodegenTableRespVO> convertList02(List<ToolCodegenTableDO> list);  
37 -  
38 - ToolCodegenTableRespVO convert(ToolCodegenTableDO bean);  
39 -  
40 - PageResult<ToolCodegenTableRespVO> convertPage(PageResult<ToolCodegenTableDO> page);  
41 -  
42 - // ========== ToolCodegenTableDO 相关 ==========  
43 -  
44 - List<ToolCodegenColumnRespVO> convertList02(List<ToolCodegenColumnDO> list);  
45 -  
46 - ToolCodegenTableDO convert(ToolCodegenUpdateReqVO.Table bean);  
47 -  
48 - List<ToolCodegenColumnDO> convertList03(List<ToolCodegenUpdateReqVO.Column> columns);  
49 -  
50 - List<ToolSchemaTableRespVO> convertList04(List<ToolSchemaTableDO> list);  
51 -  
52 - // ========== 其它 ==========  
53 -  
54 - default ToolCodegenDetailRespVO convert(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) {  
55 - ToolCodegenDetailRespVO respVO = new ToolCodegenDetailRespVO();  
56 - respVO.setTable(convert(table));  
57 - respVO.setColumns(convertList02(columns));  
58 - return respVO;  
59 - }  
60 -  
61 - default List<ToolCodegenPreviewRespVO> convert(Map<String, String> codes) {  
62 - return codes.entrySet().stream().map(entry -> {  
63 - ToolCodegenPreviewRespVO respVO = new ToolCodegenPreviewRespVO();  
64 - respVO.setFilePath(entry.getKey());  
65 - respVO.setCode(entry.getValue());  
66 - return respVO;  
67 - }).collect(Collectors.toList());  
68 - }  
69 -  
70 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/convert/test/ToolTestDemoConvert.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.convert.test;  
2 -  
3 -import java.util.*;  
4 -  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -  
7 -import org.mapstruct.Mapper;  
8 -import org.mapstruct.factory.Mappers;  
9 -import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;  
10 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO;  
11 -  
12 -/**  
13 - * 字典类型 Convert  
14 - *  
15 - * @author 芋艿  
16 - */  
17 -@Mapper  
18 -public interface ToolTestDemoConvert {  
19 -  
20 - ToolTestDemoConvert INSTANCE = Mappers.getMapper(ToolTestDemoConvert.class);  
21 -  
22 - ToolTestDemoDO convert(ToolTestDemoCreateReqVO bean);  
23 -  
24 - ToolTestDemoDO convert(ToolTestDemoUpdateReqVO bean);  
25 -  
26 - ToolTestDemoRespVO convert(ToolTestDemoDO bean);  
27 -  
28 - List<ToolTestDemoRespVO> convertList(List<ToolTestDemoDO> list);  
29 -  
30 - PageResult<ToolTestDemoRespVO> convertPage(PageResult<ToolTestDemoDO> page);  
31 -  
32 - List<ToolTestDemoExcelVO> convertList02(List<ToolTestDemoDO> list);  
33 -  
34 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolSchemaColumnMapper.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO;  
5 -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;  
6 -import org.apache.ibatis.annotations.Mapper;  
7 -  
8 -import java.util.List;  
9 -  
10 -@Mapper  
11 -public interface ToolSchemaColumnMapper extends BaseMapperX<ToolSchemaColumnDO> {  
12 -  
13 - default List<ToolSchemaColumnDO> selectListByTableName(String tableSchema, String tableName) {  
14 - return selectList(new QueryWrapper<ToolSchemaColumnDO>().eq("table_name", tableName)  
15 - .eq("table_schema", tableSchema)  
16 - .orderByAsc("ordinal_position"));  
17 - }  
18 -  
19 -}  
yudao-admin-server/src/main/resources/application-dev.yaml
@@ -100,7 +100,7 @@ apollo: @@ -100,7 +100,7 @@ apollo:
100 eagerLoad: 100 eagerLoad:
101 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置 101 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置
102 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址 102 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址
103 - dao: cn.iocoder.yudao.module.infra.dal.mysql.config.ConfigCoreDAOImpl 103 + dao: cn.iocoder.yudao.module.infra.dal.mysql.config.ConfigDAOImpl
104 url: ${spring.datasource.dynamic.datasource.master.url} 104 url: ${spring.datasource.dynamic.datasource.master.url}
105 username: ${spring.datasource.dynamic.datasource.master.username} 105 username: ${spring.datasource.dynamic.datasource.master.username}
106 password: ${spring.datasource.dynamic.datasource.master.password} 106 password: ${spring.datasource.dynamic.datasource.master.password}
yudao-admin-server/src/main/resources/application-local.yaml
@@ -113,7 +113,7 @@ apollo: @@ -113,7 +113,7 @@ apollo:
113 eagerLoad: 113 eagerLoad:
114 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置 114 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置
115 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址 115 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址
116 - dao: cn.iocoder.yudao.module.infra.dal.mysql.config.ConfigCoreDAOImpl 116 + dao: cn.iocoder.yudao.module.infra.dal.mysql.config.ConfigDAOImpl
117 url: ${spring.datasource.dynamic.datasource.master.url} 117 url: ${spring.datasource.dynamic.datasource.master.url}
118 username: ${spring.datasource.dynamic.datasource.master.username} 118 username: ${spring.datasource.dynamic.datasource.master.username}
119 password: ${spring.datasource.dynamic.datasource.master.password} 119 password: ${spring.datasource.dynamic.datasource.master.password}
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaColumnMapperTest.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.mysql.codegen;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
4 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO; 4 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.ToolSchemaColumnDO;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 6
7 import javax.annotation.Resource; 7 import javax.annotation.Resource;
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolInformationSchemaTableMapperTest.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.mysql.codegen;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
4 4
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenEngineTest.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen; 1 +package cn.iocoder.yudao.module.tool.service.codegen;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
4 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;  
5 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;  
6 -import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen.ToolCodegenColumnMapper;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen.ToolCodegenTableMapper;  
8 -import cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl.ToolCodegenEngine; 4 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.ToolCodegenColumnDO;
  5 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.ToolCodegenTableDO;
  6 +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.ToolCodegenColumnMapper;
  7 +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.ToolCodegenTableMapper;
  8 +import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenEngine;
9 import org.junit.jupiter.api.Test; 9 import org.junit.jupiter.api.Test;
10 10
11 import javax.annotation.Resource; 11 import javax.annotation.Resource;
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenSQLParserTest.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen; 1 +package cn.iocoder.yudao.module.tool.service.codegen;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
4 -import cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl.ToolCodegenSQLParser; 4 +import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenSQLParser;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 6
7 public class ToolCodegenSQLParserTest extends BaseDbUnitTest { 7 public class ToolCodegenSQLParserTest extends BaseDbUnitTest {
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenServiceImplTest.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen; 1 +package cn.iocoder.yudao.module.tool.service.codegen;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
4 -import cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl.ToolCodegenServiceImpl; 4 +import cn.iocoder.yudao.module.tool.service.codegen.impl.ToolCodegenServiceImpl;
5 import org.junit.jupiter.api.Test; 5 import org.junit.jupiter.api.Test;
6 6
7 import javax.annotation.Resource; 7 import javax.annotation.Resource;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/package-info.java deleted
1 -package cn.iocoder.yudao.module.system.api;  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
@@ -137,7 +137,6 @@ public class AdminAuthServiceImpl implements AdminAuthService { @@ -137,7 +137,6 @@ public class AdminAuthServiceImpl implements AdminAuthService {
137 // 在其内部,会调用到 loadUserByUsername 方法,获取 User 信息 137 // 在其内部,会调用到 loadUserByUsername 方法,获取 User 信息
138 authentication = authenticationManager.authenticate(new MultiUsernamePasswordAuthenticationToken( 138 authentication = authenticationManager.authenticate(new MultiUsernamePasswordAuthenticationToken(
139 username, password, getUserType())); 139 username, password, getUserType()));
140 - // org.activiti.engine.impl.identity.Authentication.setAuthenticatedUserId(username);  
141 } catch (BadCredentialsException badCredentialsException) { 140 } catch (BadCredentialsException badCredentialsException) {
142 this.createLoginLog(username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); 141 this.createLoginLog(username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS);
143 throw exception(AUTH_LOGIN_BAD_CREDENTIALS); 142 throw exception(AUTH_LOGIN_BAD_CREDENTIALS);
yudao-module-tool/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <modules>
  12 + <module>yudao-module-tool-api</module>
  13 + <module>yudao-module-tool-impl</module>
  14 + </modules>
  15 + <artifactId>yudao-module-tool</artifactId>
  16 + <packaging>pom</packaging>
  17 +
  18 + <name>${artifactId}</name>
  19 + <description>
  20 + tool 模块,我们放研发工具,提升研发效率与质量。
  21 + 例如说:代码生成器、接口文档等等
  22 + </description>
  23 +
  24 +</project>
yudao-module-tool/yudao-module-tool-api/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <groupId>cn.iocoder.boot</groupId>
  7 + <artifactId>yudao-module-tool</artifactId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-tool-api</artifactId>
  12 + <packaging>jar</packaging>
  13 +
  14 + <name>${artifactId}</name>
  15 + <description>
  16 + tool 模块 API,暴露给其它模块调用
  17 + </description>
  18 +
  19 + <dependencies>
  20 + <dependency>
  21 + <groupId>cn.iocoder.boot</groupId>
  22 + <artifactId>yudao-common</artifactId>
  23 + </dependency>
  24 + </dependencies>
  25 +
  26 +</project>
yudao-module-tool/yudao-module-tool-api/src/main/java/cn/iocoder/yudao/module/tool/api/package-info.java 0 → 100644
  1 +/**
  2 + * Tool API 包,定义暴露给其它模块的 API
  3 + */
  4 +package cn.iocoder.yudao.module.tool.api;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/ToolDictTypeConstants.java renamed to yudao-module-tool/yudao-module-tool-api/src/main/java/cn/iocoder/yudao/module/tool/enums/DictTypeConstants.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.enums; 1 +package cn.iocoder.yudao.module.tool.enums;
2 2
3 /** 3 /**
4 * Tool 字典类型的枚举类 4 * Tool 字典类型的枚举类
5 * 5 *
6 * @author 芋道源码 6 * @author 芋道源码
7 */ 7 */
8 -public interface ToolDictTypeConstants { 8 +public interface DictTypeConstants {
9 9
10 String TEST_DEMO_TYPE = "tool_test_demo_type"; 10 String TEST_DEMO_TYPE = "tool_test_demo_type";
11 11
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/ToolErrorCodeConstants.java renamed to yudao-module-tool/yudao-module-tool-api/src/main/java/cn/iocoder/yudao/module/tool/enums/ErrorCodeConstants.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.enums; 1 +package cn.iocoder.yudao.module.tool.enums;
2 2
3 import cn.iocoder.yudao.framework.common.exception.ErrorCode; 3 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
4 4
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode; @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
7 * 7 *
8 * tool 系统,使用 1-003-000-000 段 8 * tool 系统,使用 1-003-000-000 段
9 */ 9 */
10 -public interface ToolErrorCodeConstants { 10 +public interface ErrorCodeConstants {
11 11
12 // ========== 字典类型(测试) 1003000000 ========== 12 // ========== 字典类型(测试) 1003000000 ==========
13 ErrorCode TEST_DEMO_NOT_EXISTS = new ErrorCode(1003000000, "测试示例不存在"); 13 ErrorCode TEST_DEMO_NOT_EXISTS = new ErrorCode(1003000000, "测试示例不存在");
yudao-module-tool/yudao-module-tool-api/src/main/java/cn/iocoder/yudao/module/tool/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.tool;
yudao-module-tool/yudao-module-tool-impl/pom.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <parent>
  6 + <artifactId>yudao-module-tool</artifactId>
  7 + <groupId>cn.iocoder.boot</groupId>
  8 + <version>${revision}</version>
  9 + </parent>
  10 + <modelVersion>4.0.0</modelVersion>
  11 + <artifactId>yudao-module-tool-impl</artifactId>
  12 + <packaging>jar</packaging>
  13 +
  14 + <name>${artifactId}</name>
  15 + <description>
  16 + tool 模块,我们放研发工具,提升研发效率与质量。
  17 + 例如说:代码生成器、接口文档等等
  18 + </description>
  19 +
  20 + <dependencies>
  21 + <dependency>
  22 + <groupId>cn.iocoder.boot</groupId>
  23 + <artifactId>yudao-module-tool-api</artifactId>
  24 + <version>${revision}</version>
  25 + </dependency>
  26 +
  27 + <!-- 业务组件 -->
  28 + <dependency>
  29 + <groupId>cn.iocoder.boot</groupId>
  30 + <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
  31 + </dependency>
  32 + <dependency>
  33 + <groupId>cn.iocoder.boot</groupId>
  34 + <artifactId>yudao-spring-boot-starter-biz-dict</artifactId>
  35 + </dependency>
  36 +
  37 + <!-- Web 相关 -->
  38 + <dependency>
  39 + <groupId>cn.iocoder.boot</groupId>
  40 + <artifactId>yudao-spring-boot-starter-security</artifactId>
  41 + </dependency>
  42 +
  43 + <!-- DB 相关 -->
  44 + <dependency>
  45 + <groupId>cn.iocoder.boot</groupId>
  46 + <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
  47 + </dependency>
  48 +
  49 + <!-- Test 测试相关 -->
  50 + <dependency>
  51 + <groupId>cn.iocoder.boot</groupId>
  52 + <artifactId>yudao-spring-boot-starter-test</artifactId>
  53 + <scope>test</scope>
  54 + </dependency>
  55 +
  56 + <!-- 工具类相关 -->
  57 + <dependency>
  58 + <groupId>cn.iocoder.boot</groupId>
  59 + <artifactId>yudao-spring-boot-starter-excel</artifactId>
  60 + </dependency>
  61 + </dependencies>
  62 +
  63 + <build>
  64 + <!-- 设置构建的 jar 包名 -->
  65 + <finalName>${artifactId}</finalName>
  66 + <plugins>
  67 + <!-- 打包 -->
  68 + <plugin>
  69 + <groupId>org.springframework.boot</groupId>
  70 + <artifactId>spring-boot-maven-plugin</artifactId>
  71 + <configuration>
  72 + <fork>true</fork>
  73 + </configuration>
  74 + <executions>
  75 + <execution>
  76 + <goals>
  77 + <goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
  78 + </goals>
  79 + </execution>
  80 + </executions>
  81 + </plugin>
  82 + </plugins>
  83 + </build>
  84 +
  85 +</project>
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/ToolCodegenController.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/CodegenController.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen;
2 2
3 import cn.hutool.core.io.IoUtil; 3 import cn.hutool.core.io.IoUtil;
4 import cn.hutool.core.util.ZipUtil; 4 import cn.hutool.core.util.ZipUtil;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenDetailRespVO;  
8 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenPreviewRespVO;  
9 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenUpdateReqVO;  
10 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;  
11 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTableRespVO;  
12 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolSchemaTableRespVO;  
13 -import cn.iocoder.yudao.adminserver.modules.tool.convert.codegen.ToolCodegenConvert;  
14 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;  
15 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;  
16 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO;  
17 -import cn.iocoder.yudao.adminserver.modules.tool.service.codegen.ToolCodegenService; 7 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenDetailRespVO;
  8 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenPreviewRespVO;
  9 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenUpdateReqVO;
  10 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTablePageReqVO;
  11 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTableRespVO;
  12 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.SchemaTableRespVO;
  13 +import cn.iocoder.yudao.module.tool.convert.codegen.CodegenConvert;
  14 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO;
  15 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO;
  16 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaTableDO;
  17 +import cn.iocoder.yudao.module.tool.service.codegen.CodegenService;
18 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 18 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
19 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; 19 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
20 import io.swagger.annotations.Api; 20 import io.swagger.annotations.Api;
@@ -37,14 +37,14 @@ import java.util.Set; @@ -37,14 +37,14 @@ import java.util.Set;
37 37
38 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 38 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
39 39
40 -@Api(tags = "代码生成器") 40 +@Api(tags = "管理后台 - 代码生成器")
41 @RestController 41 @RestController
42 @RequestMapping("/tool/codegen") 42 @RequestMapping("/tool/codegen")
43 @Validated 43 @Validated
44 -public class ToolCodegenController { 44 +public class CodegenController {
45 45
46 @Resource 46 @Resource
47 - private ToolCodegenService codegenService; 47 + private CodegenService codegenService;
48 48
49 @GetMapping("/db/table/list") 49 @GetMapping("/db/table/list")
50 @ApiOperation(value = "获得数据库自带的表定义列表", notes = "会过滤掉已经导入 Codegen 的表") 50 @ApiOperation(value = "获得数据库自带的表定义列表", notes = "会过滤掉已经导入 Codegen 的表")
@@ -53,34 +53,34 @@ public class ToolCodegenController { @@ -53,34 +53,34 @@ public class ToolCodegenController {
53 @ApiImplicitParam(name = "tableComment", value = "描述,模糊匹配", required = true, example = "芋道", dataTypeClass = String.class) 53 @ApiImplicitParam(name = "tableComment", value = "描述,模糊匹配", required = true, example = "芋道", dataTypeClass = String.class)
54 }) 54 })
55 @PreAuthorize("@ss.hasPermission('tool:codegen:query')") 55 @PreAuthorize("@ss.hasPermission('tool:codegen:query')")
56 - public CommonResult<List<ToolSchemaTableRespVO>> getSchemaTableList( 56 + public CommonResult<List<SchemaTableRespVO>> getSchemaTableList(
57 @RequestParam(value = "tableName", required = false) String tableName, 57 @RequestParam(value = "tableName", required = false) String tableName,
58 @RequestParam(value = "tableComment", required = false) String tableComment) { 58 @RequestParam(value = "tableComment", required = false) String tableComment) {
59 // 获得数据库自带的表定义列表 59 // 获得数据库自带的表定义列表
60 - List<ToolSchemaTableDO> schemaTables = codegenService.getSchemaTableList(tableName, tableComment); 60 + List<SchemaTableDO> schemaTables = codegenService.getSchemaTableList(tableName, tableComment);
61 // 移除在 Codegen 中,已经存在的 61 // 移除在 Codegen 中,已经存在的
62 - Set<String> existsTables = CollectionUtils.convertSet(codegenService.getCodeGenTableList(), ToolCodegenTableDO::getTableName); 62 + Set<String> existsTables = CollectionUtils.convertSet(codegenService.getCodeGenTableList(), CodegenTableDO::getTableName);
63 schemaTables.removeIf(table -> existsTables.contains(table.getTableName())); 63 schemaTables.removeIf(table -> existsTables.contains(table.getTableName()));
64 - return success(ToolCodegenConvert.INSTANCE.convertList04(schemaTables)); 64 + return success(CodegenConvert.INSTANCE.convertList04(schemaTables));
65 } 65 }
66 66
67 @GetMapping("/table/page") 67 @GetMapping("/table/page")
68 @ApiOperation("获得表定义分页") 68 @ApiOperation("获得表定义分页")
69 @PreAuthorize("@ss.hasPermission('tool:codegen:query')") 69 @PreAuthorize("@ss.hasPermission('tool:codegen:query')")
70 - public CommonResult<PageResult<ToolCodegenTableRespVO>> getCodeGenTablePage(@Valid ToolCodegenTablePageReqVO pageReqVO) {  
71 - PageResult<ToolCodegenTableDO> pageResult = codegenService.getCodegenTablePage(pageReqVO);  
72 - return success(ToolCodegenConvert.INSTANCE.convertPage(pageResult)); 70 + public CommonResult<PageResult<CodegenTableRespVO>> getCodeGenTablePage(@Valid CodegenTablePageReqVO pageReqVO) {
  71 + PageResult<CodegenTableDO> pageResult = codegenService.getCodegenTablePage(pageReqVO);
  72 + return success(CodegenConvert.INSTANCE.convertPage(pageResult));
73 } 73 }
74 74
75 @GetMapping("/detail") 75 @GetMapping("/detail")
76 @ApiOperation("获得表和字段的明细") 76 @ApiOperation("获得表和字段的明细")
77 @ApiImplicitParam(name = "tableId", value = "表编号", required = true, example = "1024", dataTypeClass = Long.class) 77 @ApiImplicitParam(name = "tableId", value = "表编号", required = true, example = "1024", dataTypeClass = Long.class)
78 @PreAuthorize("@ss.hasPermission('tool:codegen:query')") 78 @PreAuthorize("@ss.hasPermission('tool:codegen:query')")
79 - public CommonResult<ToolCodegenDetailRespVO> getCodegenDetail(@RequestParam("tableId") Long tableId) {  
80 - ToolCodegenTableDO table = codegenService.getCodegenTablePage(tableId);  
81 - List<ToolCodegenColumnDO> columns = codegenService.getCodegenColumnListByTableId(tableId); 79 + public CommonResult<CodegenDetailRespVO> getCodegenDetail(@RequestParam("tableId") Long tableId) {
  80 + CodegenTableDO table = codegenService.getCodegenTablePage(tableId);
  81 + List<CodegenColumnDO> columns = codegenService.getCodegenColumnListByTableId(tableId);
82 // 拼装返回 82 // 拼装返回
83 - return success(ToolCodegenConvert.INSTANCE.convert(table, columns)); 83 + return success(CodegenConvert.INSTANCE.convert(table, columns));
84 } 84 }
85 85
86 @ApiOperation("基于数据库的表结构,创建代码生成器的表和字段定义") 86 @ApiOperation("基于数据库的表结构,创建代码生成器的表和字段定义")
@@ -102,7 +102,7 @@ public class ToolCodegenController { @@ -102,7 +102,7 @@ public class ToolCodegenController {
102 @ApiOperation("更新数据库的表和字段定义") 102 @ApiOperation("更新数据库的表和字段定义")
103 @PutMapping("/update") 103 @PutMapping("/update")
104 @PreAuthorize("@ss.hasPermission('tool:codegen:update')") 104 @PreAuthorize("@ss.hasPermission('tool:codegen:update')")
105 - public CommonResult<Boolean> updateCodegen(@Valid @RequestBody ToolCodegenUpdateReqVO updateReqVO) { 105 + public CommonResult<Boolean> updateCodegen(@Valid @RequestBody CodegenUpdateReqVO updateReqVO) {
106 codegenService.updateCodegen(updateReqVO); 106 codegenService.updateCodegen(updateReqVO);
107 return success(true); 107 return success(true);
108 } 108 }
@@ -142,9 +142,9 @@ public class ToolCodegenController { @@ -142,9 +142,9 @@ public class ToolCodegenController {
142 @GetMapping("/preview") 142 @GetMapping("/preview")
143 @ApiImplicitParam(name = "tableId", value = "表编号", required = true, example = "1024", dataTypeClass = Long.class) 143 @ApiImplicitParam(name = "tableId", value = "表编号", required = true, example = "1024", dataTypeClass = Long.class)
144 @PreAuthorize("@ss.hasPermission('tool:codegen:preview')") 144 @PreAuthorize("@ss.hasPermission('tool:codegen:preview')")
145 - public CommonResult<List<ToolCodegenPreviewRespVO>> previewCodegen(@RequestParam("tableId") Long tableId) { 145 + public CommonResult<List<CodegenPreviewRespVO>> previewCodegen(@RequestParam("tableId") Long tableId) {
146 Map<String, String> codes = codegenService.generationCodes(tableId); 146 Map<String, String> codes = codegenService.generationCodes(tableId);
147 - return success(ToolCodegenConvert.INSTANCE.convert(codes)); 147 + return success(CodegenConvert.INSTANCE.convert(codes));
148 } 148 }
149 149
150 @ApiOperation("下载生成代码") 150 @ApiOperation("下载生成代码")
yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/CodegenDetailRespVO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo;
  2 +
  3 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.column.CodegenColumnRespVO;
  4 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTableRespVO;
  5 +import io.swagger.annotations.ApiModel;
  6 +import io.swagger.annotations.ApiModelProperty;
  7 +import lombok.Data;
  8 +
  9 +import java.util.List;
  10 +
  11 +@ApiModel("管理后台 - 代码生成表和字段的明细 Response VO")
  12 +@Data
  13 +public class CodegenDetailRespVO {
  14 +
  15 + @ApiModelProperty("表定义")
  16 + private CodegenTableRespVO table;
  17 +
  18 + @ApiModelProperty("字段定义")
  19 + private List<CodegenColumnRespVO> columns;
  20 +
  21 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/ToolCodegenPreviewRespVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/CodegenPreviewRespVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data; 5 import lombok.Data;
6 6
7 -@ApiModel(value = "代码生成预览 Response VO", description ="注意,每个文件都是一个该对象") 7 +@ApiModel(value = "管理后台 - 代码生成预览 Response VO", description ="注意,每个文件都是一个该对象")
8 @Data 8 @Data
9 -public class ToolCodegenPreviewRespVO { 9 +public class CodegenPreviewRespVO {
10 10
11 @ApiModelProperty(value = "文件路径", required = true, example = "java/cn/iocoder/yudao/adminserver/modules/system/controller/test/SysTestDemoController.java") 11 @ApiModelProperty(value = "文件路径", required = true, example = "java/cn/iocoder/yudao/adminserver/modules/system/controller/test/SysTestDemoController.java")
12 private String filePath; 12 private String filePath;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/ToolCodegenUpdateReqVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/CodegenUpdateReqVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.column.ToolCodegenColumnBaseVO;  
4 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTableBaseVO; 3 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTableBaseVO;
  4 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.column.CodegenColumnBaseVO;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.Data; 7 import lombok.Data;
@@ -12,9 +12,9 @@ import javax.validation.Valid; @@ -12,9 +12,9 @@ import javax.validation.Valid;
12 import javax.validation.constraints.NotNull; 12 import javax.validation.constraints.NotNull;
13 import java.util.List; 13 import java.util.List;
14 14
15 -@ApiModel("代码生成表和字段的修改 Request VO") 15 +@ApiModel("管理后台 - 代码生成表和字段的修改 Request VO")
16 @Data 16 @Data
17 -public class ToolCodegenUpdateReqVO { 17 +public class CodegenUpdateReqVO {
18 18
19 @Valid // 校验内嵌的字段 19 @Valid // 校验内嵌的字段
20 @NotNull(message = "表定义不能为空") 20 @NotNull(message = "表定义不能为空")
@@ -28,7 +28,7 @@ public class ToolCodegenUpdateReqVO { @@ -28,7 +28,7 @@ public class ToolCodegenUpdateReqVO {
28 @Data 28 @Data
29 @EqualsAndHashCode(callSuper = true) 29 @EqualsAndHashCode(callSuper = true)
30 @ToString(callSuper = true) 30 @ToString(callSuper = true)
31 - public static class Table extends ToolCodegenTableBaseVO { 31 + public static class Table extends CodegenTableBaseVO {
32 32
33 @ApiModelProperty(value = "编号", required = true, example = "1") 33 @ApiModelProperty(value = "编号", required = true, example = "1")
34 private Long id; 34 private Long id;
@@ -39,7 +39,7 @@ public class ToolCodegenUpdateReqVO { @@ -39,7 +39,7 @@ public class ToolCodegenUpdateReqVO {
39 @Data 39 @Data
40 @EqualsAndHashCode(callSuper = true) 40 @EqualsAndHashCode(callSuper = true)
41 @ToString(callSuper = true) 41 @ToString(callSuper = true)
42 - public static class Column extends ToolCodegenColumnBaseVO { 42 + public static class Column extends CodegenColumnBaseVO {
43 43
44 @ApiModelProperty(value = "编号", required = true, example = "1") 44 @ApiModelProperty(value = "编号", required = true, example = "1")
45 private Long id; 45 private Long id;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/column/ToolCodegenColumnBaseVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/column/CodegenColumnBaseVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.column; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.column;
2 2
3 import io.swagger.annotations.ApiModelProperty; 3 import io.swagger.annotations.ApiModelProperty;
4 import lombok.Data; 4 import lombok.Data;
@@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull; @@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
10 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 10 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
11 */ 11 */
12 @Data 12 @Data
13 -public class ToolCodegenColumnBaseVO { 13 +public class CodegenColumnBaseVO {
14 14
15 @ApiModelProperty(value = "表编号", required = true, example = "1") 15 @ApiModelProperty(value = "表编号", required = true, example = "1")
16 @NotNull(message = "表编号不能为空") 16 @NotNull(message = "表编号不能为空")
@@ -70,7 +70,7 @@ public class ToolCodegenColumnBaseVO { @@ -70,7 +70,7 @@ public class ToolCodegenColumnBaseVO {
70 @NotNull(message = "是否为 List 查询操作的字段不能为空") 70 @NotNull(message = "是否为 List 查询操作的字段不能为空")
71 private Boolean listOperation; 71 private Boolean listOperation;
72 72
73 - @ApiModelProperty(value = "List 查询操作的条件类型", required = true, example = "LIKE", notes = "参见 ToolCodegenColumnListConditionEnum 枚举") 73 + @ApiModelProperty(value = "List 查询操作的条件类型", required = true, example = "LIKE", notes = "参见 CodegenColumnListConditionEnum 枚举")
74 @NotNull(message = "List 查询操作的条件类型不能为空") 74 @NotNull(message = "List 查询操作的条件类型不能为空")
75 private String listOperationCondition; 75 private String listOperationCondition;
76 76
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/column/ToolCodegenColumnRespVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/column/CodegenColumnRespVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.column; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.column;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
@@ -8,11 +8,11 @@ import lombok.ToString; @@ -8,11 +8,11 @@ import lombok.ToString;
8 8
9 import java.util.Date; 9 import java.util.Date;
10 10
11 -@ApiModel("代码生成字段定义 Response VO") 11 +@ApiModel("管理后台 - 代码生成字段定义 Response VO")
12 @Data 12 @Data
13 @EqualsAndHashCode(callSuper = true) 13 @EqualsAndHashCode(callSuper = true)
14 @ToString(callSuper = true) 14 @ToString(callSuper = true)
15 -public class ToolCodegenColumnRespVO extends ToolCodegenColumnBaseVO { 15 +public class CodegenColumnRespVO extends CodegenColumnBaseVO {
16 16
17 @ApiModelProperty(value = "编号", required = true, example = "1") 17 @ApiModelProperty(value = "编号", required = true, example = "1")
18 private Long id; 18 private Long id;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/table/ToolCodegenTableBaseVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/table/CodegenTableBaseVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table;
2 2
3 import io.swagger.annotations.ApiModelProperty; 3 import io.swagger.annotations.ApiModelProperty;
4 import lombok.Data; 4 import lombok.Data;
@@ -10,9 +10,9 @@ import javax.validation.constraints.NotNull; @@ -10,9 +10,9 @@ import javax.validation.constraints.NotNull;
10 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 10 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
11 */ 11 */
12 @Data 12 @Data
13 -public class ToolCodegenTableBaseVO { 13 +public class CodegenTableBaseVO {
14 14
15 - @ApiModelProperty(value = "导入类型", required = true, example = "1", notes = "参见 ToolCodegenImportTypeEnum 枚举") 15 + @ApiModelProperty(value = "导入类型", required = true, example = "1", notes = "参见 CodegenImportTypeEnum 枚举")
16 @NotNull(message = "导入类型不能为空") 16 @NotNull(message = "导入类型不能为空")
17 private Integer importType; 17 private Integer importType;
18 18
@@ -35,7 +35,7 @@ public class ToolCodegenTableBaseVO { @@ -35,7 +35,7 @@ public class ToolCodegenTableBaseVO {
35 @NotNull(message = "业务名不能为空") 35 @NotNull(message = "业务名不能为空")
36 private String businessName; 36 private String businessName;
37 37
38 - @ApiModelProperty(value = "类名称", required = true, example = "ToolCodegenTable") 38 + @ApiModelProperty(value = "类名称", required = true, example = "CodegenTable")
39 @NotNull(message = "类名称不能为空") 39 @NotNull(message = "类名称不能为空")
40 private String className; 40 private String className;
41 41
@@ -47,7 +47,7 @@ public class ToolCodegenTableBaseVO { @@ -47,7 +47,7 @@ public class ToolCodegenTableBaseVO {
47 @NotNull(message = "作者不能为空") 47 @NotNull(message = "作者不能为空")
48 private String author; 48 private String author;
49 49
50 - @ApiModelProperty(value = "模板类型", required = true, example = "1", notes = "参见 ToolCodegenTemplateTypeEnum 枚举") 50 + @ApiModelProperty(value = "模板类型", required = true, example = "1", notes = "参见 CodegenTemplateTypeEnum 枚举")
51 @NotNull(message = "模板类型不能为空") 51 @NotNull(message = "模板类型不能为空")
52 private Integer templateType; 52 private Integer templateType;
53 53
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/table/ToolCodegenTablePageReqVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/table/CodegenTablePageReqVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
@@ -12,11 +12,11 @@ import java.util.Date; @@ -12,11 +12,11 @@ import java.util.Date;
12 12
13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; 13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
14 14
15 -@ApiModel("表定义分页 Request VO") 15 +@ApiModel("管理后台 - 表定义分页 Request VO")
16 @Data 16 @Data
17 @EqualsAndHashCode(callSuper = true) 17 @EqualsAndHashCode(callSuper = true)
18 @ToString(callSuper = true) 18 @ToString(callSuper = true)
19 -public class ToolCodegenTablePageReqVO extends PageParam { 19 +public class CodegenTablePageReqVO extends PageParam {
20 20
21 @ApiModelProperty(value = "表名称", example = "yudao", notes = "模糊匹配") 21 @ApiModelProperty(value = "表名称", example = "yudao", notes = "模糊匹配")
22 private String tableName; 22 private String tableName;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/table/ToolCodegenTableRespVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/table/CodegenTableRespVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
@@ -8,11 +8,11 @@ import lombok.ToString; @@ -8,11 +8,11 @@ import lombok.ToString;
8 8
9 import java.util.Date; 9 import java.util.Date;
10 10
11 -@ApiModel("代码生成表定义 Response VO") 11 +@ApiModel("管理后台 - 代码生成表定义 Response VO")
12 @Data 12 @Data
13 @EqualsAndHashCode(callSuper = true) 13 @EqualsAndHashCode(callSuper = true)
14 @ToString(callSuper = true) 14 @ToString(callSuper = true)
15 -public class ToolCodegenTableRespVO extends ToolCodegenTableBaseVO { 15 +public class CodegenTableRespVO extends CodegenTableBaseVO {
16 16
17 @ApiModelProperty(value = "编号", required = true, example = "1") 17 @ApiModelProperty(value = "编号", required = true, example = "1")
18 private Long id; 18 private Long id;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/codegen/vo/table/ToolSchemaTableRespVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/codegen/vo/table/SchemaTableRespVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table; 1 +package cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
@@ -6,9 +6,9 @@ import lombok.Data; @@ -6,9 +6,9 @@ import lombok.Data;
6 6
7 import java.util.Date; 7 import java.util.Date;
8 8
9 -@ApiModel("数据字典的表定义 Response VO") 9 +@ApiModel("管理后台 - 数据字典的表定义 Response VO")
10 @Data 10 @Data
11 -public class ToolSchemaTableRespVO { 11 +public class SchemaTableRespVO {
12 12
13 @ApiModelProperty(value = "数据库", required = true, example = "yudao") 13 @ApiModelProperty(value = "数据库", required = true, example = "yudao")
14 private String tableSchema; 14 private String tableSchema;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/ToolTestDemoController.http renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/TestDemoController.http
1 ### 请求 /tool/test-demo/get 接口 => 成功 1 ### 请求 /tool/test-demo/get 接口 => 成功
2 GET {{baseUrl}}/tool/test-demo/get?id=1 2 GET {{baseUrl}}/tool/test-demo/get?id=1
3 Authorization: Bearer {{token}} 3 Authorization: Bearer {{token}}
  4 +tenant-id: {{adminTenentId}}
4 5
5 ### 请求 /tool/test-demo/list 接口 => 成功 6 ### 请求 /tool/test-demo/list 接口 => 成功
6 GET {{baseUrl}}/tool/test-demo/list?ids=1 7 GET {{baseUrl}}/tool/test-demo/list?ids=1
7 Authorization: Bearer {{token}} 8 Authorization: Bearer {{token}}
  9 +tenant-id: {{adminTenentId}}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/ToolTestDemoController.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/TestDemoController.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test;
2 2
3 -import cn.hutool.core.thread.ThreadUtil;  
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 6 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 -import cn.iocoder.yudao.framework.tracer.core.annotation.BizTrace;  
9 -import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;  
10 -import cn.iocoder.yudao.adminserver.modules.tool.convert.test.ToolTestDemoConvert;  
11 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO;  
12 -import cn.iocoder.yudao.adminserver.modules.tool.service.test.ToolTestDemoService; 7 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.*;
  8 +import cn.iocoder.yudao.module.tool.convert.test.TestDemoConvert;
  9 +import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
  10 +import cn.iocoder.yudao.module.tool.service.test.TestDemoService;
13 import io.swagger.annotations.Api; 11 import io.swagger.annotations.Api;
14 import io.swagger.annotations.ApiImplicitParam; 12 import io.swagger.annotations.ApiImplicitParam;
15 import io.swagger.annotations.ApiOperation; 13 import io.swagger.annotations.ApiOperation;
@@ -23,31 +21,30 @@ import javax.validation.Valid; @@ -23,31 +21,30 @@ import javax.validation.Valid;
23 import java.io.IOException; 21 import java.io.IOException;
24 import java.util.Collection; 22 import java.util.Collection;
25 import java.util.List; 23 import java.util.List;
26 -import java.util.concurrent.TimeUnit;  
27 24
28 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 25 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
29 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; 26 import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
30 27
31 -@Api(tags = "测试示例") 28 +@Api(tags = "管理后台 - 测试示例")
32 @RestController 29 @RestController
33 @RequestMapping("/tool/test-demo") 30 @RequestMapping("/tool/test-demo")
34 @Validated 31 @Validated
35 -public class ToolTestDemoController { 32 +public class TestDemoController {
36 33
37 @Resource 34 @Resource
38 - private ToolTestDemoService testDemoService; 35 + private TestDemoService testDemoService;
39 36
40 @PostMapping("/create") 37 @PostMapping("/create")
41 @ApiOperation("创建测试示例") 38 @ApiOperation("创建测试示例")
42 @PreAuthorize("@ss.hasPermission('tool:test-demo:create')") 39 @PreAuthorize("@ss.hasPermission('tool:test-demo:create')")
43 - public CommonResult<Long> createTestDemo(@Valid @RequestBody ToolTestDemoCreateReqVO createReqVO) { 40 + public CommonResult<Long> createTestDemo(@Valid @RequestBody TestDemoCreateReqVO createReqVO) {
44 return success(testDemoService.createTestDemo(createReqVO)); 41 return success(testDemoService.createTestDemo(createReqVO));
45 } 42 }
46 43
47 @PutMapping("/update") 44 @PutMapping("/update")
48 @ApiOperation("更新测试示例") 45 @ApiOperation("更新测试示例")
49 @PreAuthorize("@ss.hasPermission('tool:test-demo:update')") 46 @PreAuthorize("@ss.hasPermission('tool:test-demo:update')")
50 - public CommonResult<Boolean> updateTestDemo(@Valid @RequestBody ToolTestDemoUpdateReqVO updateReqVO) { 47 + public CommonResult<Boolean> updateTestDemo(@Valid @RequestBody TestDemoUpdateReqVO updateReqVO) {
51 testDemoService.updateTestDemo(updateReqVO); 48 testDemoService.updateTestDemo(updateReqVO);
52 return success(true); 49 return success(true);
53 } 50 }
@@ -66,12 +63,9 @@ public class ToolTestDemoController { @@ -66,12 +63,9 @@ public class ToolTestDemoController {
66 @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class) 63 @ApiImplicitParam(name = "id", value = "编号", required = true, dataTypeClass = Long.class)
67 @PreAuthorize("@ss.hasPermission('tool:test-demo:query')") 64 @PreAuthorize("@ss.hasPermission('tool:test-demo:query')")
68 // @Lock4j // 分布式锁 65 // @Lock4j // 分布式锁
69 - public CommonResult<ToolTestDemoRespVO> getTestDemo(@RequestParam("id") Long id) {  
70 - if (true) { // 测试分布式锁  
71 - ThreadUtil.sleep(5, TimeUnit.SECONDS);  
72 - }  
73 - ToolTestDemoDO testDemo = testDemoService.getTestDemo(id);  
74 - return success(ToolTestDemoConvert.INSTANCE.convert(testDemo)); 66 + public CommonResult<TestDemoRespVO> getTestDemo(@RequestParam("id") Long id) {
  67 + TestDemoDO testDemo = testDemoService.getTestDemo(id);
  68 + return success(TestDemoConvert.INSTANCE.convert(testDemo));
75 } 69 }
76 70
77 @GetMapping("/list") 71 @GetMapping("/list")
@@ -79,30 +73,29 @@ public class ToolTestDemoController { @@ -79,30 +73,29 @@ public class ToolTestDemoController {
79 @ApiImplicitParam(name = "ids", value = "编号列表", required = true, dataTypeClass = List.class) 73 @ApiImplicitParam(name = "ids", value = "编号列表", required = true, dataTypeClass = List.class)
80 @PreAuthorize("@ss.hasPermission('tool:test-demo:query')") 74 @PreAuthorize("@ss.hasPermission('tool:test-demo:query')")
81 // @RateLimiter(name = "backendA") 75 // @RateLimiter(name = "backendA")
82 - @BizTrace(id = "#ids", type = "'user'")  
83 - public CommonResult<List<ToolTestDemoRespVO>> getTestDemoList(@RequestParam("ids") Collection<Long> ids) {  
84 - List<ToolTestDemoDO> list = testDemoService.getTestDemoList(ids);  
85 - return success(ToolTestDemoConvert.INSTANCE.convertList(list)); 76 + public CommonResult<List<TestDemoRespVO>> getTestDemoList(@RequestParam("ids") Collection<Long> ids) {
  77 + List<TestDemoDO> list = testDemoService.getTestDemoList(ids);
  78 + return success(TestDemoConvert.INSTANCE.convertList(list));
86 } 79 }
87 80
88 @GetMapping("/page") 81 @GetMapping("/page")
89 @ApiOperation("获得测试示例分页") 82 @ApiOperation("获得测试示例分页")
90 @PreAuthorize("@ss.hasPermission('tool:test-demo:query')") 83 @PreAuthorize("@ss.hasPermission('tool:test-demo:query')")
91 - public CommonResult<PageResult<ToolTestDemoRespVO>> getTestDemoPage(@Valid ToolTestDemoPageReqVO pageVO) {  
92 - PageResult<ToolTestDemoDO> pageResult = testDemoService.getTestDemoPage(pageVO);  
93 - return success(ToolTestDemoConvert.INSTANCE.convertPage(pageResult)); 84 + public CommonResult<PageResult<TestDemoRespVO>> getTestDemoPage(@Valid TestDemoPageReqVO pageVO) {
  85 + PageResult<TestDemoDO> pageResult = testDemoService.getTestDemoPage(pageVO);
  86 + return success(TestDemoConvert.INSTANCE.convertPage(pageResult));
94 } 87 }
95 88
96 @GetMapping("/export-excel") 89 @GetMapping("/export-excel")
97 @ApiOperation("导出测试示例 Excel") 90 @ApiOperation("导出测试示例 Excel")
98 @PreAuthorize("@ss.hasPermission('tool:test-demo:export')") 91 @PreAuthorize("@ss.hasPermission('tool:test-demo:export')")
99 @OperateLog(type = EXPORT) 92 @OperateLog(type = EXPORT)
100 - public void exportTestDemoExcel(@Valid ToolTestDemoExportReqVO exportReqVO, 93 + public void exportTestDemoExcel(@Valid TestDemoExportReqVO exportReqVO,
101 HttpServletResponse response) throws IOException { 94 HttpServletResponse response) throws IOException {
102 - List<ToolTestDemoDO> list = testDemoService.getTestDemoList(exportReqVO); 95 + List<TestDemoDO> list = testDemoService.getTestDemoList(exportReqVO);
103 // 导出 Excel 96 // 导出 Excel
104 - List<ToolTestDemoExcelVO> datas = ToolTestDemoConvert.INSTANCE.convertList02(list);  
105 - ExcelUtils.write(response, "测试示例.xls", "数据", ToolTestDemoExcelVO.class, datas); 97 + List<TestDemoExcelVO> datas = TestDemoConvert.INSTANCE.convertList02(list);
  98 + ExcelUtils.write(response, "测试示例.xls", "数据", TestDemoExcelVO.class, datas);
106 } 99 }
107 100
108 } 101 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoBaseVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/vo/TestDemoBaseVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
2 2
3 import io.swagger.annotations.ApiModelProperty; 3 import io.swagger.annotations.ApiModelProperty;
4 import lombok.Data; 4 import lombok.Data;
@@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull; @@ -10,7 +10,7 @@ import javax.validation.constraints.NotNull;
10 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 10 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
11 */ 11 */
12 @Data 12 @Data
13 -public class ToolTestDemoBaseVO { 13 +public class TestDemoBaseVO {
14 14
15 @ApiModelProperty(value = "名字", required = true, example = "芋道") 15 @ApiModelProperty(value = "名字", required = true, example = "芋道")
16 @NotNull(message = "名字不能为空") 16 @NotNull(message = "名字不能为空")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoCreateReqVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/vo/TestDemoCreateReqVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import lombok.Data; 4 import lombok.Data;
5 import lombok.EqualsAndHashCode; 5 import lombok.EqualsAndHashCode;
6 import lombok.ToString; 6 import lombok.ToString;
7 7
8 -@ApiModel("字典类型创建 Request VO") 8 +@ApiModel("管理后台 - 字典类型创建 Request VO")
9 @Data 9 @Data
10 @EqualsAndHashCode(callSuper = true) 10 @EqualsAndHashCode(callSuper = true)
11 @ToString(callSuper = true) 11 @ToString(callSuper = true)
12 -public class ToolTestDemoCreateReqVO extends ToolTestDemoBaseVO { 12 +public class TestDemoCreateReqVO extends TestDemoBaseVO {
13 13
14 } 14 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoExcelVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/vo/TestDemoExcelVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.module.infra.enums.DictTypeConstants;  
6 import com.alibaba.excel.annotation.ExcelProperty; 5 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 6 import lombok.Data;
8 7
@@ -14,7 +13,7 @@ import java.util.Date; @@ -14,7 +13,7 @@ import java.util.Date;
14 * @author 芋艿 13 * @author 芋艿
15 */ 14 */
16 @Data 15 @Data
17 -public class ToolTestDemoExcelVO { 16 +public class TestDemoExcelVO {
18 17
19 @ExcelProperty("编号") 18 @ExcelProperty("编号")
20 private Long id; 19 private Long id;
@@ -23,15 +22,15 @@ public class ToolTestDemoExcelVO { @@ -23,15 +22,15 @@ public class ToolTestDemoExcelVO {
23 private String name; 22 private String name;
24 23
25 @ExcelProperty(value = "状态", converter = DictConvert.class) 24 @ExcelProperty(value = "状态", converter = DictConvert.class)
26 - @DictFormat(cn.iocoder.yudao.module.system.enums.DictTypeConstants.COMMON_STATUS) 25 + @DictFormat("")
27 private Integer status; 26 private Integer status;
28 27
29 @ExcelProperty(value = "类型", converter = DictConvert.class) 28 @ExcelProperty(value = "类型", converter = DictConvert.class)
30 - @DictFormat(cn.iocoder.yudao.module.system.enums.DictTypeConstants.OPERATE_TYPE) 29 + @DictFormat("sys_common_status")
31 private Integer type; 30 private Integer type;
32 31
33 @ExcelProperty(value = "分类", converter = DictConvert.class) 32 @ExcelProperty(value = "分类", converter = DictConvert.class)
34 - @DictFormat(DictTypeConstants.REDIS_TIMEOUT_TYPE) 33 + @DictFormat("inf_redis_timeout_type")
35 private Integer category; 34 private Integer category;
36 35
37 @ExcelProperty("备注") 36 @ExcelProperty("备注")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoExportReqVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/vo/TestDemoExportReqVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
@@ -9,9 +9,9 @@ import java.util.Date; @@ -9,9 +9,9 @@ import java.util.Date;
9 9
10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; 10 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
11 11
12 -@ApiModel(value = "字典类型 Excel 导出 Request VO", description = "参数和 ToolTestDemoPageReqVO 是一致的") 12 +@ApiModel(value = "管理后台 - 字典类型 Excel 导出 Request VO", description = "参数和 TestDemoPageReqVO 是一致的")
13 @Data 13 @Data
14 -public class ToolTestDemoExportReqVO { 14 +public class TestDemoExportReqVO {
15 15
16 @ApiModelProperty(value = "名字", example = "芋道") 16 @ApiModelProperty(value = "名字", example = "芋道")
17 private String name; 17 private String name;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoPageReqVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/vo/TestDemoPageReqVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageParam; 3 import cn.iocoder.yudao.framework.common.pojo.PageParam;
4 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
@@ -12,11 +12,11 @@ import java.util.Date; @@ -12,11 +12,11 @@ import java.util.Date;
12 12
13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; 13 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
14 14
15 -@ApiModel("字典类型分页 Request VO") 15 +@ApiModel("管理后台 - 字典类型分页 Request VO")
16 @Data 16 @Data
17 @EqualsAndHashCode(callSuper = true) 17 @EqualsAndHashCode(callSuper = true)
18 @ToString(callSuper = true) 18 @ToString(callSuper = true)
19 -public class ToolTestDemoPageReqVO extends PageParam { 19 +public class TestDemoPageReqVO extends PageParam {
20 20
21 @ApiModelProperty(value = "名字", example = "芋道") 21 @ApiModelProperty(value = "名字", example = "芋道")
22 private String name; 22 private String name;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoRespVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/vo/TestDemoRespVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
@@ -8,11 +8,11 @@ import lombok.ToString; @@ -8,11 +8,11 @@ import lombok.ToString;
8 8
9 import java.util.Date; 9 import java.util.Date;
10 10
11 -@ApiModel("字典类型 Response VO") 11 +@ApiModel("管理后台 - 字典类型 Response VO")
12 @Data 12 @Data
13 @EqualsAndHashCode(callSuper = true) 13 @EqualsAndHashCode(callSuper = true)
14 @ToString(callSuper = true) 14 @ToString(callSuper = true)
15 -public class ToolTestDemoRespVO extends ToolTestDemoBaseVO { 15 +public class TestDemoRespVO extends TestDemoBaseVO {
16 16
17 @ApiModelProperty(value = "编号", required = true, example = "1") 17 @ApiModelProperty(value = "编号", required = true, example = "1")
18 private Long id; 18 private Long id;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoUpdateReqVO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/admin/test/vo/TestDemoUpdateReqVO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; 1 +package cn.iocoder.yudao.module.tool.controller.admin.test.vo;
2 2
3 import io.swagger.annotations.ApiModel; 3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty; 4 import io.swagger.annotations.ApiModelProperty;
@@ -8,11 +8,11 @@ import lombok.ToString; @@ -8,11 +8,11 @@ import lombok.ToString;
8 8
9 import javax.validation.constraints.NotNull; 9 import javax.validation.constraints.NotNull;
10 10
11 -@ApiModel("字典类型更新 Request VO") 11 +@ApiModel("管理后台 - 字典类型更新 Request VO")
12 @Data 12 @Data
13 @EqualsAndHashCode(callSuper = true) 13 @EqualsAndHashCode(callSuper = true)
14 @ToString(callSuper = true) 14 @ToString(callSuper = true)
15 -public class ToolTestDemoUpdateReqVO extends ToolTestDemoBaseVO { 15 +public class TestDemoUpdateReqVO extends TestDemoBaseVO {
16 16
17 @ApiModelProperty(value = "编号", required = true, example = "1") 17 @ApiModelProperty(value = "编号", required = true, example = "1")
18 @NotNull(message = "编号不能为空") 18 @NotNull(message = "编号不能为空")
yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/app/package-info.java 0 → 100644
  1 +/**
  2 + * 占位,避免 package 无法提交到 Git 仓库
  3 + */
  4 +package cn.iocoder.yudao.module.tool.controller.app;
yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/controller/package-info.java 0 → 100644
  1 +/**
  2 + * 提供 RESTful API 给前端:
  3 + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目
  4 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分
  5 + */
  6 +package cn.iocoder.yudao.module.tool.controller;
yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/convert/codegen/CodegenConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.tool.convert.codegen;
  2 +
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenDetailRespVO;
  5 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenPreviewRespVO;
  6 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenUpdateReqVO;
  7 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.column.CodegenColumnRespVO;
  8 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTableRespVO;
  9 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.SchemaTableRespVO;
  10 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO;
  11 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO;
  12 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaColumnDO;
  13 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaTableDO;
  14 +import org.mapstruct.Mapper;
  15 +import org.mapstruct.factory.Mappers;
  16 +
  17 +import java.util.List;
  18 +import java.util.Map;
  19 +import java.util.stream.Collectors;
  20 +
  21 +@Mapper
  22 +public interface CodegenConvert {
  23 +
  24 + CodegenConvert INSTANCE = Mappers.getMapper(CodegenConvert.class);
  25 +
  26 + // ========== InformationSchemaTableDO 和 InformationSchemaColumnDO 相关 ==========
  27 +
  28 + CodegenTableDO convert(SchemaTableDO bean);
  29 +
  30 + List<CodegenColumnDO> convertList(List<SchemaColumnDO> list);
  31 +
  32 + CodegenTableRespVO convert(SchemaColumnDO bean);
  33 +
  34 + // ========== CodegenTableDO 相关 ==========
  35 +
  36 +// List<CodegenTableRespVO> convertList02(List<CodegenTableDO> list);
  37 +
  38 + CodegenTableRespVO convert(CodegenTableDO bean);
  39 +
  40 + PageResult<CodegenTableRespVO> convertPage(PageResult<CodegenTableDO> page);
  41 +
  42 + // ========== CodegenTableDO 相关 ==========
  43 +
  44 + List<CodegenColumnRespVO> convertList02(List<CodegenColumnDO> list);
  45 +
  46 + CodegenTableDO convert(CodegenUpdateReqVO.Table bean);
  47 +
  48 + List<CodegenColumnDO> convertList03(List<CodegenUpdateReqVO.Column> columns);
  49 +
  50 + List<SchemaTableRespVO> convertList04(List<SchemaTableDO> list);
  51 +
  52 + // ========== 其它 ==========
  53 +
  54 + default CodegenDetailRespVO convert(CodegenTableDO table, List<CodegenColumnDO> columns) {
  55 + CodegenDetailRespVO respVO = new CodegenDetailRespVO();
  56 + respVO.setTable(convert(table));
  57 + respVO.setColumns(convertList02(columns));
  58 + return respVO;
  59 + }
  60 +
  61 + default List<CodegenPreviewRespVO> convert(Map<String, String> codes) {
  62 + return codes.entrySet().stream().map(entry -> {
  63 + CodegenPreviewRespVO respVO = new CodegenPreviewRespVO();
  64 + respVO.setFilePath(entry.getKey());
  65 + respVO.setCode(entry.getValue());
  66 + return respVO;
  67 + }).collect(Collectors.toList());
  68 + }
  69 +
  70 +}
yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/convert/test/TestDemoConvert.java 0 → 100644
  1 +package cn.iocoder.yudao.module.tool.convert.test;
  2 +
  3 +import java.util.*;
  4 +
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +
  7 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoCreateReqVO;
  8 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoExcelVO;
  9 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoRespVO;
  10 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoUpdateReqVO;
  11 +import org.mapstruct.Mapper;
  12 +import org.mapstruct.factory.Mappers;
  13 +import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
  14 +
  15 +@Mapper
  16 +public interface TestDemoConvert {
  17 +
  18 + TestDemoConvert INSTANCE = Mappers.getMapper(TestDemoConvert.class);
  19 +
  20 + TestDemoDO convert(TestDemoCreateReqVO bean);
  21 +
  22 + TestDemoDO convert(TestDemoUpdateReqVO bean);
  23 +
  24 + TestDemoRespVO convert(TestDemoDO bean);
  25 +
  26 + List<TestDemoRespVO> convertList(List<TestDemoDO> list);
  27 +
  28 + PageResult<TestDemoRespVO> convertPage(PageResult<TestDemoDO> page);
  29 +
  30 + List<TestDemoExcelVO> convertList02(List<TestDemoDO> list);
  31 +
  32 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/codegen/ToolCodegenColumnDO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/dataobject/codegen/CodegenColumnDO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.dataobject.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 -import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnHtmlTypeEnum;  
5 -import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnListConditionEnum; 4 +import cn.iocoder.yudao.module.tool.enums.codegen.CodegenColumnHtmlTypeEnum;
  5 +import cn.iocoder.yudao.module.tool.enums.codegen.CodegenColumnListConditionEnum;
6 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
7 import com.baomidou.mybatisplus.annotation.TableName; 7 import com.baomidou.mybatisplus.annotation.TableName;
8 import lombok.Data; 8 import lombok.Data;
@@ -18,7 +18,7 @@ import lombok.experimental.Accessors; @@ -18,7 +18,7 @@ import lombok.experimental.Accessors;
18 @Data 18 @Data
19 @Accessors(chain = true) 19 @Accessors(chain = true)
20 @EqualsAndHashCode(callSuper = true) 20 @EqualsAndHashCode(callSuper = true)
21 -public class ToolCodegenColumnDO extends BaseDO { 21 +public class CodegenColumnDO extends BaseDO {
22 22
23 /** 23 /**
24 * ID 编号 24 * ID 编号
@@ -28,7 +28,7 @@ public class ToolCodegenColumnDO extends BaseDO { @@ -28,7 +28,7 @@ public class ToolCodegenColumnDO extends BaseDO {
28 /** 28 /**
29 * 表编号 29 * 表编号
30 * 30 *
31 - * 关联 {@link ToolCodegenTableDO#getId()} 31 + * 关联 {@link CodegenTableDO#getId()}
32 */ 32 */
33 private Long tableId; 33 private Long tableId;
34 34
@@ -104,7 +104,7 @@ public class ToolCodegenColumnDO extends BaseDO { @@ -104,7 +104,7 @@ public class ToolCodegenColumnDO extends BaseDO {
104 /** 104 /**
105 * List 查询操作的条件类型 105 * List 查询操作的条件类型
106 * 106 *
107 - * 枚举 {@link ToolCodegenColumnListConditionEnum} 107 + * 枚举 {@link CodegenColumnListConditionEnum}
108 */ 108 */
109 private String listOperationCondition; 109 private String listOperationCondition;
110 /** 110 /**
@@ -117,7 +117,7 @@ public class ToolCodegenColumnDO extends BaseDO { @@ -117,7 +117,7 @@ public class ToolCodegenColumnDO extends BaseDO {
117 /** 117 /**
118 * 显示类型 118 * 显示类型
119 * 119 *
120 - * 枚举 {@link ToolCodegenColumnHtmlTypeEnum} 120 + * 枚举 {@link CodegenColumnHtmlTypeEnum}
121 */ 121 */
122 private String htmlType; 122 private String htmlType;
123 123
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/codegen/ToolCodegenTableDO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/dataobject/codegen/CodegenTableDO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.dataobject.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 -import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenTemplateTypeEnum; 4 +import cn.iocoder.yudao.module.tool.enums.codegen.CodegenTemplateTypeEnum;
5 import com.baomidou.mybatisplus.annotation.TableName; 5 import com.baomidou.mybatisplus.annotation.TableName;
6 import lombok.Data; 6 import lombok.Data;
7 import lombok.EqualsAndHashCode; 7 import lombok.EqualsAndHashCode;
@@ -16,7 +16,7 @@ import lombok.experimental.Accessors; @@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
16 @Data 16 @Data
17 @Accessors(chain = true) 17 @Accessors(chain = true)
18 @EqualsAndHashCode(callSuper = true) 18 @EqualsAndHashCode(callSuper = true)
19 -public class ToolCodegenTableDO extends BaseDO { 19 +public class CodegenTableDO extends BaseDO {
20 20
21 /** 21 /**
22 * ID 编号 22 * ID 编号
@@ -26,7 +26,7 @@ public class ToolCodegenTableDO extends BaseDO { @@ -26,7 +26,7 @@ public class ToolCodegenTableDO extends BaseDO {
26 /** 26 /**
27 * 导入类型 27 * 导入类型
28 * 28 *
29 - * 枚举 {@link ToolCodegenTemplateTypeEnum} 29 + * 枚举 {@link CodegenTemplateTypeEnum}
30 */ 30 */
31 private Integer importType; 31 private Integer importType;
32 32
@@ -79,7 +79,7 @@ public class ToolCodegenTableDO extends BaseDO { @@ -79,7 +79,7 @@ public class ToolCodegenTableDO extends BaseDO {
79 /** 79 /**
80 * 模板类型 80 * 模板类型
81 * 81 *
82 - * 枚举 {@link ToolCodegenTemplateTypeEnum} 82 + * 枚举 {@link CodegenTemplateTypeEnum}
83 */ 83 */
84 private Integer templateType; 84 private Integer templateType;
85 85
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/codegen/ToolSchemaColumnDO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/dataobject/codegen/SchemaColumnDO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.dataobject.codegen;
2 2
3 import com.baomidou.mybatisplus.annotation.TableField; 3 import com.baomidou.mybatisplus.annotation.TableField;
4 import com.baomidou.mybatisplus.annotation.TableName; 4 import com.baomidou.mybatisplus.annotation.TableName;
@@ -13,7 +13,7 @@ import lombok.Data; @@ -13,7 +13,7 @@ import lombok.Data;
13 @TableName(value = "information_schema.columns", autoResultMap = true) 13 @TableName(value = "information_schema.columns", autoResultMap = true)
14 @Data 14 @Data
15 @Builder 15 @Builder
16 -public class ToolSchemaColumnDO { 16 +public class SchemaColumnDO {
17 17
18 /** 18 /**
19 * 表名称 19 * 表名称
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/codegen/ToolSchemaTableDO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/dataobject/codegen/SchemaTableDO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.dataobject.codegen;
2 2
3 import com.baomidou.mybatisplus.annotation.TableName; 3 import com.baomidou.mybatisplus.annotation.TableName;
4 import lombok.Builder; 4 import lombok.Builder;
@@ -14,7 +14,7 @@ import java.util.Date; @@ -14,7 +14,7 @@ import java.util.Date;
14 @TableName(value = "information_schema.tables", autoResultMap = true) 14 @TableName(value = "information_schema.tables", autoResultMap = true)
15 @Data 15 @Data
16 @Builder 16 @Builder
17 -public class ToolSchemaTableDO { 17 +public class SchemaTableDO {
18 18
19 /** 19 /**
20 * 数据库 20 * 数据库
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/test/ToolTestDemoDO.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/dataobject/test/TestDemoDO.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test; 1 +package cn.iocoder.yudao.module.tool.dal.dataobject.test;
2 2
3 import lombok.*; 3 import lombok.*;
4 -import java.util.*;  
5 import com.baomidou.mybatisplus.annotation.*; 4 import com.baomidou.mybatisplus.annotation.*;
6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7 6
8 /** 7 /**
9 - * 字典类型 DO 8 + * 测试示例 DO
10 * 9 *
11 * @author 芋艿 10 * @author 芋艿
12 */ 11 */
@@ -17,7 +16,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @@ -17,7 +16,7 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
17 @Builder 16 @Builder
18 @NoArgsConstructor 17 @NoArgsConstructor
19 @AllArgsConstructor 18 @AllArgsConstructor
20 -public class ToolTestDemoDO extends BaseDO { 19 +public class TestDemoDO extends BaseDO {
21 20
22 /** 21 /**
23 * 编号 22 * 编号
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolCodegenColumnMapper.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/CodegenColumnMapper.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.mysql.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO; 4 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO;
5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Mapper;
7 7
8 import java.util.List; 8 import java.util.List;
9 9
10 @Mapper 10 @Mapper
11 -public interface ToolCodegenColumnMapper extends BaseMapperX<ToolCodegenColumnDO> { 11 +public interface CodegenColumnMapper extends BaseMapperX<CodegenColumnDO> {
12 12
13 - default List<ToolCodegenColumnDO> selectListByTableId(Long tableId) {  
14 - return selectList(new QueryWrapper<ToolCodegenColumnDO>().eq("table_id", tableId) 13 + default List<CodegenColumnDO> selectListByTableId(Long tableId) {
  14 + return selectList(new QueryWrapper<CodegenColumnDO>().eq("table_id", tableId)
15 .orderByAsc("ordinal_position")); 15 .orderByAsc("ordinal_position"));
16 } 16 }
17 17
18 default void deleteListByTableId(Long tableId) { 18 default void deleteListByTableId(Long tableId) {
19 - delete(new QueryWrapper<ToolCodegenColumnDO>().eq("table_id", tableId)); 19 + delete(new QueryWrapper<CodegenColumnDO>().eq("table_id", tableId));
20 } 20 }
21 21
22 } 22 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolCodegenTableMapper.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/CodegenTableMapper.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.mysql.codegen;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO; 6 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTablePageReqVO;
  7 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO;
8 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 8 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 10
11 @Mapper 11 @Mapper
12 -public interface ToolCodegenTableMapper extends BaseMapperX<ToolCodegenTableDO> { 12 +public interface CodegenTableMapper extends BaseMapperX<CodegenTableDO> {
13 13
14 - default ToolCodegenTableDO selectByTableName(String tableName) {  
15 - return selectOne(new QueryWrapper<ToolCodegenTableDO>().eq("table_name", tableName)); 14 + default CodegenTableDO selectByTableName(String tableName) {
  15 + return selectOne(new QueryWrapper<CodegenTableDO>().eq("table_name", tableName));
16 } 16 }
17 17
18 - default PageResult<ToolCodegenTableDO> selectPage(ToolCodegenTablePageReqVO pageReqVO) {  
19 - return selectPage(pageReqVO, new QueryWrapperX<ToolCodegenTableDO>() 18 + default PageResult<CodegenTableDO> selectPage(CodegenTablePageReqVO pageReqVO) {
  19 + return selectPage(pageReqVO, new QueryWrapperX<CodegenTableDO>()
20 .likeIfPresent("table_name", pageReqVO.getTableName()) 20 .likeIfPresent("table_name", pageReqVO.getTableName())
21 .likeIfPresent("table_comment", pageReqVO.getTableComment()) 21 .likeIfPresent("table_comment", pageReqVO.getTableComment())
22 .betweenIfPresent("create_time", pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime())); 22 .betweenIfPresent("create_time", pageReqVO.getBeginCreateTime(), pageReqVO.getEndCreateTime()));
yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/SchemaColumnMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.tool.dal.mysql.codegen;
  2 +
  3 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  4 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaColumnDO;
  5 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6 +import org.apache.ibatis.annotations.Mapper;
  7 +
  8 +import java.util.List;
  9 +
  10 +@Mapper
  11 +public interface SchemaColumnMapper extends BaseMapperX<SchemaColumnDO> {
  12 +
  13 + default List<SchemaColumnDO> selectListByTableName(String tableSchema, String tableName) {
  14 + return selectList(new QueryWrapper<SchemaColumnDO>().eq("table_name", tableName)
  15 + .eq("table_schema", tableSchema)
  16 + .orderByAsc("ordinal_position"));
  17 + }
  18 +
  19 +}
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/codegen/ToolSchemaTableMapper.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/mysql/codegen/SchemaTableMapper.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen; 1 +package cn.iocoder.yudao.module.tool.dal.mysql.codegen;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
5 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO; 5 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaTableDO;
6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 6 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 import org.apache.ibatis.annotations.Mapper; 7 import org.apache.ibatis.annotations.Mapper;
8 8
@@ -10,16 +10,16 @@ import java.util.Collection; @@ -10,16 +10,16 @@ import java.util.Collection;
10 import java.util.List; 10 import java.util.List;
11 11
12 @Mapper 12 @Mapper
13 -public interface ToolSchemaTableMapper extends BaseMapperX<ToolSchemaTableDO> { 13 +public interface SchemaTableMapper extends BaseMapperX<SchemaTableDO> {
14 14
15 - default List<ToolSchemaTableDO> selectList(Collection<String> tableSchemas, String tableName, String tableComment) {  
16 - return selectList(new QueryWrapperX<ToolSchemaTableDO>().in("table_schema", tableSchemas) 15 + default List<SchemaTableDO> selectList(Collection<String> tableSchemas, String tableName, String tableComment) {
  16 + return selectList(new QueryWrapperX<SchemaTableDO>().in("table_schema", tableSchemas)
17 .likeIfPresent("table_name", tableName) 17 .likeIfPresent("table_name", tableName)
18 .likeIfPresent("table_comment", tableComment)); 18 .likeIfPresent("table_comment", tableComment));
19 } 19 }
20 20
21 - default ToolSchemaTableDO selectByTableSchemaAndTableName(String tableSchema, String tableName) {  
22 - return selectOne(new QueryWrapper<ToolSchemaTableDO>().eq("table_schema",tableSchema) 21 + default SchemaTableDO selectByTableSchemaAndTableName(String tableSchema, String tableName) {
  22 + return selectOne(new QueryWrapper<SchemaTableDO>().eq("table_schema",tableSchema)
23 .eq("table_name", tableName)); 23 .eq("table_name", tableName));
24 } 24 }
25 25
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/test/ToolTestDemoMapper.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/dal/mysql/test/TestDemoMapper.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.test; 1 +package cn.iocoder.yudao.module.tool.dal.mysql.test;
2 2
3 import java.util.*; 3 import java.util.*;
4 4
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; 8 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoExportReqVO;
  9 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoPageReqVO;
  10 +import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
9 import org.apache.ibatis.annotations.Mapper; 11 import org.apache.ibatis.annotations.Mapper;
10 -import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;  
11 12
12 -/**  
13 - * 字典类型 Mapper  
14 - *  
15 - * @author 芋艿  
16 - */  
17 @Mapper 13 @Mapper
18 -public interface ToolTestDemoMapper extends BaseMapperX<ToolTestDemoDO> { 14 +public interface TestDemoMapper extends BaseMapperX<TestDemoDO> {
19 15
20 - default PageResult<ToolTestDemoDO> selectPage(ToolTestDemoPageReqVO reqVO) {  
21 - return selectPage(reqVO, new QueryWrapperX<ToolTestDemoDO>() 16 + default PageResult<TestDemoDO> selectPage(TestDemoPageReqVO reqVO) {
  17 + return selectPage(reqVO, new QueryWrapperX<TestDemoDO>()
22 .likeIfPresent("name", reqVO.getName()) 18 .likeIfPresent("name", reqVO.getName())
23 .eqIfPresent("status", reqVO.getStatus()) 19 .eqIfPresent("status", reqVO.getStatus())
24 .eqIfPresent("type", reqVO.getType()) 20 .eqIfPresent("type", reqVO.getType())
@@ -28,8 +24,8 @@ public interface ToolTestDemoMapper extends BaseMapperX&lt;ToolTestDemoDO&gt; { @@ -28,8 +24,8 @@ public interface ToolTestDemoMapper extends BaseMapperX&lt;ToolTestDemoDO&gt; {
28 .orderByDesc("id")); 24 .orderByDesc("id"));
29 } 25 }
30 26
31 - default List<ToolTestDemoDO> selectList(ToolTestDemoExportReqVO reqVO) {  
32 - return selectList(new QueryWrapperX<ToolTestDemoDO>() 27 + default List<TestDemoDO> selectList(TestDemoExportReqVO reqVO) {
  28 + return selectList(new QueryWrapperX<TestDemoDO>()
33 .likeIfPresent("name", reqVO.getName()) 29 .likeIfPresent("name", reqVO.getName())
34 .eqIfPresent("status", reqVO.getStatus()) 30 .eqIfPresent("status", reqVO.getStatus())
35 .eqIfPresent("type", reqVO.getType()) 31 .eqIfPresent("type", reqVO.getType())
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/codegen/ToolCodegenColumnHtmlTypeEnum.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/enums/codegen/CodegenColumnHtmlTypeEnum.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.enums.codegen; 1 +package cn.iocoder.yudao.module.tool.enums.codegen;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
@@ -8,7 +8,7 @@ import lombok.Getter; @@ -8,7 +8,7 @@ import lombok.Getter;
8 */ 8 */
9 @AllArgsConstructor 9 @AllArgsConstructor
10 @Getter 10 @Getter
11 -public enum ToolCodegenColumnHtmlTypeEnum { 11 +public enum CodegenColumnHtmlTypeEnum {
12 12
13 INPUT("input"), // 文本框 13 INPUT("input"), // 文本框
14 TEXTAREA("textarea"), // 文本域 14 TEXTAREA("textarea"), // 文本域
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/codegen/ToolCodegenColumnListConditionEnum.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/enums/codegen/CodegenColumnListConditionEnum.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.enums.codegen; 1 +package cn.iocoder.yudao.module.tool.enums.codegen;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
@@ -8,7 +8,7 @@ import lombok.Getter; @@ -8,7 +8,7 @@ import lombok.Getter;
8 */ 8 */
9 @AllArgsConstructor 9 @AllArgsConstructor
10 @Getter 10 @Getter
11 -public enum ToolCodegenColumnListConditionEnum { 11 +public enum CodegenColumnListConditionEnum {
12 12
13 EQ("="), 13 EQ("="),
14 NE("!="), 14 NE("!="),
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/codegen/ToolCodegenImportTypeEnum.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/enums/codegen/CodegenImportTypeEnum.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.enums.codegen; 1 +package cn.iocoder.yudao.module.tool.enums.codegen;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
@@ -10,7 +10,7 @@ import lombok.Getter; @@ -10,7 +10,7 @@ import lombok.Getter;
10 */ 10 */
11 @AllArgsConstructor 11 @AllArgsConstructor
12 @Getter 12 @Getter
13 -public enum ToolCodegenImportTypeEnum { 13 +public enum CodegenImportTypeEnum {
14 14
15 DB(1), // 从 information_schema 的 table 和 columns 表导入 15 DB(1), // 从 information_schema 的 table 和 columns 表导入
16 SQL(2); // 基于建表 SQL 语句导入 16 SQL(2); // 基于建表 SQL 语句导入
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/codegen/ToolCodegenTemplateTypeEnum.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/enums/codegen/CodegenTemplateTypeEnum.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.enums.codegen; 1 +package cn.iocoder.yudao.module.tool.enums.codegen;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
@@ -10,7 +10,7 @@ import lombok.Getter; @@ -10,7 +10,7 @@ import lombok.Getter;
10 */ 10 */
11 @AllArgsConstructor 11 @AllArgsConstructor
12 @Getter 12 @Getter
13 -public enum ToolCodegenTemplateTypeEnum { 13 +public enum CodegenTemplateTypeEnum {
14 14
15 CRUD(1), // 单表(增删改查) 15 CRUD(1), // 单表(增删改查)
16 TREE(2), // 树表(增删改查) 16 TREE(2), // 树表(增删改查)
yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/enums/package-info.java 0 → 100644
  1 +/**
  2 + * 占位
  3 + */
  4 +package cn.iocoder.yudao.module.tool.enums;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/codegen/config/CodegenConfiguration.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/framework/codegen/config/CodegenConfiguration.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config; 1 +package cn.iocoder.yudao.module.tool.framework.codegen.config;
2 2
3 import org.springframework.boot.context.properties.EnableConfigurationProperties; 3 import org.springframework.boot.context.properties.EnableConfigurationProperties;
4 import org.springframework.context.annotation.Configuration; 4 import org.springframework.context.annotation.Configuration;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/codegen/config/CodegenProperties.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/framework/codegen/config/CodegenProperties.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config; 1 +package cn.iocoder.yudao.module.tool.framework.codegen.config;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import org.springframework.boot.context.properties.ConfigurationProperties; 4 import org.springframework.boot.context.properties.ConfigurationProperties;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/codegen/package-info.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/framework/codegen/package-info.java
1 /** 1 /**
2 * 代码生成器 2 * 代码生成器
3 */ 3 */
4 -package cn.iocoder.yudao.adminserver.modules.tool.framework.codegen; 4 +package cn.iocoder.yudao.module.tool.framework.codegen;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/framework/package-info.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/framework/package-info.java
@@ -3,4 +3,4 @@ @@ -3,4 +3,4 @@
3 * 3 *
4 * @author 芋道源码 4 * @author 芋道源码
5 */ 5 */
6 -package cn.iocoder.yudao.adminserver.modules.tool.framework; 6 +package cn.iocoder.yudao.module.tool.framework;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/package-info.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/package-info.java
1 /** 1 /**
2 - * tool 包下,我们放研发工具,提升研发效率与质量。 2 + * tool 模块下,我们放研发工具,提升研发效率与质量。
3 * 例如说:代码生成器、接口文档等等 3 * 例如说:代码生成器、接口文档等等
4 * 4 *
5 - * 缩写:tool 5 + * 1. Controller URL:以 /tool/ 开头,避免和其它 Module 冲突
  6 + * 2. DataObject 表名:以 tool_ 开头,方便在数据库中区分
6 */ 7 */
7 -package cn.iocoder.yudao.adminserver.modules.tool; 8 +package cn.iocoder.yudao.module.tool;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/ToolCodegenService.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenService.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen; 1 +package cn.iocoder.yudao.module.tool.service.codegen;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenUpdateReqVO;  
5 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;  
8 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO; 4 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenUpdateReqVO;
  5 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTablePageReqVO;
  6 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO;
  7 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO;
  8 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaTableDO;
9 9
10 import java.util.List; 10 import java.util.List;
11 import java.util.Map; 11 import java.util.Map;
@@ -15,7 +15,7 @@ import java.util.Map; @@ -15,7 +15,7 @@ import java.util.Map;
15 * 15 *
16 * @author 芋道源码 16 * @author 芋道源码
17 */ 17 */
18 -public interface ToolCodegenService { 18 +public interface CodegenService {
19 19
20 /** 20 /**
21 * 基于 SQL 建表语句,创建代码生成器的表定义 21 * 基于 SQL 建表语句,创建代码生成器的表定义
@@ -46,7 +46,7 @@ public interface ToolCodegenService { @@ -46,7 +46,7 @@ public interface ToolCodegenService {
46 * 46 *
47 * @param updateReqVO 更新信息 47 * @param updateReqVO 更新信息
48 */ 48 */
49 - void updateCodegen(ToolCodegenUpdateReqVO updateReqVO); 49 + void updateCodegen(CodegenUpdateReqVO updateReqVO);
50 50
51 /** 51 /**
52 * 基于数据库的表结构,同步数据库的表和字段定义 52 * 基于数据库的表结构,同步数据库的表和字段定义
@@ -76,7 +76,7 @@ public interface ToolCodegenService { @@ -76,7 +76,7 @@ public interface ToolCodegenService {
76 * @param pageReqVO 分页条件 76 * @param pageReqVO 分页条件
77 * @return 表定义分页 77 * @return 表定义分页
78 */ 78 */
79 - PageResult<ToolCodegenTableDO> getCodegenTablePage(ToolCodegenTablePageReqVO pageReqVO); 79 + PageResult<CodegenTableDO> getCodegenTablePage(CodegenTablePageReqVO pageReqVO);
80 80
81 /** 81 /**
82 * 获得表定义 82 * 获得表定义
@@ -84,14 +84,14 @@ public interface ToolCodegenService { @@ -84,14 +84,14 @@ public interface ToolCodegenService {
84 * @param id 表编号 84 * @param id 表编号
85 * @return 表定义 85 * @return 表定义
86 */ 86 */
87 - ToolCodegenTableDO getCodegenTablePage(Long id); 87 + CodegenTableDO getCodegenTablePage(Long id);
88 88
89 /** 89 /**
90 * 获得全部表定义 90 * 获得全部表定义
91 * 91 *
92 * @return 表定义数组 92 * @return 表定义数组
93 */ 93 */
94 - List<ToolCodegenTableDO> getCodeGenTableList(); 94 + List<CodegenTableDO> getCodeGenTableList();
95 95
96 /** 96 /**
97 * 获得指定表的字段定义数组 97 * 获得指定表的字段定义数组
@@ -99,7 +99,7 @@ public interface ToolCodegenService { @@ -99,7 +99,7 @@ public interface ToolCodegenService {
99 * @param tableId 表编号 99 * @param tableId 表编号
100 * @return 字段定义数组 100 * @return 字段定义数组
101 */ 101 */
102 - List<ToolCodegenColumnDO> getCodegenColumnListByTableId(Long tableId); 102 + List<CodegenColumnDO> getCodegenColumnListByTableId(Long tableId);
103 103
104 /** 104 /**
105 * 执行指定表的代码生成 105 * 执行指定表的代码生成
@@ -116,6 +116,6 @@ public interface ToolCodegenService { @@ -116,6 +116,6 @@ public interface ToolCodegenService {
116 * @param tableComment 表描述 116 * @param tableComment 表描述
117 * @return 表定义列表 117 * @return 表定义列表
118 */ 118 */
119 - List<ToolSchemaTableDO> getSchemaTableList(String tableName, String tableComment); 119 + List<SchemaTableDO> getSchemaTableList(String tableName, String tableComment);
120 120
121 } 121 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/impl/ToolCodegenServiceImpl.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/service/codegen/CodegenServiceImpl.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl; 1 +package cn.iocoder.yudao.module.tool.service.codegen;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 -import cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config.CodegenProperties;  
6 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.ToolCodegenUpdateReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.controller.codegen.vo.table.ToolCodegenTablePageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.tool.convert.codegen.ToolCodegenConvert;  
9 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;  
10 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;  
11 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO;  
12 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO;  
13 -import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen.ToolCodegenColumnMapper;  
14 -import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen.ToolCodegenTableMapper;  
15 -import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen.ToolSchemaColumnMapper;  
16 -import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.codegen.ToolSchemaTableMapper;  
17 -import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenImportTypeEnum;  
18 -import cn.iocoder.yudao.adminserver.modules.tool.service.codegen.ToolCodegenService; 5 +import cn.iocoder.yudao.module.tool.framework.codegen.config.CodegenProperties;
  6 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.CodegenUpdateReqVO;
  7 +import cn.iocoder.yudao.module.tool.controller.admin.codegen.vo.table.CodegenTablePageReqVO;
  8 +import cn.iocoder.yudao.module.tool.convert.codegen.CodegenConvert;
  9 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO;
  10 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO;
  11 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaColumnDO;
  12 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaTableDO;
  13 +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.CodegenColumnMapper;
  14 +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.CodegenTableMapper;
  15 +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.SchemaColumnMapper;
  16 +import cn.iocoder.yudao.module.tool.dal.mysql.codegen.SchemaTableMapper;
  17 +import cn.iocoder.yudao.module.tool.enums.codegen.CodegenImportTypeEnum;
19 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 18 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  19 +import cn.iocoder.yudao.module.tool.service.codegen.inner.CodegenBuilder;
  20 +import cn.iocoder.yudao.module.tool.service.codegen.inner.CodegenEngine;
  21 +import cn.iocoder.yudao.module.tool.service.codegen.inner.CodegenSQLParser;
20 import org.apache.commons.collections4.KeyValue; 22 import org.apache.commons.collections4.KeyValue;
21 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
22 import org.springframework.transaction.annotation.Transactional; 24 import org.springframework.transaction.annotation.Transactional;
@@ -29,7 +31,7 @@ import java.util.Set; @@ -29,7 +31,7 @@ import java.util.Set;
29 import java.util.stream.Collectors; 31 import java.util.stream.Collectors;
30 32
31 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 33 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
32 -import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConstants.*; 34 +import static cn.iocoder.yudao.module.tool.enums.ErrorCodeConstants.*;
33 35
34 /** 36 /**
35 * 代码生成 Service 实现类 37 * 代码生成 Service 实现类
@@ -37,27 +39,27 @@ import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConst @@ -37,27 +39,27 @@ import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConst
37 * @author 芋道源码 39 * @author 芋道源码
38 */ 40 */
39 @Service 41 @Service
40 -public class ToolCodegenServiceImpl implements ToolCodegenService { 42 +public class CodegenServiceImpl implements CodegenService {
41 43
42 @Resource 44 @Resource
43 - private ToolSchemaTableMapper schemaTableMapper; 45 + private SchemaTableMapper schemaTableMapper;
44 @Resource 46 @Resource
45 - private ToolSchemaColumnMapper schemaColumnMapper; 47 + private SchemaColumnMapper schemaColumnMapper;
46 @Resource 48 @Resource
47 - private ToolCodegenTableMapper codegenTableMapper; 49 + private CodegenTableMapper codegenTableMapper;
48 @Resource 50 @Resource
49 - private ToolCodegenColumnMapper codegenColumnMapper; 51 + private CodegenColumnMapper codegenColumnMapper;
50 52
51 @Resource 53 @Resource
52 - private ToolCodegenBuilder codegenBuilder; 54 + private CodegenBuilder codegenBuilder;
53 @Resource 55 @Resource
54 - private ToolCodegenEngine codegenEngine; 56 + private CodegenEngine codegenEngine;
55 57
56 @Resource 58 @Resource
57 private CodegenProperties codegenProperties; 59 private CodegenProperties codegenProperties;
58 60
59 - private Long createCodegen0(ToolCodegenImportTypeEnum importType,  
60 - ToolSchemaTableDO schemaTable, List<ToolSchemaColumnDO> schemaColumns) { 61 + private Long createCodegen0(CodegenImportTypeEnum importType,
  62 + SchemaTableDO schemaTable, List<SchemaColumnDO> schemaColumns) {
61 // 校验导入的表和字段非空 63 // 校验导入的表和字段非空
62 if (schemaTable == null) { 64 if (schemaTable == null) {
63 throw exception(CODEGEN_IMPORT_TABLE_NULL); 65 throw exception(CODEGEN_IMPORT_TABLE_NULL);
@@ -70,12 +72,12 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -70,12 +72,12 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
70 throw exception(CODEGEN_TABLE_EXISTS); 72 throw exception(CODEGEN_TABLE_EXISTS);
71 } 73 }
72 74
73 - // 构建 ToolCodegenTableDO 对象,插入到 DB 中  
74 - ToolCodegenTableDO table = codegenBuilder.buildTable(schemaTable); 75 + // 构建 CodegenTableDO 对象,插入到 DB 中
  76 + CodegenTableDO table = codegenBuilder.buildTable(schemaTable);
75 table.setImportType(importType.getType()); 77 table.setImportType(importType.getType());
76 codegenTableMapper.insert(table); 78 codegenTableMapper.insert(table);
77 - // 构建 ToolCodegenColumnDO 数组,插入到 DB 中  
78 - List<ToolCodegenColumnDO> columns = codegenBuilder.buildColumns(schemaColumns); 79 + // 构建 CodegenColumnDO 数组,插入到 DB 中
  80 + List<CodegenColumnDO> columns = codegenBuilder.buildColumns(schemaColumns);
79 columns.forEach(column -> { 81 columns.forEach(column -> {
80 column.setTableId(table.getId()); 82 column.setTableId(table.getId());
81 codegenColumnMapper.insert(column); // TODO 批量插入 83 codegenColumnMapper.insert(column); // TODO 批量插入
@@ -86,17 +88,17 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -86,17 +88,17 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
86 @Override 88 @Override
87 public Long createCodegenListFromSQL(String sql) { 89 public Long createCodegenListFromSQL(String sql) {
88 // 从 SQL 中,获得数据库表结构 90 // 从 SQL 中,获得数据库表结构
89 - ToolSchemaTableDO schemaTable;  
90 - List<ToolSchemaColumnDO> schemaColumns; 91 + SchemaTableDO schemaTable;
  92 + List<SchemaColumnDO> schemaColumns;
91 try { 93 try {
92 - KeyValue<ToolSchemaTableDO, List<ToolSchemaColumnDO>> result = ToolCodegenSQLParser.parse(sql); 94 + KeyValue<SchemaTableDO, List<SchemaColumnDO>> result = CodegenSQLParser.parse(sql);
93 schemaTable = result.getKey(); 95 schemaTable = result.getKey();
94 schemaColumns = result.getValue(); 96 schemaColumns = result.getValue();
95 } catch (Exception ex) { 97 } catch (Exception ex) {
96 throw exception(CODEGEN_PARSE_SQL_ERROR); 98 throw exception(CODEGEN_PARSE_SQL_ERROR);
97 } 99 }
98 // 导入 100 // 导入
99 - return this.createCodegen0(ToolCodegenImportTypeEnum.SQL, schemaTable, schemaColumns); 101 + return this.createCodegen0(CodegenImportTypeEnum.SQL, schemaTable, schemaColumns);
100 } 102 }
101 103
102 @Override 104 @Override
@@ -104,10 +106,10 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -104,10 +106,10 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
104 // 获取当前schema 106 // 获取当前schema
105 String tableSchema = codegenProperties.getDbSchemas().iterator().next(); 107 String tableSchema = codegenProperties.getDbSchemas().iterator().next();
106 // 从数据库中,获得数据库表结构 108 // 从数据库中,获得数据库表结构
107 - ToolSchemaTableDO schemaTable = schemaTableMapper.selectByTableSchemaAndTableName(tableSchema, tableName);  
108 - List<ToolSchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(tableSchema, tableName); 109 + SchemaTableDO schemaTable = schemaTableMapper.selectByTableSchemaAndTableName(tableSchema, tableName);
  110 + List<SchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(tableSchema, tableName);
109 // 导入 111 // 导入
110 - return this.createCodegen0(ToolCodegenImportTypeEnum.DB, schemaTable, schemaColumns); 112 + return this.createCodegen0(CodegenImportTypeEnum.DB, schemaTable, schemaColumns);
111 } 113 }
112 114
113 @Override 115 @Override
@@ -121,17 +123,17 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -121,17 +123,17 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
121 123
122 @Override 124 @Override
123 @Transactional(rollbackFor = Exception.class) 125 @Transactional(rollbackFor = Exception.class)
124 - public void updateCodegen(ToolCodegenUpdateReqVO updateReqVO) { 126 + public void updateCodegen(CodegenUpdateReqVO updateReqVO) {
125 // 校验是否已经存在 127 // 校验是否已经存在
126 if (codegenTableMapper.selectById(updateReqVO.getTable().getId()) == null) { 128 if (codegenTableMapper.selectById(updateReqVO.getTable().getId()) == null) {
127 throw exception(CODEGEN_TABLE_NOT_EXISTS); 129 throw exception(CODEGEN_TABLE_NOT_EXISTS);
128 } 130 }
129 131
130 // 更新 table 表定义 132 // 更新 table 表定义
131 - ToolCodegenTableDO updateTableObj = ToolCodegenConvert.INSTANCE.convert(updateReqVO.getTable()); 133 + CodegenTableDO updateTableObj = CodegenConvert.INSTANCE.convert(updateReqVO.getTable());
132 codegenTableMapper.updateById(updateTableObj); 134 codegenTableMapper.updateById(updateTableObj);
133 // 更新 column 字段定义 135 // 更新 column 字段定义
134 - List<ToolCodegenColumnDO> updateColumnObjs = ToolCodegenConvert.INSTANCE.convertList03(updateReqVO.getColumns()); 136 + List<CodegenColumnDO> updateColumnObjs = CodegenConvert.INSTANCE.convertList03(updateReqVO.getColumns());
135 updateColumnObjs.forEach(updateColumnObj -> codegenColumnMapper.updateById(updateColumnObj)); 137 updateColumnObjs.forEach(updateColumnObj -> codegenColumnMapper.updateById(updateColumnObj));
136 } 138 }
137 139
@@ -139,13 +141,13 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -139,13 +141,13 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
139 @Transactional(rollbackFor = Exception.class) 141 @Transactional(rollbackFor = Exception.class)
140 public void syncCodegenFromDB(Long tableId) { 142 public void syncCodegenFromDB(Long tableId) {
141 // 校验是否已经存在 143 // 校验是否已经存在
142 - ToolCodegenTableDO table = codegenTableMapper.selectById(tableId); 144 + CodegenTableDO table = codegenTableMapper.selectById(tableId);
143 if (table == null) { 145 if (table == null) {
144 throw exception(CODEGEN_TABLE_NOT_EXISTS); 146 throw exception(CODEGEN_TABLE_NOT_EXISTS);
145 } 147 }
146 String tableSchema = codegenProperties.getDbSchemas().iterator().next(); 148 String tableSchema = codegenProperties.getDbSchemas().iterator().next();
147 // 从数据库中,获得数据库表结构 149 // 从数据库中,获得数据库表结构
148 - List<ToolSchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(tableSchema, table.getTableName()); 150 + List<SchemaColumnDO> schemaColumns = schemaColumnMapper.selectListByTableName(tableSchema, table.getTableName());
149 151
150 // 执行同步 152 // 执行同步
151 this.syncCodegen0(tableId, schemaColumns); 153 this.syncCodegen0(tableId, schemaColumns);
@@ -155,14 +157,14 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -155,14 +157,14 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
155 @Transactional(rollbackFor = Exception.class) 157 @Transactional(rollbackFor = Exception.class)
156 public void syncCodegenFromSQL(Long tableId, String sql) { 158 public void syncCodegenFromSQL(Long tableId, String sql) {
157 // 校验是否已经存在 159 // 校验是否已经存在
158 - ToolCodegenTableDO table = codegenTableMapper.selectById(tableId); 160 + CodegenTableDO table = codegenTableMapper.selectById(tableId);
159 if (table == null) { 161 if (table == null) {
160 throw exception(CODEGEN_TABLE_NOT_EXISTS); 162 throw exception(CODEGEN_TABLE_NOT_EXISTS);
161 } 163 }
162 // 从 SQL 中,获得数据库表结构 164 // 从 SQL 中,获得数据库表结构
163 - List<ToolSchemaColumnDO> schemaColumns; 165 + List<SchemaColumnDO> schemaColumns;
164 try { 166 try {
165 - KeyValue<ToolSchemaTableDO, List<ToolSchemaColumnDO>> result = ToolCodegenSQLParser.parse(sql); 167 + KeyValue<SchemaTableDO, List<SchemaColumnDO>> result = CodegenSQLParser.parse(sql);
166 schemaColumns = result.getValue(); 168 schemaColumns = result.getValue();
167 } catch (Exception ex) { 169 } catch (Exception ex) {
168 throw exception(CODEGEN_PARSE_SQL_ERROR); 170 throw exception(CODEGEN_PARSE_SQL_ERROR);
@@ -172,27 +174,27 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -172,27 +174,27 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
172 this.syncCodegen0(tableId, schemaColumns); 174 this.syncCodegen0(tableId, schemaColumns);
173 } 175 }
174 176
175 - private void syncCodegen0(Long tableId, List<ToolSchemaColumnDO> schemaColumns) { 177 + private void syncCodegen0(Long tableId, List<SchemaColumnDO> schemaColumns) {
176 // 校验导入的字段不为空 178 // 校验导入的字段不为空
177 if (CollUtil.isEmpty(schemaColumns)) { 179 if (CollUtil.isEmpty(schemaColumns)) {
178 throw exception(CODEGEN_SYNC_COLUMNS_NULL); 180 throw exception(CODEGEN_SYNC_COLUMNS_NULL);
179 } 181 }
180 - Set<String> schemaColumnNames = CollectionUtils.convertSet(schemaColumns, ToolSchemaColumnDO::getColumnName); 182 + Set<String> schemaColumnNames = CollectionUtils.convertSet(schemaColumns, SchemaColumnDO::getColumnName);
181 183
182 - // 构建 ToolCodegenColumnDO 数组,只同步新增的字段  
183 - List<ToolCodegenColumnDO> codegenColumns = codegenColumnMapper.selectListByTableId(tableId);  
184 - Set<String> codegenColumnNames = CollectionUtils.convertSet(codegenColumns, ToolCodegenColumnDO::getColumnName); 184 + // 构建 CodegenColumnDO 数组,只同步新增的字段
  185 + List<CodegenColumnDO> codegenColumns = codegenColumnMapper.selectListByTableId(tableId);
  186 + Set<String> codegenColumnNames = CollectionUtils.convertSet(codegenColumns, CodegenColumnDO::getColumnName);
185 // 移除已经存在的字段 187 // 移除已经存在的字段
186 schemaColumns.removeIf(column -> codegenColumnNames.contains(column.getColumnName())); 188 schemaColumns.removeIf(column -> codegenColumnNames.contains(column.getColumnName()));
187 // 计算需要删除的字段 189 // 计算需要删除的字段
188 Set<Long> deleteColumnIds = codegenColumns.stream().filter(column -> !schemaColumnNames.contains(column.getColumnName())) 190 Set<Long> deleteColumnIds = codegenColumns.stream().filter(column -> !schemaColumnNames.contains(column.getColumnName()))
189 - .map(ToolCodegenColumnDO::getId).collect(Collectors.toSet()); 191 + .map(CodegenColumnDO::getId).collect(Collectors.toSet());
190 if (CollUtil.isEmpty(schemaColumns) && CollUtil.isEmpty(deleteColumnIds)) { 192 if (CollUtil.isEmpty(schemaColumns) && CollUtil.isEmpty(deleteColumnIds)) {
191 throw exception(CODEGEN_SYNC_NONE_CHANGE); 193 throw exception(CODEGEN_SYNC_NONE_CHANGE);
192 } 194 }
193 195
194 // 插入新增的字段 196 // 插入新增的字段
195 - List<ToolCodegenColumnDO> columns = codegenBuilder.buildColumns(schemaColumns); 197 + List<CodegenColumnDO> columns = codegenBuilder.buildColumns(schemaColumns);
196 columns.forEach(column -> { 198 columns.forEach(column -> {
197 column.setTableId(tableId); 199 column.setTableId(tableId);
198 codegenColumnMapper.insert(column); // TODO 批量插入 200 codegenColumnMapper.insert(column); // TODO 批量插入
@@ -218,33 +220,33 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -218,33 +220,33 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
218 } 220 }
219 221
220 @Override 222 @Override
221 - public PageResult<ToolCodegenTableDO> getCodegenTablePage(ToolCodegenTablePageReqVO pageReqVO) { 223 + public PageResult<CodegenTableDO> getCodegenTablePage(CodegenTablePageReqVO pageReqVO) {
222 return codegenTableMapper.selectPage(pageReqVO); 224 return codegenTableMapper.selectPage(pageReqVO);
223 } 225 }
224 226
225 @Override 227 @Override
226 - public ToolCodegenTableDO getCodegenTablePage(Long id) { 228 + public CodegenTableDO getCodegenTablePage(Long id) {
227 return codegenTableMapper.selectById(id); 229 return codegenTableMapper.selectById(id);
228 } 230 }
229 231
230 @Override 232 @Override
231 - public List<ToolCodegenTableDO> getCodeGenTableList() { 233 + public List<CodegenTableDO> getCodeGenTableList() {
232 return codegenTableMapper.selectList(); 234 return codegenTableMapper.selectList();
233 } 235 }
234 236
235 @Override 237 @Override
236 - public List<ToolCodegenColumnDO> getCodegenColumnListByTableId(Long tableId) { 238 + public List<CodegenColumnDO> getCodegenColumnListByTableId(Long tableId) {
237 return codegenColumnMapper.selectListByTableId(tableId); 239 return codegenColumnMapper.selectListByTableId(tableId);
238 } 240 }
239 241
240 @Override 242 @Override
241 public Map<String, String> generationCodes(Long tableId) { 243 public Map<String, String> generationCodes(Long tableId) {
242 // 校验是否已经存在 244 // 校验是否已经存在
243 - ToolCodegenTableDO table = codegenTableMapper.selectById(tableId); 245 + CodegenTableDO table = codegenTableMapper.selectById(tableId);
244 if (codegenTableMapper.selectById(tableId) == null) { 246 if (codegenTableMapper.selectById(tableId) == null) {
245 throw exception(CODEGEN_TABLE_NOT_EXISTS); 247 throw exception(CODEGEN_TABLE_NOT_EXISTS);
246 } 248 }
247 - List<ToolCodegenColumnDO> columns = codegenColumnMapper.selectListByTableId(tableId); 249 + List<CodegenColumnDO> columns = codegenColumnMapper.selectListByTableId(tableId);
248 if (CollUtil.isEmpty(columns)) { 250 if (CollUtil.isEmpty(columns)) {
249 throw exception(CODEGEN_COLUMN_NOT_EXISTS); 251 throw exception(CODEGEN_COLUMN_NOT_EXISTS);
250 } 252 }
@@ -254,8 +256,8 @@ public class ToolCodegenServiceImpl implements ToolCodegenService { @@ -254,8 +256,8 @@ public class ToolCodegenServiceImpl implements ToolCodegenService {
254 } 256 }
255 257
256 @Override 258 @Override
257 - public List<ToolSchemaTableDO> getSchemaTableList(String tableName, String tableComment) {  
258 - List<ToolSchemaTableDO> tables = schemaTableMapper.selectList(codegenProperties.getDbSchemas(), tableName, tableComment); 259 + public List<SchemaTableDO> getSchemaTableList(String tableName, String tableComment) {
  260 + List<SchemaTableDO> tables = schemaTableMapper.selectList(codegenProperties.getDbSchemas(), tableName, tableComment);
259 // TODO 强制移除 Quartz 的表,未来做成可配置 261 // TODO 强制移除 Quartz 的表,未来做成可配置
260 tables.removeIf(table -> table.getTableName().startsWith("QRTZ_")); 262 tables.removeIf(table -> table.getTableName().startsWith("QRTZ_"));
261 tables.removeIf(table -> table.getTableName().startsWith("ACT_")); 263 tables.removeIf(table -> table.getTableName().startsWith("ACT_"));
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/impl/ToolCodegenBuilder.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/service/codegen/inner/CodegenBuilder.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl; 1 +package cn.iocoder.yudao.module.tool.service.codegen.inner;
2 2
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 -import cn.iocoder.yudao.adminserver.modules.tool.convert.codegen.ToolCodegenConvert;  
7 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;  
8 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO;  
9 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO;  
10 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO;  
11 -import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnHtmlTypeEnum;  
12 -import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenColumnListConditionEnum;  
13 -import cn.iocoder.yudao.adminserver.modules.tool.enums.codegen.ToolCodegenTemplateTypeEnum; 6 +import cn.iocoder.yudao.module.tool.convert.codegen.CodegenConvert;
  7 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO;
  8 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO;
  9 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaColumnDO;
  10 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaTableDO;
  11 +import cn.iocoder.yudao.module.tool.enums.codegen.CodegenColumnHtmlTypeEnum;
  12 +import cn.iocoder.yudao.module.tool.enums.codegen.CodegenColumnListConditionEnum;
  13 +import cn.iocoder.yudao.module.tool.enums.codegen.CodegenTemplateTypeEnum;
14 import com.google.common.collect.Sets; 14 import com.google.common.collect.Sets;
15 import org.springframework.stereotype.Component; 15 import org.springframework.stereotype.Component;
16 16
@@ -21,11 +21,11 @@ import static cn.hutool.core.text.CharSequenceUtil.*; @@ -21,11 +21,11 @@ import static cn.hutool.core.text.CharSequenceUtil.*;
21 21
22 /** 22 /**
23 * 代码生成器的 Builder,负责: 23 * 代码生成器的 Builder,负责:
24 - * 1. 将数据库的表 {@link ToolSchemaTableDO} 定义,构建成 {@link ToolCodegenTableDO}  
25 - * 2. 将数据库的列 {@link ToolSchemaColumnDO} 构定义,建成 {@link ToolCodegenColumnDO} 24 + * 1. 将数据库的表 {@link SchemaTableDO} 定义,构建成 {@link CodegenTableDO}
  25 + * 2. 将数据库的列 {@link SchemaColumnDO} 构定义,建成 {@link CodegenColumnDO}
26 */ 26 */
27 @Component 27 @Component
28 -public class ToolCodegenBuilder { 28 +public class CodegenBuilder {
29 29
30 /** 30 /**
31 * Module 名字的映射 TODO 后续梳理到配置类 31 * Module 名字的映射 TODO 后续梳理到配置类
@@ -40,30 +40,30 @@ public class ToolCodegenBuilder { @@ -40,30 +40,30 @@ public class ToolCodegenBuilder {
40 .build(); 40 .build();
41 41
42 /** 42 /**
43 - * 字段名与 {@link ToolCodegenColumnListConditionEnum} 的默认映射 43 + * 字段名与 {@link CodegenColumnListConditionEnum} 的默认映射
44 * 注意,字段的匹配以后缀的方式 44 * 注意,字段的匹配以后缀的方式
45 */ 45 */
46 - private static final Map<String, ToolCodegenColumnListConditionEnum> columnListOperationConditionMappings =  
47 - MapUtil.<String, ToolCodegenColumnListConditionEnum>builder()  
48 - .put("name", ToolCodegenColumnListConditionEnum.LIKE)  
49 - .put("time", ToolCodegenColumnListConditionEnum.BETWEEN)  
50 - .put("date", ToolCodegenColumnListConditionEnum.BETWEEN) 46 + private static final Map<String, CodegenColumnListConditionEnum> columnListOperationConditionMappings =
  47 + MapUtil.<String, CodegenColumnListConditionEnum>builder()
  48 + .put("name", CodegenColumnListConditionEnum.LIKE)
  49 + .put("time", CodegenColumnListConditionEnum.BETWEEN)
  50 + .put("date", CodegenColumnListConditionEnum.BETWEEN)
51 .build(); 51 .build();
52 52
53 /** 53 /**
54 - * 字段名与 {@link ToolCodegenColumnHtmlTypeEnum} 的默认映射 54 + * 字段名与 {@link CodegenColumnHtmlTypeEnum} 的默认映射
55 * 注意,字段的匹配以后缀的方式 55 * 注意,字段的匹配以后缀的方式
56 */ 56 */
57 - private static final Map<String, ToolCodegenColumnHtmlTypeEnum> columnHtmlTypeMappings =  
58 - MapUtil.<String, ToolCodegenColumnHtmlTypeEnum>builder()  
59 - .put("status", ToolCodegenColumnHtmlTypeEnum.RADIO)  
60 - .put("sex", ToolCodegenColumnHtmlTypeEnum.RADIO)  
61 - .put("type", ToolCodegenColumnHtmlTypeEnum.SELECT)  
62 - .put("image", ToolCodegenColumnHtmlTypeEnum.UPLOAD_IMAGE)  
63 - .put("file", ToolCodegenColumnHtmlTypeEnum.UPLOAD_FILE)  
64 - .put("content", ToolCodegenColumnHtmlTypeEnum.EDITOR)  
65 - .put("time", ToolCodegenColumnHtmlTypeEnum.DATETIME)  
66 - .put("date", ToolCodegenColumnHtmlTypeEnum.DATETIME) 57 + private static final Map<String, CodegenColumnHtmlTypeEnum> columnHtmlTypeMappings =
  58 + MapUtil.<String, CodegenColumnHtmlTypeEnum>builder()
  59 + .put("status", CodegenColumnHtmlTypeEnum.RADIO)
  60 + .put("sex", CodegenColumnHtmlTypeEnum.RADIO)
  61 + .put("type", CodegenColumnHtmlTypeEnum.SELECT)
  62 + .put("image", CodegenColumnHtmlTypeEnum.UPLOAD_IMAGE)
  63 + .put("file", CodegenColumnHtmlTypeEnum.UPLOAD_FILE)
  64 + .put("content", CodegenColumnHtmlTypeEnum.EDITOR)
  65 + .put("time", CodegenColumnHtmlTypeEnum.DATETIME)
  66 + .put("date", CodegenColumnHtmlTypeEnum.DATETIME)
67 .build(); 67 .build();
68 68
69 /** 69 /**
@@ -113,8 +113,8 @@ public class ToolCodegenBuilder { @@ -113,8 +113,8 @@ public class ToolCodegenBuilder {
113 LIST_OPERATION_RESULT_EXCLUDE_COLUMN.remove("createTime"); // 创建时间,还是需要返回的 113 LIST_OPERATION_RESULT_EXCLUDE_COLUMN.remove("createTime"); // 创建时间,还是需要返回的
114 } 114 }
115 115
116 - public ToolCodegenTableDO buildTable(ToolSchemaTableDO schemaTable) {  
117 - ToolCodegenTableDO table = ToolCodegenConvert.INSTANCE.convert(schemaTable); 116 + public CodegenTableDO buildTable(SchemaTableDO schemaTable) {
  117 + CodegenTableDO table = CodegenConvert.INSTANCE.convert(schemaTable);
118 initTableDefault(table); 118 initTableDefault(table);
119 return table; 119 return table;
120 } 120 }
@@ -124,7 +124,7 @@ public class ToolCodegenBuilder { @@ -124,7 +124,7 @@ public class ToolCodegenBuilder {
124 * 124 *
125 * @param table 表定义 125 * @param table 表定义
126 */ 126 */
127 - private void initTableDefault(ToolCodegenTableDO table) { 127 + private void initTableDefault(CodegenTableDO table) {
128 table.setModuleName(getFullModuleName(StrUtil.subBefore(table.getTableName(), 128 table.setModuleName(getFullModuleName(StrUtil.subBefore(table.getTableName(),
129 '_', false))); // 第一个 _ 前缀的前面,作为 module 名字 129 '_', false))); // 第一个 _ 前缀的前面,作为 module 名字
130 table.setBusinessName(toCamelCase(subAfter(table.getTableName(), 130 table.setBusinessName(toCamelCase(subAfter(table.getTableName(),
@@ -133,11 +133,11 @@ public class ToolCodegenBuilder { @@ -133,11 +133,11 @@ public class ToolCodegenBuilder {
133 table.setClassComment(subBefore(table.getTableComment(), // 去除结尾的表,作为类描述 133 table.setClassComment(subBefore(table.getTableComment(), // 去除结尾的表,作为类描述
134 '表', true)); 134 '表', true));
135 table.setAuthor("芋艿"); // TODO 稍后改成创建人 135 table.setAuthor("芋艿"); // TODO 稍后改成创建人
136 - table.setTemplateType(ToolCodegenTemplateTypeEnum.CRUD.getType()); 136 + table.setTemplateType(CodegenTemplateTypeEnum.CRUD.getType());
137 } 137 }
138 138
139 - public List<ToolCodegenColumnDO> buildColumns(List<ToolSchemaColumnDO> schemaColumns) {  
140 - List<ToolCodegenColumnDO> columns = ToolCodegenConvert.INSTANCE.convertList(schemaColumns); 139 + public List<CodegenColumnDO> buildColumns(List<SchemaColumnDO> schemaColumns) {
  140 + List<CodegenColumnDO> columns = CodegenConvert.INSTANCE.convertList(schemaColumns);
141 columns.forEach(this::initColumnDefault); 141 columns.forEach(this::initColumnDefault);
142 return columns; 142 return columns;
143 } 143 }
@@ -147,7 +147,7 @@ public class ToolCodegenBuilder { @@ -147,7 +147,7 @@ public class ToolCodegenBuilder {
147 * 147 *
148 * @param column 列定义 148 * @param column 列定义
149 */ 149 */
150 - private void initColumnDefault(ToolCodegenColumnDO column) { 150 + private void initColumnDefault(CodegenColumnDO column) {
151 // 处理 Java 相关的字段的默认值 151 // 处理 Java 相关的字段的默认值
152 processColumnJava(column); 152 processColumnJava(column);
153 // 处理 CRUD 相关的字段的默认值 153 // 处理 CRUD 相关的字段的默认值
@@ -156,7 +156,7 @@ public class ToolCodegenBuilder { @@ -156,7 +156,7 @@ public class ToolCodegenBuilder {
156 processColumnUI(column); 156 processColumnUI(column);
157 } 157 }
158 158
159 - private void processColumnJava(ToolCodegenColumnDO column) { 159 + private void processColumnJava(CodegenColumnDO column) {
160 // 处理 javaField 字段 160 // 处理 javaField 字段
161 column.setJavaField(toCamelCase(column.getColumnName())); 161 column.setJavaField(toCamelCase(column.getColumnName()));
162 // 处理 dictType 字段,暂无 162 // 处理 dictType 字段,暂无
@@ -171,7 +171,7 @@ public class ToolCodegenBuilder { @@ -171,7 +171,7 @@ public class ToolCodegenBuilder {
171 } 171 }
172 } 172 }
173 173
174 - private void processColumnOperation(ToolCodegenColumnDO column) { 174 + private void processColumnOperation(CodegenColumnDO column) {
175 // 处理 createOperation 字段 175 // 处理 createOperation 字段
176 column.setCreateOperation(!CREATE_OPERATION_EXCLUDE_COLUMN.contains(column.getJavaField()) 176 column.setCreateOperation(!CREATE_OPERATION_EXCLUDE_COLUMN.contains(column.getJavaField())
177 && !column.getPrimaryKey()); // 对于主键,创建时无需传递 177 && !column.getPrimaryKey()); // 对于主键,创建时无需传递
@@ -186,13 +186,13 @@ public class ToolCodegenBuilder { @@ -186,13 +186,13 @@ public class ToolCodegenBuilder {
186 .filter(entry -> StrUtil.endWithIgnoreCase(column.getJavaField(), entry.getKey())) 186 .filter(entry -> StrUtil.endWithIgnoreCase(column.getJavaField(), entry.getKey()))
187 .findFirst().ifPresent(entry -> column.setListOperationCondition(entry.getValue().getCondition())); 187 .findFirst().ifPresent(entry -> column.setListOperationCondition(entry.getValue().getCondition()));
188 if (column.getListOperationCondition() == null) { 188 if (column.getListOperationCondition() == null) {
189 - column.setListOperationCondition(ToolCodegenColumnListConditionEnum.EQ.getCondition()); 189 + column.setListOperationCondition(CodegenColumnListConditionEnum.EQ.getCondition());
190 } 190 }
191 // 处理 listOperationResult 字段 191 // 处理 listOperationResult 字段
192 column.setListOperationResult(!LIST_OPERATION_RESULT_EXCLUDE_COLUMN.contains(column.getJavaField())); 192 column.setListOperationResult(!LIST_OPERATION_RESULT_EXCLUDE_COLUMN.contains(column.getJavaField()));
193 } 193 }
194 194
195 - private void processColumnUI(ToolCodegenColumnDO column) { 195 + private void processColumnUI(CodegenColumnDO column) {
196 // 基于后缀进行匹配 196 // 基于后缀进行匹配
197 columnHtmlTypeMappings.entrySet().stream() 197 columnHtmlTypeMappings.entrySet().stream()
198 .filter(entry -> StrUtil.endWithIgnoreCase(column.getJavaField(), entry.getKey())) 198 .filter(entry -> StrUtil.endWithIgnoreCase(column.getJavaField(), entry.getKey()))
@@ -200,11 +200,11 @@ public class ToolCodegenBuilder { @@ -200,11 +200,11 @@ public class ToolCodegenBuilder {
200 // 如果是 Boolean 类型时,设置为 radio 类型. 200 // 如果是 Boolean 类型时,设置为 radio 类型.
201 // 其它类型,因为字段名可以相对保障,所以不进行处理。例如说 date 对应 datetime 类型. 201 // 其它类型,因为字段名可以相对保障,所以不进行处理。例如说 date 对应 datetime 类型.
202 if (Boolean.class.getSimpleName().equals(column.getJavaType())) { 202 if (Boolean.class.getSimpleName().equals(column.getJavaType())) {
203 - column.setHtmlType(ToolCodegenColumnHtmlTypeEnum.RADIO.getType()); 203 + column.setHtmlType(CodegenColumnHtmlTypeEnum.RADIO.getType());
204 } 204 }
205 // 兜底,设置默认为 input 类型 205 // 兜底,设置默认为 input 类型
206 if (column.getHtmlType() == null) { 206 if (column.getHtmlType() == null) {
207 - column.setHtmlType(ToolCodegenColumnHtmlTypeEnum.INPUT.getType()); 207 + column.setHtmlType(CodegenColumnHtmlTypeEnum.INPUT.getType());
208 } 208 }
209 } 209 }
210 210
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/impl/ToolCodegenEngine.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/service/codegen/inner/CodegenEngine.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl; 1 +package cn.iocoder.yudao.module.tool.service.codegen.inner;
2 2
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; @@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
9 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 9 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
10 import cn.iocoder.yudao.framework.common.pojo.PageParam; 10 import cn.iocoder.yudao.framework.common.pojo.PageParam;
11 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
12 -import cn.iocoder.yudao.adminserver.modules.tool.framework.codegen.config.CodegenProperties; 12 +import cn.iocoder.yudao.module.tool.framework.codegen.config.CodegenProperties;
13 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 13 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
14 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 14 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
15 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 15 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
@@ -19,8 +19,8 @@ import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; @@ -19,8 +19,8 @@ import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
19 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 19 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
20 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 20 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
21 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 21 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
22 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenColumnDO;  
23 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolCodegenTableDO; 22 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenColumnDO;
  23 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.CodegenTableDO;
24 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 24 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
25 import cn.iocoder.yudao.framework.common.util.date.DateUtils; 25 import cn.iocoder.yudao.framework.common.util.date.DateUtils;
26 import com.google.common.collect.Maps; 26 import com.google.common.collect.Maps;
@@ -45,7 +45,7 @@ import static cn.hutool.core.text.CharSequenceUtil.*; @@ -45,7 +45,7 @@ import static cn.hutool.core.text.CharSequenceUtil.*;
45 * @author 芋道源码 45 * @author 芋道源码
46 */ 46 */
47 @Component 47 @Component
48 -public class ToolCodegenEngine { 48 +public class CodegenEngine {
49 49
50 /** 50 /**
51 * 模板配置 51 * 模板配置
@@ -95,7 +95,7 @@ public class ToolCodegenEngine { @@ -95,7 +95,7 @@ public class ToolCodegenEngine {
95 .build(); 95 .build();
96 96
97 @Resource 97 @Resource
98 - private ToolCodegenBuilder codegenBuilder; 98 + private CodegenBuilder codegenBuilder;
99 99
100 @Resource 100 @Resource
101 private CodegenProperties codegenProperties; 101 private CodegenProperties codegenProperties;
@@ -109,7 +109,7 @@ public class ToolCodegenEngine { @@ -109,7 +109,7 @@ public class ToolCodegenEngine {
109 */ 109 */
110 private final Map<String, Object> globalBindingMap = new HashMap<>(); 110 private final Map<String, Object> globalBindingMap = new HashMap<>();
111 111
112 - public ToolCodegenEngine() { 112 + public CodegenEngine() {
113 // 初始化 TemplateEngine 属性 113 // 初始化 TemplateEngine 属性
114 TemplateConfig config = new TemplateConfig(); 114 TemplateConfig config = new TemplateConfig();
115 config.setResourceMode(TemplateConfig.ResourceMode.CLASSPATH); 115 config.setResourceMode(TemplateConfig.ResourceMode.CLASSPATH);
@@ -129,7 +129,7 @@ public class ToolCodegenEngine { @@ -129,7 +129,7 @@ public class ToolCodegenEngine {
129 globalBindingMap.put("PageParamClassName", PageParam.class.getName()); 129 globalBindingMap.put("PageParamClassName", PageParam.class.getName());
130 globalBindingMap.put("DictFormatClassName", DictFormat.class.getName()); 130 globalBindingMap.put("DictFormatClassName", DictFormat.class.getName());
131 // DO 类,独有字段 131 // DO 类,独有字段
132 - globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS); 132 + globalBindingMap.put("baseDOFields", CodegenBuilder.BASE_DO_FIELDS);
133 globalBindingMap.put("BaseDOClassName", BaseDO.class.getName()); 133 globalBindingMap.put("BaseDOClassName", BaseDO.class.getName());
134 globalBindingMap.put("QueryWrapperClassName", QueryWrapperX.class.getName()); 134 globalBindingMap.put("QueryWrapperClassName", QueryWrapperX.class.getName());
135 globalBindingMap.put("BaseMapperClassName", BaseMapperX.class.getName()); 135 globalBindingMap.put("BaseMapperClassName", BaseMapperX.class.getName());
@@ -143,12 +143,12 @@ public class ToolCodegenEngine { @@ -143,12 +143,12 @@ public class ToolCodegenEngine {
143 globalBindingMap.put("OperateTypeEnumClassName", OperateTypeEnum.class.getName()); 143 globalBindingMap.put("OperateTypeEnumClassName", OperateTypeEnum.class.getName());
144 } 144 }
145 145
146 - public Map<String, String> execute(ToolCodegenTableDO table, List<ToolCodegenColumnDO> columns) { 146 + public Map<String, String> execute(CodegenTableDO table, List<CodegenColumnDO> columns) {
147 // 创建 bindingMap 147 // 创建 bindingMap
148 Map<String, Object> bindingMap = new HashMap<>(globalBindingMap); 148 Map<String, Object> bindingMap = new HashMap<>(globalBindingMap);
149 bindingMap.put("table", table); 149 bindingMap.put("table", table);
150 bindingMap.put("columns", columns); 150 bindingMap.put("columns", columns);
151 - bindingMap.put("primaryColumn", CollectionUtils.findFirst(columns, ToolCodegenColumnDO::getPrimaryKey)); // 主键字段 151 + bindingMap.put("primaryColumn", CollectionUtils.findFirst(columns, CodegenColumnDO::getPrimaryKey)); // 主键字段
152 // moduleName 相关 152 // moduleName 相关
153 String simpleModuleName = codegenBuilder.getSimpleModuleName(table.getModuleName()); 153 String simpleModuleName = codegenBuilder.getSimpleModuleName(table.getModuleName());
154 bindingMap.put("simpleModuleName", simpleModuleName); // 将 system 转成 sys 154 bindingMap.put("simpleModuleName", simpleModuleName); // 将 system 转成 sys
@@ -183,7 +183,7 @@ public class ToolCodegenEngine { @@ -183,7 +183,7 @@ public class ToolCodegenEngine {
183 getStr(bindingMap, "classNameVar")); 183 getStr(bindingMap, "classNameVar"));
184 184
185 // table 包含的字段 185 // table 包含的字段
186 - ToolCodegenTableDO table = (ToolCodegenTableDO) bindingMap.get("table"); 186 + CodegenTableDO table = (CodegenTableDO) bindingMap.get("table");
187 filePath = StrUtil.replace(filePath, "${table.moduleName}", table.getModuleName()); 187 filePath = StrUtil.replace(filePath, "${table.moduleName}", table.getModuleName());
188 filePath = StrUtil.replace(filePath, "${table.businessName}", table.getBusinessName()); 188 filePath = StrUtil.replace(filePath, "${table.businessName}", table.getBusinessName());
189 filePath = StrUtil.replace(filePath, "${table.className}", table.getClassName()); 189 filePath = StrUtil.replace(filePath, "${table.className}", table.getClassName());
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/impl/ToolCodegenSQLParser.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/service/codegen/inner/CodegenSQLParser.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.codegen.impl; 1 +package cn.iocoder.yudao.module.tool.service.codegen.inner;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaColumnDO;  
5 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.codegen.ToolSchemaTableDO; 4 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaColumnDO;
  5 +import cn.iocoder.yudao.module.tool.dal.dataobject.codegen.SchemaTableDO;
6 import com.alibaba.druid.DbType; 6 import com.alibaba.druid.DbType;
7 import com.alibaba.druid.sql.ast.expr.SQLCharExpr; 7 import com.alibaba.druid.sql.ast.expr.SQLCharExpr;
8 import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition; 8 import com.alibaba.druid.sql.ast.statement.SQLColumnDefinition;
@@ -21,26 +21,26 @@ import java.util.Objects; @@ -21,26 +21,26 @@ import java.util.Objects;
21 import static com.alibaba.druid.sql.SQLUtils.normalize; 21 import static com.alibaba.druid.sql.SQLUtils.normalize;
22 22
23 /** 23 /**
24 - * SQL 解析器,将创建表的 SQL,解析成 {@link ToolSchemaTableDO} 和 {@link ToolSchemaColumnDO} 对象, 24 + * SQL 解析器,将创建表的 SQL,解析成 {@link SchemaTableDO} 和 {@link SchemaColumnDO} 对象,
25 * 后续可以基于它们,生成代码~ 25 * 后续可以基于它们,生成代码~
26 * 26 *
27 * @author 芋道源码 27 * @author 芋道源码
28 */ 28 */
29 -public class ToolCodegenSQLParser { 29 +public class CodegenSQLParser {
30 30
31 /** 31 /**
32 - * 解析建表 SQL 语句,返回 {@link ToolSchemaTableDO} 和 {@link ToolSchemaColumnDO} 对象 32 + * 解析建表 SQL 语句,返回 {@link SchemaTableDO} 和 {@link SchemaColumnDO} 对象
33 * 33 *
34 * @param sql 建表 SQL 语句 34 * @param sql 建表 SQL 语句
35 * @return 解析结果 35 * @return 解析结果
36 */ 36 */
37 - public static KeyValue<ToolSchemaTableDO, List<ToolSchemaColumnDO>> parse(String sql) { 37 + public static KeyValue<SchemaTableDO, List<SchemaColumnDO>> parse(String sql) {
38 // 解析 SQL 成 Statement 38 // 解析 SQL 成 Statement
39 SQLCreateTableStatement statement = parseCreateSQL(sql); 39 SQLCreateTableStatement statement = parseCreateSQL(sql);
40 // 解析 Table 表 40 // 解析 Table 表
41 - ToolSchemaTableDO table = parseTable(statement); 41 + SchemaTableDO table = parseTable(statement);
42 // 解析 Column 字段 42 // 解析 Column 字段
43 - List<ToolSchemaColumnDO> columns = parseColumns(statement); 43 + List<SchemaColumnDO> columns = parseColumns(statement);
44 columns.forEach(column -> column.setTableName(table.getTableName())); 44 columns.forEach(column -> column.setTableName(table.getTableName()));
45 // 返回 45 // 返回
46 return new DefaultKeyValue<>(table, columns); 46 return new DefaultKeyValue<>(table, columns);
@@ -61,8 +61,8 @@ public class ToolCodegenSQLParser { @@ -61,8 +61,8 @@ public class ToolCodegenSQLParser {
61 return (MySqlCreateTableStatement) repository.findTable(tableName).getStatement(); 61 return (MySqlCreateTableStatement) repository.findTable(tableName).getStatement();
62 } 62 }
63 63
64 - private static ToolSchemaTableDO parseTable(SQLCreateTableStatement statement) {  
65 - return ToolSchemaTableDO.builder() 64 + private static SchemaTableDO parseTable(SQLCreateTableStatement statement) {
  65 + return SchemaTableDO.builder()
66 .tableName(statement.getTableSource().getTableName(true)) 66 .tableName(statement.getTableSource().getTableName(true))
67 .tableComment(getCommentText(statement)) 67 .tableComment(getCommentText(statement))
68 .build(); 68 .build();
@@ -75,13 +75,13 @@ public class ToolCodegenSQLParser { @@ -75,13 +75,13 @@ public class ToolCodegenSQLParser {
75 return ((SQLCharExpr) statement.getComment()).getText(); 75 return ((SQLCharExpr) statement.getComment()).getText();
76 } 76 }
77 77
78 - private static List<ToolSchemaColumnDO> parseColumns(SQLCreateTableStatement statement) {  
79 - List<ToolSchemaColumnDO> columns = new ArrayList<>(); 78 + private static List<SchemaColumnDO> parseColumns(SQLCreateTableStatement statement) {
  79 + List<SchemaColumnDO> columns = new ArrayList<>();
80 statement.getTableElementList().forEach(element -> parseColumn(columns, element)); 80 statement.getTableElementList().forEach(element -> parseColumn(columns, element));
81 return columns; 81 return columns;
82 } 82 }
83 83
84 - private static void parseColumn(List<ToolSchemaColumnDO> columns, SQLTableElement element) { 84 + private static void parseColumn(List<SchemaColumnDO> columns, SQLTableElement element) {
85 // 处理主键 85 // 处理主键
86 if (element instanceof SQLPrimaryKey) { 86 if (element instanceof SQLPrimaryKey) {
87 parsePrimaryKey(columns, (SQLPrimaryKey) element); 87 parsePrimaryKey(columns, (SQLPrimaryKey) element);
@@ -93,16 +93,16 @@ public class ToolCodegenSQLParser { @@ -93,16 +93,16 @@ public class ToolCodegenSQLParser {
93 } 93 }
94 } 94 }
95 95
96 - private static void parsePrimaryKey(List<ToolSchemaColumnDO> columns, SQLPrimaryKey primaryKey) { 96 + private static void parsePrimaryKey(List<SchemaColumnDO> columns, SQLPrimaryKey primaryKey) {
97 String columnName = normalize(primaryKey.getColumns().get(0).toString()); // 暂时不考虑联合主键 97 String columnName = normalize(primaryKey.getColumns().get(0).toString()); // 暂时不考虑联合主键
98 // 匹配 columns 主键字段,设置为 primary 98 // 匹配 columns 主键字段,设置为 primary
99 columns.stream().filter(column -> column.getColumnName().equals(columnName)) 99 columns.stream().filter(column -> column.getColumnName().equals(columnName))
100 .forEach(column -> column.setPrimaryKey(true)); 100 .forEach(column -> column.setPrimaryKey(true));
101 } 101 }
102 102
103 - private static void parseColumnDefinition(List<ToolSchemaColumnDO> columns, SQLColumnDefinition definition) { 103 + private static void parseColumnDefinition(List<SchemaColumnDO> columns, SQLColumnDefinition definition) {
104 String text = definition.toString().toUpperCase(); 104 String text = definition.toString().toUpperCase();
105 - columns.add(ToolSchemaColumnDO.builder() 105 + columns.add(SchemaColumnDO.builder()
106 .columnName(normalize(definition.getColumnName())) 106 .columnName(normalize(definition.getColumnName()))
107 .columnType(definition.getDataType().toString()) 107 .columnType(definition.getDataType().toString())
108 .columnComment(Objects.isNull(definition.getComment()) ? "" 108 .columnComment(Objects.isNull(definition.getComment()) ? ""
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/test/ToolTestDemoService.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/service/test/TestDemoService.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.test; 1 +package cn.iocoder.yudao.module.tool.service.test;
2 2
3 import java.util.*; 3 import java.util.*;
4 import javax.validation.*; 4 import javax.validation.*;
5 -import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;  
6 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; 5 +
  6 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoCreateReqVO;
  7 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoExportReqVO;
  8 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoPageReqVO;
  9 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoUpdateReqVO;
  10 +import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 12
9 /** 13 /**
10 - * 字典类型 Service 接口 14 + * 测试示例 Service 接口
11 * 15 *
12 * @author 芋艿 16 * @author 芋艿
13 */ 17 */
14 -public interface ToolTestDemoService { 18 +public interface TestDemoService {
15 19
16 /** 20 /**
17 * 创建字典类型 21 * 创建字典类型
@@ -19,14 +23,14 @@ public interface ToolTestDemoService { @@ -19,14 +23,14 @@ public interface ToolTestDemoService {
19 * @param createReqVO 创建信息 23 * @param createReqVO 创建信息
20 * @return 编号 24 * @return 编号
21 */ 25 */
22 - Long createTestDemo(@Valid ToolTestDemoCreateReqVO createReqVO); 26 + Long createTestDemo(@Valid TestDemoCreateReqVO createReqVO);
23 27
24 /** 28 /**
25 * 更新字典类型 29 * 更新字典类型
26 * 30 *
27 * @param updateReqVO 更新信息 31 * @param updateReqVO 更新信息
28 */ 32 */
29 - void updateTestDemo(@Valid ToolTestDemoUpdateReqVO updateReqVO); 33 + void updateTestDemo(@Valid TestDemoUpdateReqVO updateReqVO);
30 34
31 /** 35 /**
32 * 删除字典类型 36 * 删除字典类型
@@ -41,7 +45,7 @@ public interface ToolTestDemoService { @@ -41,7 +45,7 @@ public interface ToolTestDemoService {
41 * @param id 编号 45 * @param id 编号
42 * @return 字典类型 46 * @return 字典类型
43 */ 47 */
44 - ToolTestDemoDO getTestDemo(Long id); 48 + TestDemoDO getTestDemo(Long id);
45 49
46 /** 50 /**
47 * 获得字典类型列表 51 * 获得字典类型列表
@@ -49,7 +53,7 @@ public interface ToolTestDemoService { @@ -49,7 +53,7 @@ public interface ToolTestDemoService {
49 * @param ids 编号 53 * @param ids 编号
50 * @return 字典类型列表 54 * @return 字典类型列表
51 */ 55 */
52 - List<ToolTestDemoDO> getTestDemoList(Collection<Long> ids); 56 + List<TestDemoDO> getTestDemoList(Collection<Long> ids);
53 57
54 /** 58 /**
55 * 获得字典类型分页 59 * 获得字典类型分页
@@ -57,7 +61,7 @@ public interface ToolTestDemoService { @@ -57,7 +61,7 @@ public interface ToolTestDemoService {
57 * @param pageReqVO 分页查询 61 * @param pageReqVO 分页查询
58 * @return 字典类型分页 62 * @return 字典类型分页
59 */ 63 */
60 - PageResult<ToolTestDemoDO> getTestDemoPage(ToolTestDemoPageReqVO pageReqVO); 64 + PageResult<TestDemoDO> getTestDemoPage(TestDemoPageReqVO pageReqVO);
61 65
62 /** 66 /**
63 * 获得字典类型列表, 用于 Excel 导出 67 * 获得字典类型列表, 用于 Excel 导出
@@ -65,6 +69,6 @@ public interface ToolTestDemoService { @@ -65,6 +69,6 @@ public interface ToolTestDemoService {
65 * @param exportReqVO 查询条件 69 * @param exportReqVO 查询条件
66 * @return 字典类型列表 70 * @return 字典类型列表
67 */ 71 */
68 - List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO); 72 + List<TestDemoDO> getTestDemoList(TestDemoExportReqVO exportReqVO);
69 73
70 } 74 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/test/impl/ToolTestDemoServiceImpl.java renamed to yudao-module-tool/yudao-module-tool-impl/src/main/java/cn/iocoder/yudao/module/tool/service/test/TestDemoServiceImpl.java
1 -package cn.iocoder.yudao.adminserver.modules.tool.service.test.impl; 1 +package cn.iocoder.yudao.module.tool.service.test;
2 2
  3 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoCreateReqVO;
  4 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoExportReqVO;
  5 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoPageReqVO;
  6 +import cn.iocoder.yudao.module.tool.controller.admin.test.vo.TestDemoUpdateReqVO;
3 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
4 import javax.annotation.Resource; 8 import javax.annotation.Resource;
5 import org.springframework.validation.annotation.Validated; 9 import org.springframework.validation.annotation.Validated;
6 10
7 import java.util.*; 11 import java.util.*;
8 -import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;  
9 -import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; 12 +
  13 +import cn.iocoder.yudao.module.tool.dal.dataobject.test.TestDemoDO;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 14 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 15
12 -import cn.iocoder.yudao.adminserver.modules.tool.convert.test.ToolTestDemoConvert;  
13 -import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.test.ToolTestDemoMapper;  
14 -import cn.iocoder.yudao.adminserver.modules.tool.service.test.ToolTestDemoService; 16 +import cn.iocoder.yudao.module.tool.convert.test.TestDemoConvert;
  17 +import cn.iocoder.yudao.module.tool.dal.mysql.test.TestDemoMapper;
15 18
16 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 19 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
17 -import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConstants.*; 20 +import static cn.iocoder.yudao.module.tool.enums.ErrorCodeConstants.*;
18 21
19 /** 22 /**
20 - * 字典类型 Service 实现类 23 + * 测试示例 Service 实现类
21 * 24 *
22 * @author 芋艿 25 * @author 芋艿
23 */ 26 */
24 @Service 27 @Service
25 @Validated 28 @Validated
26 -public class ToolTestDemoServiceImpl implements ToolTestDemoService { 29 +public class TestDemoServiceImpl implements TestDemoService {
27 30
28 @Resource 31 @Resource
29 - private ToolTestDemoMapper testDemoMapper; 32 + private TestDemoMapper testDemoMapper;
30 33
31 @Override 34 @Override
32 - public Long createTestDemo(ToolTestDemoCreateReqVO createReqVO) { 35 + public Long createTestDemo(TestDemoCreateReqVO createReqVO) {
33 // 插入 36 // 插入
34 - ToolTestDemoDO testDemo = ToolTestDemoConvert.INSTANCE.convert(createReqVO); 37 + TestDemoDO testDemo = TestDemoConvert.INSTANCE.convert(createReqVO);
35 testDemoMapper.insert(testDemo); 38 testDemoMapper.insert(testDemo);
36 // 返回 39 // 返回
37 return testDemo.getId(); 40 return testDemo.getId();
38 } 41 }
39 42
40 @Override 43 @Override
41 - public void updateTestDemo(ToolTestDemoUpdateReqVO updateReqVO) { 44 + public void updateTestDemo(TestDemoUpdateReqVO updateReqVO) {
42 // 校验存在 45 // 校验存在
43 this.validateTestDemoExists(updateReqVO.getId()); 46 this.validateTestDemoExists(updateReqVO.getId());
44 // 更新 47 // 更新
45 - ToolTestDemoDO updateObj = ToolTestDemoConvert.INSTANCE.convert(updateReqVO); 48 + TestDemoDO updateObj = TestDemoConvert.INSTANCE.convert(updateReqVO);
46 testDemoMapper.updateById(updateObj); 49 testDemoMapper.updateById(updateObj);
47 } 50 }
48 51
@@ -61,22 +64,22 @@ public class ToolTestDemoServiceImpl implements ToolTestDemoService { @@ -61,22 +64,22 @@ public class ToolTestDemoServiceImpl implements ToolTestDemoService {
61 } 64 }
62 65
63 @Override 66 @Override
64 - public ToolTestDemoDO getTestDemo(Long id) { 67 + public TestDemoDO getTestDemo(Long id) {
65 return testDemoMapper.selectById(id); 68 return testDemoMapper.selectById(id);
66 } 69 }
67 70
68 @Override 71 @Override
69 - public List<ToolTestDemoDO> getTestDemoList(Collection<Long> ids) { 72 + public List<TestDemoDO> getTestDemoList(Collection<Long> ids) {
70 return testDemoMapper.selectBatchIds(ids); 73 return testDemoMapper.selectBatchIds(ids);
71 } 74 }
72 75
73 @Override 76 @Override
74 - public PageResult<ToolTestDemoDO> getTestDemoPage(ToolTestDemoPageReqVO pageReqVO) { 77 + public PageResult<TestDemoDO> getTestDemoPage(TestDemoPageReqVO pageReqVO) {
75 return testDemoMapper.selectPage(pageReqVO); 78 return testDemoMapper.selectPage(pageReqVO);
76 } 79 }
77 80
78 @Override 81 @Override
79 - public List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO) { 82 + public List<TestDemoDO> getTestDemoList(TestDemoExportReqVO exportReqVO) {
80 return testDemoMapper.selectList(exportReqVO); 83 return testDemoMapper.selectList(exportReqVO);
81 } 84 }
82 85