mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	项目结构调整 x 19 : 解决多数据源后,数据库文档导出问题
This commit is contained in:
		| @@ -9,6 +9,8 @@ import cn.smallbun.screw.core.engine.EngineFileType; | |||||||
| import cn.smallbun.screw.core.engine.EngineTemplateType; | import cn.smallbun.screw.core.engine.EngineTemplateType; | ||||||
| import cn.smallbun.screw.core.execute.DocumentationExecute; | import cn.smallbun.screw.core.execute.DocumentationExecute; | ||||||
| import cn.smallbun.screw.core.process.ProcessConfig; | import cn.smallbun.screw.core.process.ProcessConfig; | ||||||
|  | import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty; | ||||||
|  | import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties; | ||||||
| import com.zaxxer.hikari.HikariConfig; | import com.zaxxer.hikari.HikariConfig; | ||||||
| import com.zaxxer.hikari.HikariDataSource; | import com.zaxxer.hikari.HikariDataSource; | ||||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||||
| @@ -32,7 +34,7 @@ import java.util.Collections; | |||||||
| public class InfDbDocController { | public class InfDbDocController { | ||||||
|  |  | ||||||
|     @Resource |     @Resource | ||||||
|     private DataSourceProperties dataSourceProperties; |     private DynamicDataSourceProperties dynamicDataSourceProperties; | ||||||
|  |  | ||||||
|     private static final String FILE_OUTPUT_DIR = System.getProperty("java.io.tmpdir") + File.separator |     private static final String FILE_OUTPUT_DIR = System.getProperty("java.io.tmpdir") + File.separator | ||||||
|             + "db-doc"; |             + "db-doc"; | ||||||
| @@ -114,11 +116,14 @@ public class InfDbDocController { | |||||||
|      */ |      */ | ||||||
|     // TODO 芋艿:screw 暂时不支持 druid,尴尬 |     // TODO 芋艿:screw 暂时不支持 druid,尴尬 | ||||||
|     private HikariDataSource buildDataSource() { |     private HikariDataSource buildDataSource() { | ||||||
|  |         // 获得 DataSource 数据源,目前只支持首个 | ||||||
|  |         String primary = dynamicDataSourceProperties.getPrimary(); | ||||||
|  |         DataSourceProperty dataSourceProperty = dynamicDataSourceProperties.getDatasource().get(primary); | ||||||
|         // 创建 HikariConfig 配置类 |         // 创建 HikariConfig 配置类 | ||||||
|         HikariConfig hikariConfig = new HikariConfig(); |         HikariConfig hikariConfig = new HikariConfig(); | ||||||
|         hikariConfig.setJdbcUrl(dataSourceProperties.getUrl()); |         hikariConfig.setJdbcUrl(dataSourceProperty.getUrl()); | ||||||
|         hikariConfig.setUsername(dataSourceProperties.getUsername()); |         hikariConfig.setUsername(dataSourceProperty.getUsername()); | ||||||
|         hikariConfig.setPassword(dataSourceProperties.getPassword()); |         hikariConfig.setPassword(dataSourceProperty.getPassword()); | ||||||
|         hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 设置可以获取 tables remarks 信息 |         hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 设置可以获取 tables remarks 信息 | ||||||
|         // 创建数据源 |         // 创建数据源 | ||||||
|         return new HikariDataSource(hikariConfig); |         return new HikariDataSource(hikariConfig); | ||||||
|   | |||||||
| @@ -1,21 +1,19 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.tool.convert.test; | package cn.iocoder.yudao.adminserver.modules.tool.convert.test; | ||||||
|  |  | ||||||
|  | import java.util.*; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoCreateReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoExcelVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoRespVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoUpdateReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; |  | ||||||
| import org.mapstruct.Mapper; | import org.mapstruct.Mapper; | ||||||
| import org.mapstruct.factory.Mappers; | import org.mapstruct.factory.Mappers; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*; | ||||||
| import java.util.List; | import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| * 字典类型 Convert |  * 字典类型 Convert | ||||||
| * |  * | ||||||
| * @author 芋艿 |  * @author 芋艿 | ||||||
| */ |  */ | ||||||
| @Mapper | @Mapper | ||||||
| public interface ToolTestDemoConvert { | public interface ToolTestDemoConvert { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,16 +1,15 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test; | package cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; |  | ||||||
| import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |  | ||||||
| import com.baomidou.mybatisplus.annotation.TableId; |  | ||||||
| import com.baomidou.mybatisplus.annotation.TableName; |  | ||||||
| import lombok.*; | import lombok.*; | ||||||
|  | import java.util.*; | ||||||
|  | import com.baomidou.mybatisplus.annotation.*; | ||||||
|  | import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| * 字典类型 DO |  * 字典类型 DO | ||||||
| * |  * | ||||||
| * @author 芋艿 |  * @author 芋艿 | ||||||
| */ |  */ | ||||||
| @TableName("tool_test_demo") | @TableName("tool_test_demo") | ||||||
| @Data | @Data | ||||||
| @EqualsAndHashCode(callSuper = true) | @EqualsAndHashCode(callSuper = true) | ||||||
| @@ -31,20 +30,14 @@ public class ToolTestDemoDO extends BaseDO { | |||||||
|     private String name; |     private String name; | ||||||
|     /** |     /** | ||||||
|      * 状态 |      * 状态 | ||||||
|      * |  | ||||||
|      * 枚举 {@link CommonStatusEnum} |  | ||||||
|      */ |      */ | ||||||
|     private Integer status; |     private Integer status; | ||||||
|     /** |     /** | ||||||
|      * 类型 |      * 类型 | ||||||
|      * |  | ||||||
|      * 枚举 {@link cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum} |  | ||||||
|      */ |      */ | ||||||
|     private Integer type; |     private Integer type; | ||||||
|     /** |     /** | ||||||
|      * 分类 |      * 分类 | ||||||
|      * |  | ||||||
|      * 枚举 {@link cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.TimeoutTypeEnum} |  | ||||||
|      */ |      */ | ||||||
|     private Integer category; |     private Integer category; | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -1,14 +1,13 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.test; | package cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.test; | ||||||
|  |  | ||||||
|  | import java.util.*; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |  | ||||||
| import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; | import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoExportReqVO; | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoPageReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; | import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||||||
| import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*; | ||||||
| import java.util.List; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 字典类型 Mapper |  * 字典类型 Mapper | ||||||
| @@ -26,7 +25,7 @@ public interface ToolTestDemoMapper extends BaseMapperX<ToolTestDemoDO> { | |||||||
|                 .eqIfPresent("category", reqVO.getCategory()) |                 .eqIfPresent("category", reqVO.getCategory()) | ||||||
|                 .eqIfPresent("remark", reqVO.getRemark()) |                 .eqIfPresent("remark", reqVO.getRemark()) | ||||||
|                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) |                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||||||
|         ); |                 .orderByDesc("id")); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     default List<ToolTestDemoDO> selectList(ToolTestDemoExportReqVO reqVO) { |     default List<ToolTestDemoDO> selectList(ToolTestDemoExportReqVO reqVO) { | ||||||
| @@ -37,7 +36,7 @@ public interface ToolTestDemoMapper extends BaseMapperX<ToolTestDemoDO> { | |||||||
|                 .eqIfPresent("category", reqVO.getCategory()) |                 .eqIfPresent("category", reqVO.getCategory()) | ||||||
|                 .eqIfPresent("remark", reqVO.getRemark()) |                 .eqIfPresent("remark", reqVO.getRemark()) | ||||||
|                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) |                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime()) | ||||||
|         ); |                 .orderByDesc("id")); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -0,0 +1,12 @@ | |||||||
|  | package cn.iocoder.yudao.adminserver.modules.tool.enums; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Tool 字典类型的枚举类 | ||||||
|  |  * | ||||||
|  |  * @author 芋道源码 | ||||||
|  |  */ | ||||||
|  | public interface ToolDictTypeConstants { | ||||||
|  |  | ||||||
|  |     String TEST_DEMO_TYPE = "tool_test_demo_type"; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -125,8 +125,6 @@ public class ToolCodegenEngine { | |||||||
|         // VO 类,独有字段 |         // VO 类,独有字段 | ||||||
|         globalBindingMap.put("PageParamClassName", PageParam.class.getName()); |         globalBindingMap.put("PageParamClassName", PageParam.class.getName()); | ||||||
|         globalBindingMap.put("DictFormatClassName", DictFormat.class.getName()); |         globalBindingMap.put("DictFormatClassName", DictFormat.class.getName()); | ||||||
|         // TODO 芋艿:代码生成器,解决下枚举类 |  | ||||||
| //        globalBindingMap.put("SysDictTypeEnumClassName", SysDictTypeEnum.class.getName()); |  | ||||||
|         // DO 类,独有字段 |         // DO 类,独有字段 | ||||||
|         globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS); |         globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS); | ||||||
|         globalBindingMap.put("BaseDOClassName", BaseDO.class.getName()); |         globalBindingMap.put("BaseDOClassName", BaseDO.class.getName()); | ||||||
|   | |||||||
| @@ -1,15 +1,10 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.tool.service.test; | package cn.iocoder.yudao.adminserver.modules.tool.service.test; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import java.util.*; | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoCreateReqVO; | import javax.validation.*; | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoExportReqVO; | import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*; | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoPageReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoUpdateReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; | import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
| import javax.validation.Valid; |  | ||||||
| import java.util.Collection; |  | ||||||
| import java.util.List; |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 字典类型 Service 接口 |  * 字典类型 Service 接口 | ||||||
| @@ -68,7 +63,7 @@ public interface ToolTestDemoService { | |||||||
|      * 获得字典类型列表, 用于 Excel 导出 |      * 获得字典类型列表, 用于 Excel 导出 | ||||||
|      * |      * | ||||||
|      * @param exportReqVO 查询条件 |      * @param exportReqVO 查询条件 | ||||||
|      * @return 字典类型分页 |      * @return 字典类型列表 | ||||||
|      */ |      */ | ||||||
|     List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO); |     List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,23 +1,20 @@ | |||||||
| package cn.iocoder.yudao.adminserver.modules.tool.service.test.impl; | package cn.iocoder.yudao.adminserver.modules.tool.service.test.impl; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoCreateReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoExportReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoPageReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.ToolTestDemoUpdateReqVO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.convert.test.ToolTestDemoConvert; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.test.ToolTestDemoMapper; |  | ||||||
| import cn.iocoder.yudao.adminserver.modules.tool.service.test.ToolTestDemoService; |  | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  | import javax.annotation.Resource; | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
|  |  | ||||||
| import javax.annotation.Resource; | import java.util.*; | ||||||
| import java.util.Collection; | import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*; | ||||||
| import java.util.List; | import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO; | ||||||
|  | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConstants.TEST_DEMO_NOT_EXISTS; | import cn.iocoder.yudao.adminserver.modules.tool.convert.test.ToolTestDemoConvert; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.tool.dal.mysql.test.ToolTestDemoMapper; | ||||||
|  | import cn.iocoder.yudao.adminserver.modules.tool.service.test.ToolTestDemoService; | ||||||
|  |  | ||||||
|  | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||||||
|  | import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConstants.*; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 字典类型 Service 实现类 |  * 字典类型 Service 实现类 | ||||||
| @@ -53,13 +50,13 @@ public class ToolTestDemoServiceImpl implements ToolTestDemoService { | |||||||
|     public void deleteTestDemo(Long id) { |     public void deleteTestDemo(Long id) { | ||||||
|         // 校验存在 |         // 校验存在 | ||||||
|         this.validateTestDemoExists(id); |         this.validateTestDemoExists(id); | ||||||
|         // 更新 |         // 删除 | ||||||
|         testDemoMapper.deleteById(id); |         testDemoMapper.deleteById(id); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private void validateTestDemoExists(Long id) { |     private void validateTestDemoExists(Long id) { | ||||||
|         if (testDemoMapper.selectById(id) == null) { |         if (testDemoMapper.selectById(id) == null) { | ||||||
|             throw ServiceExceptionUtil.exception(TEST_DEMO_NOT_EXISTS); |             throw exception(TEST_DEMO_NOT_EXISTS); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -10,7 +10,6 @@ import com.alibaba.excel.annotation.ExcelProperty; | |||||||
| import ${DictFormatClassName}; | import ${DictFormatClassName}; | ||||||
| import ${DictConvertClassName}; | import ${DictConvertClassName}; | ||||||
|  |  | ||||||
| import static ${SysDictTypeEnumClassName}.*; |  | ||||||
| #break | #break | ||||||
| #end | #end | ||||||
| #end | #end | ||||||
| @@ -27,7 +26,7 @@ public class ${table.className}ExcelVO { | |||||||
|     #if (${column.listOperationResult})##返回字段 |     #if (${column.listOperationResult})##返回字段 | ||||||
|     #if ("$!column.dictType" != "")##处理枚举值 |     #if ("$!column.dictType" != "")##处理枚举值 | ||||||
|     @ExcelProperty(value = "${column.columnComment}", converter = DictConvert.class) |     @ExcelProperty(value = "${column.columnComment}", converter = DictConvert.class) | ||||||
|     @DictFormat(${column.dictType.toUpperCase()}) |     @DictFormat("${column.dictType}") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 | ||||||
|     #else |     #else | ||||||
|     @ExcelProperty("${column.columnComment}") |     @ExcelProperty("${column.columnComment}") | ||||||
|     #end |     #end | ||||||
|   | |||||||
| @@ -1,6 +1,5 @@ | |||||||
| package ${basePackage}.modules.${table.moduleName}.service.${table.businessName}.impl; | package ${basePackage}.modules.${table.moduleName}.service.${table.businessName}.impl; | ||||||
|  |  | ||||||
| import org.springframework.beans.factory.annotation.Autowired; |  | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
| @@ -14,9 +13,7 @@ import ${basePackage}.modules.${table.moduleName}.convert.${table.businessName}. | |||||||
| import ${basePackage}.modules.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; | import ${basePackage}.modules.${table.moduleName}.dal.mysql.${table.businessName}.${table.className}Mapper; | ||||||
| import ${basePackage}.modules.${table.moduleName}.service.${table.businessName}.${table.className}Service; | import ${basePackage}.modules.${table.moduleName}.service.${table.businessName}.${table.className}Service; | ||||||
|  |  | ||||||
| import ${ServiceExceptionUtilClassName}; | import static ${ServiceExceptionUtilClassName}.exception; | ||||||
|  |  | ||||||
| import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception; |  | ||||||
| import static ${basePackage}.modules.${table.moduleName}.enums.${simpleModuleName_upperFirst}ErrorCodeConstants.*; | import static ${basePackage}.modules.${table.moduleName}.enums.${simpleModuleName_upperFirst}ErrorCodeConstants.*; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV