Browse Source

项目结构调整 x 19 : 解决多数据源后,数据库文档导出问题

YunaiV 3 years ago
parent
commit
8e6fa3db55

+ 9 - 4
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/doc/InfDbDocController.java

@@ -9,6 +9,8 @@ import cn.smallbun.screw.core.engine.EngineFileType;
 import cn.smallbun.screw.core.engine.EngineTemplateType;
 import cn.smallbun.screw.core.execute.DocumentationExecute;
 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.HikariDataSource;
 import io.swagger.annotations.Api;
@@ -32,7 +34,7 @@ import java.util.Collections;
 public class InfDbDocController {
 
     @Resource
-    private DataSourceProperties dataSourceProperties;
+    private DynamicDataSourceProperties dynamicDataSourceProperties;
 
     private static final String FILE_OUTPUT_DIR = System.getProperty("java.io.tmpdir") + File.separator
             + "db-doc";
@@ -114,11 +116,14 @@ public class InfDbDocController {
      */
     // TODO 芋艿:screw 暂时不支持 druid,尴尬
     private HikariDataSource buildDataSource() {
+        // 获得 DataSource 数据源,目前只支持首个
+        String primary = dynamicDataSourceProperties.getPrimary();
+        DataSourceProperty dataSourceProperty = dynamicDataSourceProperties.getDatasource().get(primary);
         // 创建 HikariConfig 配置类
         HikariConfig hikariConfig = new HikariConfig();
-        hikariConfig.setJdbcUrl(dataSourceProperties.getUrl());
-        hikariConfig.setUsername(dataSourceProperties.getUsername());
-        hikariConfig.setPassword(dataSourceProperties.getPassword());
+        hikariConfig.setJdbcUrl(dataSourceProperty.getUrl());
+        hikariConfig.setUsername(dataSourceProperty.getUsername());
+        hikariConfig.setPassword(dataSourceProperty.getPassword());
         hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // 设置可以获取 tables remarks 信息
         // 创建数据源
         return new HikariDataSource(hikariConfig);

+ 9 - 11
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/convert/test/ToolTestDemoConvert.java

@@ -1,21 +1,19 @@
 package cn.iocoder.yudao.adminserver.modules.tool.convert.test;
 
+import java.util.*;
+
 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.factory.Mappers;
-
-import java.util.List;
+import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;
+import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO;
 
 /**
-* 字典类型 Convert
-*
-* @author 芋艿
-*/
+ * 字典类型 Convert
+ *
+ * @author 芋艿
+ */
 @Mapper
 public interface ToolTestDemoConvert {
 

+ 7 - 14
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/dataobject/test/ToolTestDemoDO.java

@@ -1,16 +1,15 @@
 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 java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 
 /**
-* 字典类型 DO
-*
-* @author 芋艿
-*/
+ * 字典类型 DO
+ *
+ * @author 芋艿
+ */
 @TableName("tool_test_demo")
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -31,20 +30,14 @@ public class ToolTestDemoDO extends BaseDO {
     private String name;
     /**
      * 状态
-     *
-     * 枚举 {@link CommonStatusEnum}
      */
     private Integer status;
     /**
      * 类型
-     *
-     * 枚举 {@link cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum}
      */
     private Integer type;
     /**
      * 分类
-     *
-     * 枚举 {@link cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.TimeoutTypeEnum}
      */
     private Integer category;
     /**

+ 6 - 7
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/dal/mysql/test/ToolTestDemoMapper.java

@@ -1,14 +1,13 @@
 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.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
-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.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO;
 import org.apache.ibatis.annotations.Mapper;
-
-import java.util.List;
+import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;
 
 /**
  * 字典类型 Mapper
@@ -26,7 +25,7 @@ public interface ToolTestDemoMapper extends BaseMapperX<ToolTestDemoDO> {
                 .eqIfPresent("category", reqVO.getCategory())
                 .eqIfPresent("remark", reqVO.getRemark())
                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-        );
+                .orderByDesc("id"));
     }
 
     default List<ToolTestDemoDO> selectList(ToolTestDemoExportReqVO reqVO) {
@@ -37,7 +36,7 @@ public interface ToolTestDemoMapper extends BaseMapperX<ToolTestDemoDO> {
                 .eqIfPresent("category", reqVO.getCategory())
                 .eqIfPresent("remark", reqVO.getRemark())
                 .betweenIfPresent("create_time", reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
-        );
+                .orderByDesc("id"));
     }
 
 }

+ 12 - 0
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/enums/ToolDictTypeConstants.java

@@ -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";
+
+}

+ 0 - 2
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/codegen/impl/ToolCodegenEngine.java

@@ -125,8 +125,6 @@ public class ToolCodegenEngine {
         // VO 类,独有字段
         globalBindingMap.put("PageParamClassName", PageParam.class.getName());
         globalBindingMap.put("DictFormatClassName", DictFormat.class.getName());
-        // TODO 芋艿:代码生成器,解决下枚举类
-//        globalBindingMap.put("SysDictTypeEnumClassName", SysDictTypeEnum.class.getName());
         // DO 类,独有字段
         globalBindingMap.put("baseDOFields", ToolCodegenBuilder.BASE_DO_FIELDS);
         globalBindingMap.put("BaseDOClassName", BaseDO.class.getName());

+ 5 - 10
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/test/ToolTestDemoService.java

@@ -1,15 +1,10 @@
 package cn.iocoder.yudao.adminserver.modules.tool.service.test;
 
-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 java.util.*;
+import javax.validation.*;
+import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;
 import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO;
-
-import javax.validation.Valid;
-import java.util.Collection;
-import java.util.List;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 
 /**
  * 字典类型 Service 接口
@@ -68,7 +63,7 @@ public interface ToolTestDemoService {
      * 获得字典类型列表, 用于 Excel 导出
      *
      * @param exportReqVO 查询条件
-     * @return 字典类型分页
+     * @return 字典类型列表
      */
     List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO);
 

+ 14 - 17
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/service/test/impl/ToolTestDemoServiceImpl.java

@@ -1,23 +1,20 @@
 package cn.iocoder.yudao.adminserver.modules.tool.service.test.impl;
 
-import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+
+import java.util.*;
+import cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo.*;
+import cn.iocoder.yudao.adminserver.modules.tool.dal.dataobject.test.ToolTestDemoDO;
 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.validation.annotation.Validated;
 
-import javax.annotation.Resource;
-import java.util.Collection;
-import java.util.List;
-
-import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConstants.TEST_DEMO_NOT_EXISTS;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.adminserver.modules.tool.enums.ToolErrorCodeConstants.*;
 
 /**
  * 字典类型 Service 实现类
@@ -53,13 +50,13 @@ public class ToolTestDemoServiceImpl implements ToolTestDemoService {
     public void deleteTestDemo(Long id) {
         // 校验存在
         this.validateTestDemoExists(id);
-        // 更新
+        // 删除
         testDemoMapper.deleteById(id);
     }
 
     private void validateTestDemoExists(Long id) {
         if (testDemoMapper.selectById(id) == null) {
-            throw ServiceExceptionUtil.exception(TEST_DEMO_NOT_EXISTS);
+            throw exception(TEST_DEMO_NOT_EXISTS);
         }
     }
 
@@ -75,12 +72,12 @@ public class ToolTestDemoServiceImpl implements ToolTestDemoService {
 
     @Override
     public PageResult<ToolTestDemoDO> getTestDemoPage(ToolTestDemoPageReqVO pageReqVO) {
-		return testDemoMapper.selectPage(pageReqVO);
+        return testDemoMapper.selectPage(pageReqVO);
     }
 
     @Override
     public List<ToolTestDemoDO> getTestDemoList(ToolTestDemoExportReqVO exportReqVO) {
-		return testDemoMapper.selectList(exportReqVO);
+        return testDemoMapper.selectList(exportReqVO);
     }
 
 }

+ 1 - 2
yudao-admin-server/src/main/resources/codegen/java/controller/vo/excelVO.vm

@@ -10,7 +10,6 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import ${DictFormatClassName};
 import ${DictConvertClassName};
 
-import static ${SysDictTypeEnumClassName}.*;
 #break
 #end
 #end
@@ -27,7 +26,7 @@ public class ${table.className}ExcelVO {
     #if (${column.listOperationResult})##返回字段
     #if ("$!column.dictType" != "")##处理枚举值
     @ExcelProperty(value = "${column.columnComment}", converter = DictConvert.class)
-    @DictFormat(${column.dictType.toUpperCase()})
+    @DictFormat("${column.dictType}") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中
     #else
     @ExcelProperty("${column.columnComment}")
     #end

+ 1 - 4
yudao-admin-server/src/main/resources/codegen/java/service/serviceImpl.vm

@@ -1,6 +1,5 @@
 package ${basePackage}.modules.${table.moduleName}.service.${table.businessName}.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 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}.service.${table.businessName}.${table.className}Service;
 
-import ${ServiceExceptionUtilClassName};
-
-import static cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil.exception;
+import static ${ServiceExceptionUtilClassName}.exception;
 import static ${basePackage}.modules.${table.moduleName}.enums.${simpleModuleName_upperFirst}ErrorCodeConstants.*;
 
 /**