diff --git a/pom.xml b/pom.xml index c4540b560..c2a18deb0 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ ${revision} pom - yudao-dependencies + yudao-admin-server yudao-framework @@ -23,16 +23,4 @@ 1.0.0 - - - - cn.iocoder.boot - yudao-dependencies - ${revision} - pom - import - - - - diff --git a/yudao-admin-server/pom.xml b/yudao-admin-server/pom.xml index 5c9ba3075..4785c31df 100644 --- a/yudao-admin-server/pom.xml +++ b/yudao-admin-server/pom.xml @@ -7,12 +7,37 @@ cn.iocoder.boot yudao-admin-server ${revision} + jar yudao-admin-server 管理后台 Server,提供其 API 接口 https://github.com/YunaiV/ruoyi-vue-pro + + 1.0.0 + + + + cn.iocoder.boot + yudao-framework + ${revision} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/infra/dal/mysql/config/InfConfigDAOImpl.java b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/infra/dal/mysql/config/InfConfigDAOImpl.java index 58a4f1e98..48f44bd2f 100644 --- a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/infra/dal/mysql/config/InfConfigDAOImpl.java +++ b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/infra/dal/mysql/config/InfConfigDAOImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.dashboard.modules.infra.dal.mysql.config; import cn.iocoder.dashboard.framework.apollo.internals.ConfigFrameworkDAO; +import cn.iocoder.dashboard.framework.apollo.internals.dto.ConfigRespDTO; import cn.iocoder.dashboard.modules.infra.dal.dataobject.config.InfConfigDO; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; @@ -32,8 +33,8 @@ public class InfConfigDAOImpl implements ConfigFrameworkDAO { } @Override - public List selectList() { - return jdbcTemplate.query("SELECT `key`, `value`, update_time, deleted FROM inf_config", new BeanPropertyRowMapper<>(InfConfigDO.class)); + public List selectList() { + return jdbcTemplate.query("SELECT `key`, `value`, update_time, deleted FROM inf_config", new BeanPropertyRowMapper<>(ConfigRespDTO.class)); } } diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogCreateReqVO.java b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogCreateReqVO.java deleted file mode 100644 index 5cb849093..000000000 --- a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/controller/logger/vo/operatelog/SysOperateLogCreateReqVO.java +++ /dev/null @@ -1,13 +0,0 @@ -package cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog; - -import io.swagger.annotations.ApiModel; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; - -@ApiModel(value = "操作日志创建 Request VO", description = "暂时提供给前端,仅仅后端切面记录操作日志时,进行使用") -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class SysOperateLogCreateReqVO extends SysOperateLogBaseVO { -} diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictDataConvert.java b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictDataConvert.java index af8fda25e..90551d641 100644 --- a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictDataConvert.java +++ b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictDataConvert.java @@ -1,11 +1,14 @@ package cn.iocoder.dashboard.modules.system.convert.dict; import cn.iocoder.dashboard.common.pojo.PageResult; +import cn.iocoder.dashboard.framework.dict.core.dto.DictDataRespDTO; import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.*; import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO; +import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictTypeDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; +import java.util.Collection; import java.util.List; @Mapper @@ -25,4 +28,8 @@ public interface SysDictDataConvert { List convertList02(List bean); + DictDataRespDTO convert02(SysDictDataDO bean); + + List convertList03(Collection list); + } diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictTypeConvert.java b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictTypeConvert.java index d0ae1a3d1..6465e6709 100644 --- a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictTypeConvert.java +++ b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/dict/SysDictTypeConvert.java @@ -1,6 +1,7 @@ package cn.iocoder.dashboard.modules.system.convert.dict; import cn.iocoder.dashboard.common.pojo.PageResult; +import cn.iocoder.dashboard.framework.dict.core.dto.DictDataRespDTO; import cn.iocoder.dashboard.modules.system.controller.dict.vo.type.*; import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictTypeDO; import org.mapstruct.Mapper; diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/logger/SysOperateLogConvert.java b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/logger/SysOperateLogConvert.java index 92a83adf3..7eca70d49 100644 --- a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/logger/SysOperateLogConvert.java +++ b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/convert/logger/SysOperateLogConvert.java @@ -1,7 +1,7 @@ package cn.iocoder.dashboard.modules.system.convert.logger; import cn.iocoder.dashboard.common.pojo.PageResult; -import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; +import cn.iocoder.dashboard.framework.logger.operatelog.core.dto.OperateLogCreateReqDTO; import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO; import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO; import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO; @@ -21,7 +21,7 @@ public interface SysOperateLogConvert { SysOperateLogConvert INSTANCE = Mappers.getMapper(SysOperateLogConvert.class); - SysOperateLogDO convert(SysOperateLogCreateReqVO bean); + SysOperateLogDO convert(OperateLogCreateReqDTO bean); PageResult convertPage(PageResult page); diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java index 7f24cbff4..1a2b19cc0 100644 --- a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java +++ b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/dict/impl/SysDictDataServiceImpl.java @@ -3,6 +3,7 @@ package cn.iocoder.dashboard.modules.system.service.dict.impl; import cn.hutool.core.collection.CollUtil; import cn.iocoder.dashboard.common.enums.CommonStatusEnum; import cn.iocoder.dashboard.common.pojo.PageResult; +import cn.iocoder.dashboard.framework.dict.core.dto.DictDataRespDTO; import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO; import cn.iocoder.dashboard.modules.system.controller.dict.vo.data.SysDictDataExportReqVO; @@ -23,7 +24,6 @@ import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.List; @@ -239,18 +239,18 @@ public class SysDictDataServiceImpl implements SysDictDataService { } @Override - public SysDictDataDO getDictDataFromCache(String type, String value) { - return valueDictDataCache.get(type, value); + public DictDataRespDTO getDictDataFromCache(String type, String value) { + return SysDictDataConvert.INSTANCE.convert02(valueDictDataCache.get(type, value)); } @Override - public SysDictDataDO parseDictDataFromCache(String type, String label) { - return labelDictDataCache.get(type, label); + public DictDataRespDTO parseDictDataFromCache(String type, String label) { + return SysDictDataConvert.INSTANCE.convert02(labelDictDataCache.get(type, label)); } @Override - public List listDictDatasFromCache(String type) { - return new ArrayList<>(labelDictDataCache.row(type).values()); + public List listDictDatasFromCache(String type) { + return SysDictDataConvert.INSTANCE.convertList03(labelDictDataCache.row(type).values())); } } diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/logger/impl/SysOperateLogServiceImpl.java b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/logger/impl/SysOperateLogServiceImpl.java index 5251dfe05..f92d8b1dd 100644 --- a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/logger/impl/SysOperateLogServiceImpl.java +++ b/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/service/logger/impl/SysOperateLogServiceImpl.java @@ -3,7 +3,7 @@ package cn.iocoder.dashboard.modules.system.service.logger.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.dashboard.common.pojo.PageResult; -import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; +import cn.iocoder.dashboard.framework.logger.operatelog.core.dto.OperateLogCreateReqDTO; import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; import cn.iocoder.dashboard.modules.system.convert.logger.SysOperateLogConvert; @@ -40,7 +40,7 @@ public class SysOperateLogServiceImpl implements SysOperateLogService { @Override @Async - public Future createOperateLogAsync(SysOperateLogCreateReqVO reqVO) { + public Future createOperateLogAsync(OperateLogCreateReqDTO reqVO) { boolean success = false; try { SysOperateLogDO logDO = SysOperateLogConvert.INSTANCE.convert(reqVO); diff --git a/yudao-admin-server/src/test/java/cn/iocoder/dashboard/modules/system/service/logger/SysOperateLogServiceImplTest.java b/yudao-admin-server/src/test/java/cn/iocoder/dashboard/modules/system/service/logger/SysOperateLogServiceImplTest.java index 67f99e35f..b1529b609 100644 --- a/yudao-admin-server/src/test/java/cn/iocoder/dashboard/modules/system/service/logger/SysOperateLogServiceImplTest.java +++ b/yudao-admin-server/src/test/java/cn/iocoder/dashboard/modules/system/service/logger/SysOperateLogServiceImplTest.java @@ -7,7 +7,7 @@ import cn.iocoder.dashboard.common.exception.enums.GlobalErrorCodeConstants; import cn.iocoder.dashboard.common.pojo.PageResult; import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum; import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; -import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; +import cn.iocoder.dashboard.framework.logger.operatelog.core.dto.OperateLogCreateReqDTO; import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; import cn.iocoder.dashboard.modules.system.dal.dataobject.logger.SysOperateLogDO; @@ -48,7 +48,7 @@ public class SysOperateLogServiceImplTest extends BaseDbUnitTest { @Test public void testCreateOperateLogAsync() throws InterruptedException, ExecutionException { String traceId = TracerUtils.getTraceId(); - SysOperateLogCreateReqVO reqVO = RandomUtils.randomPojo(SysOperateLogCreateReqVO.class, o -> { + OperateLogCreateReqDTO reqVO = RandomUtils.randomPojo(OperateLogCreateReqDTO.class, o -> { o.setTraceId(traceId); o.setUserId(randomLongId()); o.setExts(MapUtil.builder("orderId", randomLongId()).build()); diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml index c7c5c3dd4..829d67422 100644 --- a/yudao-dependencies/pom.xml +++ b/yudao-dependencies/pom.xml @@ -13,359 +13,4 @@ 基础 bom 文件,管理整个项目的依赖版本 https://github.com/YunaiV/ruoyi-vue-pro - - 1.0.0 - UTF-8 - UTF-8 - @ - 1.8 - ${java.version} - ${java.version} - 3.8.0 - - - 2.4.4 - - 3.0.2 - 1.5.22 - - 5.1.46 - 1.2.4 - 3.4.2 - 3.3.2 - 3.15.1 - - 1.7.0 - - 2.2.0 - 1.7.0 - - 8.5.0 - 6.1 - 2.3.1 - - 1.16.14 - 1.4.1.Final - 5.6.1 - 2.2.7 - 2.2 - 1.0.5 - 7.2.6.RELEASE - 0.1.16 - - 4.5.18 - 2.1.0 - 1.2.7 - - - - - - - org.springframework.boot - spring-boot-dependencies - ${spring.boot.version} - pom - import - - - - - cn.iocoder.boot - yudao-dependencies - ${revision} - - - - - - org.springframework.boot - spring-boot-configuration-processor - true - - - - org.springframework.boot - spring-boot-starter-aop - - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-security - - - - org.springframework.boot - spring-boot-starter-validation - - - - com.github.xiaoymin - knife4j-spring-boot-starter - ${knife4j.version} - - - mapstruct - org.mapstruct - - - guava - com.google.guava - - - swagger-annotations - io.swagger - - - - - io.swagger - swagger-annotations - ${swagger-annotations.version} - - - - - mysql - mysql-connector-java - ${mysql-connector-java.version} - - - com.alibaba - druid-spring-boot-starter - ${druid.version} - - - com.baomidou - mybatis-plus-boot-starter - ${mybatis-plus.version} - - - com.baomidou - dynamic-datasource-spring-boot-starter - ${dynamic-datasource.version} - - - - org.redisson - redisson-spring-boot-starter - ${redisson.version} - - - - - com.ctrip.framework.apollo - apollo-client - ${apollo.version} - - - - - org.springframework.boot - spring-boot-starter-quartz - - - - - com.baomidou - lock4j-redisson-spring-boot-starter - ${lock4j.version} - - - redisson-spring-boot-starter - org.redisson - - - - - - io.github.resilience4j - resilience4j-spring-boot2 - ${resilience4j.version} - - - - - org.apache.skywalking - apm-toolkit-trace - ${skywalking.version} - - - org.apache.skywalking - apm-toolkit-logback-1.x - ${skywalking.version} - - - org.apache.skywalking - apm-toolkit-opentracing - ${skywalking.version} - - - - de.codecentric - spring-boot-admin-starter-server - ${spring-boot-admin.version} - - - de.codecentric - spring-boot-admin-starter-client - ${spring-boot-admin.version} - - - - - org.springframework.boot - spring-boot-starter-test - test - - - asm - org.ow2.asm - - - - - - com.h2database - h2 - test - - - - com.github.fppt - jedis-mock - ${jedis-mock.version} - test - - - - uk.co.jemos.podam - podam - ${podam.version} - test - - - - - org.projectlombok - lombok - ${lombok.version} - - - - org.mapstruct - mapstruct - ${mapstruct.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - true - - - org.mapstruct - mapstruct-jdk8 - ${mapstruct.version} - - - - cn.hutool - hutool-all - ${hutool.version} - - - - com.alibaba - easyexcel - ${easyexcel.verion} - - - - org.apache.velocity - velocity-engine-core - ${velocity.version} - - - - cn.smallbun.screw - screw-core - ${screw.version} - - - - - - - com.yunpian.sdk - yunpian-java-sdk - ${yunpian-java-sdk.version} - - - - com.aliyun - aliyun-java-sdk-core - ${aliyun-java-sdk-core.version} - - - com.aliyun - aliyun-java-sdk-dysmsapi - ${aliyun-java-sdk-dysmsapi.version} - - - - - - - - ${project.artifactId} - - - - org.springframework.boot - spring-boot-maven-plugin - ${spring.boot.version} - - true - - - - - repackage - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - ${java.version} - ${java.version} - - - org.mapstruct - mapstruct-processor - ${mapstruct.version} - - - org.projectlombok - lombok - ${lombok.version} - - - - - - - diff --git a/yudao-framework/pom.xml b/yudao-framework/pom.xml index b26ecfb98..6278c533e 100644 --- a/yudao-framework/pom.xml +++ b/yudao-framework/pom.xml @@ -11,12 +11,70 @@ yudao-framework + + UTF-8 + UTF-8 + @ + 1.8 + ${java.version} + ${java.version} + 3.8.0 + + 2.4.4 + + 3.0.2 + 1.5.22 + + 5.1.46 + 1.2.4 + 3.4.2 + 3.3.2 + 3.15.1 + + 1.7.0 + + 2.2.0 + 1.7.0 + + 8.5.0 + 6.1 + 2.3.1 + + 1.16.14 + 1.4.1.Final + 5.6.1 + 2.2.7 + 2.2 + 1.0.5 + 7.2.6.RELEASE + 0.1.16 + + 4.5.18 + 2.1.0 + 1.2.7 + + + + + + + + org.springframework.boot + spring-boot-dependencies + ${spring.boot.version} + pom + import + + + + org.springframework.boot spring-boot-configuration-processor + true @@ -43,39 +101,61 @@ com.github.xiaoymin knife4j-spring-boot-starter + ${knife4j.version} + + + mapstruct + org.mapstruct + + + guava + com.google.guava + + + swagger-annotations + io.swagger + + io.swagger swagger-annotations + ${swagger-annotations.version} mysql mysql-connector-java + ${mysql-connector-java.version} com.alibaba druid-spring-boot-starter + ${druid.version} com.baomidou mybatis-plus-boot-starter + ${mybatis-plus.version} com.baomidou dynamic-datasource-spring-boot-starter + ${dynamic-datasource.version} org.redisson redisson-spring-boot-starter + ${redisson.version} com.ctrip.framework.apollo apollo-client + ${apollo.version} @@ -88,41 +168,55 @@ com.baomidou lock4j-redisson-spring-boot-starter + ${lock4j.version} + + + redisson-spring-boot-starter + org.redisson + + io.github.resilience4j resilience4j-spring-boot2 + ${resilience4j.version} org.apache.skywalking apm-toolkit-trace + ${skywalking.version} org.apache.skywalking apm-toolkit-logback-1.x + ${skywalking.version} org.apache.skywalking apm-toolkit-opentracing + ${skywalking.version} de.codecentric spring-boot-admin-starter-server + ${spring-boot-admin.version} de.codecentric spring-boot-admin-starter-client + ${spring-boot-admin.version} org.springframework.boot spring-boot-starter-test - test + + true asm @@ -140,53 +234,64 @@ com.github.fppt jedis-mock + ${jedis-mock.version} test uk.co.jemos.podam podam - test + ${podam.version} + + true org.projectlombok lombok + ${lombok.version} org.mapstruct mapstruct + ${mapstruct.version} org.mapstruct mapstruct-processor + ${mapstruct.version} true org.mapstruct mapstruct-jdk8 + ${mapstruct.version} cn.hutool hutool-all + ${hutool.version} com.alibaba easyexcel + ${easyexcel.verion} org.apache.velocity velocity-engine-core + ${velocity.version} cn.smallbun.screw screw-core + ${screw.version} @@ -195,18 +300,67 @@ com.yunpian.sdk yunpian-java-sdk + ${yunpian-java-sdk.version} com.aliyun aliyun-java-sdk-core + ${aliyun-java-sdk-core.version} com.aliyun aliyun-java-sdk-dysmsapi + ${aliyun-java-sdk-dysmsapi.version} + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + true + + + + + repackage + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + ${java.version} + ${java.version} + + + org.mapstruct + mapstruct-processor + ${mapstruct.version} + + + org.projectlombok + lombok + ${lombok.version} + + + + + + + diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/core/ConfigConsts.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/core/ConfigConsts.java index 2d83836f9..8e0fe57bb 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/core/ConfigConsts.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/core/ConfigConsts.java @@ -9,6 +9,10 @@ package cn.iocoder.dashboard.framework.apollo.core; */ public class ConfigConsts { + /** + * {@link cn.iocoder.dashboard.framework.apollo.internals.ConfigFrameworkDAO} 的实现类 + */ + public static final String APOLLO_JDBC_DAO = "apollo.jdbc.dao"; public static final String APOLLO_JDBC_URL = "apollo.jdbc.url"; public static final String APOLLO_JDBC_USERNAME = "apollo.jdbc.username"; public static final String APOLLO_JDBC_PASSWORD = "apollo.jdbc.password"; diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/ConfigFrameworkDAO.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/ConfigFrameworkDAO.java index 3e0d4c79f..8f46b2d30 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/ConfigFrameworkDAO.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/ConfigFrameworkDAO.java @@ -1,12 +1,16 @@ package cn.iocoder.dashboard.framework.apollo.internals; -import cn.iocoder.dashboard.modules.infra.dal.dataobject.config.InfConfigDO; +import cn.iocoder.dashboard.framework.apollo.internals.dto.ConfigRespDTO; import java.util.Date; import java.util.List; /** * 配置 Framework DAO 接口 + * + * 注意,实现类必须提供 (String jdbcUrl, String username, String password) 构造方法 + * + * @author 芋道源码 */ public interface ConfigFrameworkDAO { @@ -23,6 +27,6 @@ public interface ConfigFrameworkDAO { * * @return 配置列表 */ - List selectList(); + List selectList(); } diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/DBConfigRepository.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/DBConfigRepository.java index 78d8fe923..3117769e6 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/DBConfigRepository.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/DBConfigRepository.java @@ -2,9 +2,8 @@ package cn.iocoder.dashboard.framework.apollo.internals; import cn.hutool.core.collection.CollUtil; import cn.iocoder.dashboard.framework.apollo.core.ConfigConsts; +import cn.iocoder.dashboard.framework.apollo.internals.dto.ConfigRespDTO; import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO; -import cn.iocoder.dashboard.modules.infra.dal.mysql.config.InfConfigDAOImpl; -import cn.iocoder.dashboard.modules.infra.dal.dataobject.config.InfConfigDO; import com.ctrip.framework.apollo.Apollo; import com.ctrip.framework.apollo.build.ApolloInjector; import com.ctrip.framework.apollo.core.utils.ApolloThreadFactory; @@ -59,6 +58,7 @@ public class DBConfigRepository extends AbstractConfigRepository { this.propertiesFactory = ApolloInjector.getInstance(PropertiesFactory.class); this.m_configUtil = ApolloInjector.getInstance(ConfigUtil.class); // 初始化 DB + cn.iocoder.dashboard.modules.infra.dal.mysql.config this.configFrameworkDAO = new InfConfigDAOImpl(System.getProperty(ConfigConsts.APOLLO_JDBC_URL), System.getProperty(ConfigConsts.APOLLO_JDBC_USERNAME), System.getProperty(ConfigConsts.APOLLO_JDBC_PASSWORD)); @@ -84,7 +84,7 @@ public class DBConfigRepository extends AbstractConfigRepository { @Override protected void sync() { // 第一步,尝试获取配置 - List configs = this.loadConfigIfUpdate(this.maxUpdateTime); + List configs = this.loadConfigIfUpdate(this.maxUpdateTime); if (CollUtil.isEmpty(configs)) { // 如果没有更新,则返回 return; } @@ -94,7 +94,7 @@ public class DBConfigRepository extends AbstractConfigRepository { this.m_configCache = newProperties; // 第三步,获取最大的配置时间 assert configs.size() > 0; // 断言,避免告警 - this.maxUpdateTime = configs.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime(); + this.maxUpdateTime = configs.stream().max(Comparator.comparing(ConfigRespDTO::getUpdateTime)).get().getUpdateTime(); // 第四部,触发配置刷新!重要!!!! super.fireRepositoryChange(m_namespace, newProperties); log.info("[sync][缓存配置,数量为:{}]", configs.size()); @@ -120,9 +120,9 @@ public class DBConfigRepository extends AbstractConfigRepository { return ConfigSourceType.REMOTE; } - private Properties buildProperties(List configs) { + private Properties buildProperties(List configs) { Properties properties = propertiesFactory.getPropertiesInstance(); - configs.stream().filter(BaseDO::getDeleted) // 过滤掉被删除的配置 + configs.stream().filter(ConfigRespDTO::getDeleted) // 过滤掉被删除的配置 .forEach(config -> properties.put(config.getKey(), config.getValue())); return properties; } @@ -153,7 +153,7 @@ public class DBConfigRepository extends AbstractConfigRepository { * @param maxUpdateTime 当前配置的最大更新时间 * @return 配置列表 */ - private List loadConfigIfUpdate(Date maxUpdateTime) { + private List loadConfigIfUpdate(Date maxUpdateTime) { // 第一步,判断是否要更新。 if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 log.info("[loadConfigIfUpdate][首次加载全量配置]"); diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/dto/ConfigRespDTO.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/dto/ConfigRespDTO.java new file mode 100644 index 000000000..3945dfbeb --- /dev/null +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/apollo/internals/dto/ConfigRespDTO.java @@ -0,0 +1,33 @@ +package cn.iocoder.dashboard.framework.apollo.internals.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * 配置 Response DTO + * + * @author 芋道源码 + */ +@Data +public class ConfigRespDTO { + + /** + * 参数键名 + */ + private String key; + /** + * 参数键值 + */ + private String value; + + /** + * 是否删除 + */ + private Boolean deleted; + /** + * 更新时间 + */ + private Date updateTime; + +} diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/dto/DictDataRespDTO.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/dto/DictDataRespDTO.java new file mode 100644 index 000000000..bfbcee7ba --- /dev/null +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/dto/DictDataRespDTO.java @@ -0,0 +1,33 @@ +package cn.iocoder.dashboard.framework.dict.core.dto; + +import cn.iocoder.dashboard.common.enums.CommonStatusEnum; +import lombok.Data; + +/** + * 字典数据 Response DTO + * + * @author 芋道源码 + */ +@Data +public class DictDataRespDTO { + + /** + * 字典标签 + */ + private String label; + /** + * 字典值 + */ + private String value; + /** + * 字典类型 + */ + private String dictType; + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + +} diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/service/DictDataFrameworkService.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/service/DictDataFrameworkService.java index c6e7d41eb..e31241141 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/service/DictDataFrameworkService.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/service/DictDataFrameworkService.java @@ -1,6 +1,6 @@ package cn.iocoder.dashboard.framework.dict.core.service; -import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO; +import cn.iocoder.dashboard.framework.dict.core.dto.DictDataRespDTO; import java.util.List; @@ -13,7 +13,7 @@ public interface DictDataFrameworkService { * @param value 字典数据值 * @return 字典数据 */ - SysDictDataDO getDictDataFromCache(String type, String value); + DictDataRespDTO getDictDataFromCache(String type, String value); /** * 解析获得指定的字典数据,从缓存中 @@ -22,7 +22,7 @@ public interface DictDataFrameworkService { * @param label 字典数据标签 * @return 字典数据 */ - SysDictDataDO parseDictDataFromCache(String type, String label); + DictDataRespDTO parseDictDataFromCache(String type, String label); /** * 获得指定类型的字典数据,从缓存中 @@ -30,6 +30,6 @@ public interface DictDataFrameworkService { * @param type 字典类型 * @return 字典数据列表 */ - List listDictDatasFromCache(String type); + List listDictDatasFromCache(String type); } diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/util/DictUtils.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/util/DictUtils.java index 5b03200c5..b80f74231 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/util/DictUtils.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/dict/core/util/DictUtils.java @@ -1,7 +1,7 @@ package cn.iocoder.dashboard.framework.dict.core.util; +import cn.iocoder.dashboard.framework.dict.core.dto.DictDataRespDTO; import cn.iocoder.dashboard.framework.dict.core.service.DictDataFrameworkService; -import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO; import lombok.extern.slf4j.Slf4j; /** @@ -17,11 +17,11 @@ public class DictUtils { log.info("[init][初始化 DictUtils 成功]"); } - public static SysDictDataDO getDictDataFromCache(String type, String value) { + public static DictDataRespDTO getDictDataFromCache(String type, String value) { return service.getDictDataFromCache(type, value); } - public static SysDictDataDO parseDictDataFromCache(String type, String label) { + public static DictDataRespDTO parseDictDataFromCache(String type, String label) { return service.getDictDataFromCache(type, label); } diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/excel/core/convert/DictConvert.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/excel/core/convert/DictConvert.java index 2bda65d2b..90e13c3c0 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/excel/core/convert/DictConvert.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/excel/core/convert/DictConvert.java @@ -2,9 +2,9 @@ package cn.iocoder.dashboard.framework.excel.core.convert; import cn.hutool.core.convert.Convert; +import cn.iocoder.dashboard.framework.dict.core.dto.DictDataRespDTO; import cn.iocoder.dashboard.framework.dict.core.util.DictUtils; import cn.iocoder.dashboard.framework.excel.core.annotations.DictFormat; -import cn.iocoder.dashboard.modules.system.dal.dataobject.dict.SysDictDataDO; import cn.iocoder.dashboard.modules.system.enums.dict.SysDictTypeEnum; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; @@ -14,7 +14,7 @@ import com.alibaba.excel.metadata.property.ExcelContentProperty; import lombok.extern.slf4j.Slf4j; /** - * Excel {@link SysDictDataDO} 数据字典转换器 + * Excel {@link DictDataRespDTO} 数据字典转换器 * * @author 芋道源码 */ @@ -37,7 +37,7 @@ public class DictConvert implements Converter { // 使用字典解析 SysDictTypeEnum type = getType(contentProperty); String label = cellData.getStringValue(); - SysDictDataDO dictData = DictUtils.parseDictDataFromCache(type.getValue(), label); + DictDataRespDTO dictData = DictUtils.parseDictDataFromCache(type.getValue(), label); if (dictData == null) { log.error("[convertToJavaData][type({}) 解析不掉 label({})]", type, label); return null; @@ -58,7 +58,7 @@ public class DictConvert implements Converter { // 使用字典格式化 SysDictTypeEnum type = getType(contentProperty); String value = String.valueOf(object); - SysDictDataDO dictData = DictUtils.getDictDataFromCache(type.getValue(), value); + DictDataRespDTO dictData = DictUtils.getDictDataFromCache(type.getValue(), value); if (dictData == null) { log.error("[convertToExcelData][type({}) 转换不了 label({})]", type, value); return new CellData<>(""); diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/file/config/FileProperties.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/file/config/FileProperties.java index 4018f4437..318a97f25 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/file/config/FileProperties.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/file/config/FileProperties.java @@ -1,6 +1,5 @@ package cn.iocoder.dashboard.framework.file.config; -import cn.iocoder.dashboard.modules.infra.controller.file.InfFileController; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.validation.annotation.Validated; @@ -13,7 +12,7 @@ import javax.validation.constraints.NotNull; public class FileProperties { /** - * 对应 {@link InfFileController#} + * 对应 InfFileController 的 getFile 方法 */ @NotNull(message = "基础文件路径不能为空") private String basePath; diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/aop/OperateLogAspect.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/aop/OperateLogAspect.java index d7d3e5975..91412eb83 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/aop/OperateLogAspect.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/aop/OperateLogAspect.java @@ -6,11 +6,11 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.servlet.ServletUtil; import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.framework.logger.operatelog.core.annotations.OperateLog; +import cn.iocoder.dashboard.framework.logger.operatelog.core.dto.OperateLogCreateReqDTO; import cn.iocoder.dashboard.framework.logger.operatelog.core.enums.OperateTypeEnum; import cn.iocoder.dashboard.framework.logger.operatelog.core.service.OperateLogFrameworkService; import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.dashboard.framework.tracer.core.util.TracerUtils; -import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; import cn.iocoder.dashboard.util.json.JsonUtils; import cn.iocoder.dashboard.util.servlet.ServletUtils; import com.google.common.collect.Maps; @@ -55,13 +55,13 @@ public class OperateLogAspect { /** * 用于记录操作内容的上下文 * - * @see SysOperateLogCreateReqVO#getContent() + * @see OperateLogCreateReqDTO#getContent() */ private static final ThreadLocal CONTENT = new ThreadLocal<>(); /** * 用于记录拓展字段的上下文 * - * @see SysOperateLogCreateReqVO#getExts() + * @see OperateLogCreateReqDTO#getExts() */ private static final ThreadLocal> EXTS = new ThreadLocal<>(); @@ -130,106 +130,106 @@ public class OperateLogAspect { private void log0(ProceedingJoinPoint joinPoint, OperateLog operateLog, ApiOperation apiOperation, Date startTime, Object result, Throwable exception) { - SysOperateLogCreateReqVO operateLogVO = new SysOperateLogCreateReqVO(); + OperateLogCreateReqDTO operateLogDTO = new OperateLogCreateReqDTO(); // 补全通用字段 - operateLogVO.setTraceId(TracerUtils.getTraceId()); - operateLogVO.setStartTime(startTime); + operateLogDTO.setTraceId(TracerUtils.getTraceId()); + operateLogDTO.setStartTime(startTime); // 补充用户信息 - fillUserFields(operateLogVO); + fillUserFields(operateLogDTO); // 补全模块信息 - fillModuleFields(operateLogVO, joinPoint, operateLog, apiOperation); + fillModuleFields(operateLogDTO, joinPoint, operateLog, apiOperation); // 补全请求信息 - fillRequestFields(operateLogVO); + fillRequestFields(operateLogDTO); // 补全方法信息 - fillMethodFields(operateLogVO, joinPoint, operateLog, startTime, result, exception); + fillMethodFields(operateLogDTO, joinPoint, operateLog, startTime, result, exception); // 异步记录日志 - operateLogFrameworkService.createOperateLogAsync(operateLogVO); + operateLogFrameworkService.createOperateLogAsync(operateLogDTO); } - private static void fillUserFields(SysOperateLogCreateReqVO operateLogVO) { - operateLogVO.setUserId(SecurityFrameworkUtils.getLoginUserId()); + private static void fillUserFields(OperateLogCreateReqDTO operateLogDTO) { + operateLogDTO.setUserId(SecurityFrameworkUtils.getLoginUserId()); } - private static void fillModuleFields(SysOperateLogCreateReqVO operateLogVO, + private static void fillModuleFields(OperateLogCreateReqDTO operateLogDTO, ProceedingJoinPoint joinPoint, OperateLog operateLog, ApiOperation apiOperation) { // module 属性 if (operateLog != null) { - operateLogVO.setModule(operateLog.module()); + operateLogDTO.setModule(operateLog.module()); } - if (StrUtil.isEmpty(operateLogVO.getModule())) { + if (StrUtil.isEmpty(operateLogDTO.getModule())) { Api api = getClassAnnotation(joinPoint, Api.class); if (api != null) { // 优先读取 @API 的 name 属性 if (StrUtil.isNotEmpty(api.value())) { - operateLogVO.setModule(api.value()); + operateLogDTO.setModule(api.value()); } // 没有的话,读取 @API 的 tags 属性 - if (StrUtil.isEmpty(operateLogVO.getModule()) && ArrayUtil.isNotEmpty(api.tags())) { - operateLogVO.setModule(api.tags()[0]); + if (StrUtil.isEmpty(operateLogDTO.getModule()) && ArrayUtil.isNotEmpty(api.tags())) { + operateLogDTO.setModule(api.tags()[0]); } } } // name 属性 if (operateLog != null) { - operateLogVO.setName(operateLog.name()); + operateLogDTO.setName(operateLog.name()); } - if (StrUtil.isEmpty(operateLogVO.getName()) && apiOperation != null) { - operateLogVO.setName(apiOperation.value()); + if (StrUtil.isEmpty(operateLogDTO.getName()) && apiOperation != null) { + operateLogDTO.setName(apiOperation.value()); } // type 属性 if (operateLog != null && ArrayUtil.isNotEmpty(operateLog.type())) { - operateLogVO.setType(operateLog.type()[0].getType()); + operateLogDTO.setType(operateLog.type()[0].getType()); } - if (operateLogVO.getType() == null) { + if (operateLogDTO.getType() == null) { RequestMethod requestMethod = obtainFirstMatchRequestMethod(obtainRequestMethod(joinPoint)); OperateTypeEnum operateLogType = convertOperateLogType(requestMethod); - operateLogVO.setType(operateLogType != null ? operateLogType.getType() : null); + operateLogDTO.setType(operateLogType != null ? operateLogType.getType() : null); } // content 和 exts 属性 - operateLogVO.setContent(CONTENT.get()); - operateLogVO.setExts(EXTS.get()); + operateLogDTO.setContent(CONTENT.get()); + operateLogDTO.setExts(EXTS.get()); } - private static void fillRequestFields(SysOperateLogCreateReqVO operateLogVO) { + private static void fillRequestFields(OperateLogCreateReqDTO operateLogDTO) { // 获得 Request 对象 HttpServletRequest request = ServletUtils.getRequest(); if (request == null) { return; } // 补全请求信息 - operateLogVO.setRequestMethod(request.getMethod()); - operateLogVO.setRequestUrl(request.getRequestURI()); - operateLogVO.setUserIp(ServletUtil.getClientIP(request)); - operateLogVO.setUserAgent(ServletUtils.getUserAgent(request)); + operateLogDTO.setRequestMethod(request.getMethod()); + operateLogDTO.setRequestUrl(request.getRequestURI()); + operateLogDTO.setUserIp(ServletUtil.getClientIP(request)); + operateLogDTO.setUserAgent(ServletUtils.getUserAgent(request)); } - private static void fillMethodFields(SysOperateLogCreateReqVO operateLogVO, + private static void fillMethodFields(OperateLogCreateReqDTO operateLogDTO, ProceedingJoinPoint joinPoint, OperateLog operateLog, Date startTime, Object result, Throwable exception) { MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); - operateLogVO.setJavaMethod(methodSignature.toString()); + operateLogDTO.setJavaMethod(methodSignature.toString()); if (operateLog == null || operateLog.logArgs()) { - operateLogVO.setJavaMethodArgs(obtainMethodArgs(joinPoint)); + operateLogDTO.setJavaMethodArgs(obtainMethodArgs(joinPoint)); } if (operateLog == null || operateLog.logResultData()) { - operateLogVO.setResultData(obtainResultData(result)); + operateLogDTO.setResultData(obtainResultData(result)); } - operateLogVO.setDuration((int) (System.currentTimeMillis() - startTime.getTime())); + operateLogDTO.setDuration((int) (System.currentTimeMillis() - startTime.getTime())); // (正常)处理 resultCode 和 resultMsg 字段 if (result != null) { if (result instanceof CommonResult) { CommonResult commonResult = (CommonResult) result; - operateLogVO.setResultCode(commonResult.getCode()); - operateLogVO.setResultMsg(commonResult.getMsg()); + operateLogDTO.setResultCode(commonResult.getCode()); + operateLogDTO.setResultMsg(commonResult.getMsg()); } else { - operateLogVO.setResultCode(SUCCESS.getCode()); + operateLogDTO.setResultCode(SUCCESS.getCode()); } } // (异常)处理 resultCode 和 resultMsg 字段 if (exception != null) { - operateLogVO.setResultCode(INTERNAL_SERVER_ERROR.getCode()); - operateLogVO.setResultMsg(ExceptionUtil.getRootCauseMessage(exception)); + operateLogDTO.setResultCode(INTERNAL_SERVER_ERROR.getCode()); + operateLogDTO.setResultMsg(ExceptionUtil.getRootCauseMessage(exception)); } } diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/dto/OperateLogCreateReqDTO.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/dto/OperateLogCreateReqDTO.java new file mode 100644 index 000000000..37eeb0c23 --- /dev/null +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/dto/OperateLogCreateReqDTO.java @@ -0,0 +1,84 @@ +package cn.iocoder.dashboard.framework.logger.operatelog.core.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.Date; +import java.util.Map; + +/** + * 操作日志创建 Request DTO + */ +@Data +public class OperateLogCreateReqDTO { + + @ApiModelProperty(value = "链路追踪编号", required = true, example = "89aca178-a370-411c-ae02-3f0d672be4ab") + @NotEmpty(message = "链路追踪编号不能为空") + private String traceId; + + @ApiModelProperty(value = "用户编号", required = true, example = "1024") + @NotNull(message = "用户编号不能为空") + private Long userId; + + @ApiModelProperty(value = "操作模块", required = true, example = "订单") + @NotEmpty(message = "操作模块不能为空") + private String module; + + @ApiModelProperty(value = "操作名", required = true, example = "创建订单") + @NotEmpty(message = "操作名") + private String name; + + @ApiModelProperty(value = "操作分类", required = true, example = "1", notes = "参见 SysOperateLogTypeEnum 枚举类") + @NotNull(message = "操作分类不能为空") + private Integer type; + + @ApiModelProperty(value = "操作明细", example = "修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。") + private String content; + + @ApiModelProperty(value = "拓展字段", example = "{'orderId': 1}") + private Map exts; + + @ApiModelProperty(value = "请求方法名", required = true, example = "GET") + @NotEmpty(message = "请求方法名不能为空") + private String requestMethod; + + @ApiModelProperty(value = "请求地址", required = true, example = "/xxx/yyy") + @NotEmpty(message = "请求地址不能为空") + private String requestUrl; + + @ApiModelProperty(value = "用户 IP", required = true, example = "127.0.0.1") + @NotEmpty(message = "用户 IP 不能为空") + private String userIp; + + @ApiModelProperty(value = "浏览器 UserAgent", required = true, example = "Mozilla/5.0") + @NotEmpty(message = "浏览器 UserAgent 不能为空") + private String userAgent; + + @ApiModelProperty(value = "Java 方法名", required = true, example = "cn.iocoder.dashboard.UserController.save(...)") + @NotEmpty(message = "Java 方法名不能为空") + private String javaMethod; + + @ApiModelProperty(value = "Java 方法的参数") + private String javaMethodArgs; + + @ApiModelProperty(value = "开始时间", required = true) + @NotNull(message = "开始时间不能为空") + private Date startTime; + + @ApiModelProperty(value = "执行时长,单位:毫秒", required = true) + @NotNull(message = "执行时长不能为空") + private Integer duration; + + @ApiModelProperty(value = "结果码", required = true) + @NotNull(message = "结果码不能为空") + private Integer resultCode; + + @ApiModelProperty(value = "结果提示") + private String resultMsg; + + @ApiModelProperty(value = "结果数据") + private String resultData; + +} diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/service/OperateLogFrameworkService.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/service/OperateLogFrameworkService.java index d16ecf804..02489e8f9 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/service/OperateLogFrameworkService.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/logger/operatelog/core/service/OperateLogFrameworkService.java @@ -1,6 +1,6 @@ package cn.iocoder.dashboard.framework.logger.operatelog.core.service; -import cn.iocoder.dashboard.modules.system.controller.logger.vo.operatelog.SysOperateLogCreateReqVO; +import cn.iocoder.dashboard.framework.logger.operatelog.core.dto.OperateLogCreateReqDTO; import java.util.concurrent.Future; @@ -12,6 +12,6 @@ public interface OperateLogFrameworkService { * @param reqVO 操作日志请求 * @return true: 记录成功,false: 记录失败 */ - Future createOperateLogAsync(SysOperateLogCreateReqVO reqVO); + Future createOperateLogAsync(OperateLogCreateReqDTO reqVO); } diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/type/JsonLongSetTypeHandler.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/type/JsonLongSetTypeHandler.java index 32524b51d..4532cfa62 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/type/JsonLongSetTypeHandler.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/mybatis/core/type/JsonLongSetTypeHandler.java @@ -1,6 +1,5 @@ package cn.iocoder.dashboard.framework.mybatis.core.type; -import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; import cn.iocoder.dashboard.util.json.JsonUtils; import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler; import com.fasterxml.jackson.core.type.TypeReference; @@ -11,7 +10,7 @@ import java.util.Set; * 参考 {@link com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler} 实现 * 在我们将字符串反序列化为 Set 并且泛型为 Long 时,如果每个元素的数值太小,会被处理成 Integer 类型,导致可能存在隐性的 BUG。 * - * 例如说哦,{@link SysUserDO#getPostIds()} 属性 + * 例如说哦,SysUserDO 的 postIds 属性 * * @author 芋道源码 */ diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/filter/JwtAuthenticationTokenFilter.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/filter/JwtAuthenticationTokenFilter.java index b4dcf6720..3914583de 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/filter/JwtAuthenticationTokenFilter.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/filter/JwtAuthenticationTokenFilter.java @@ -4,9 +4,9 @@ import cn.hutool.core.util.StrUtil; import cn.iocoder.dashboard.common.pojo.CommonResult; import cn.iocoder.dashboard.framework.security.config.SecurityProperties; import cn.iocoder.dashboard.framework.security.core.LoginUser; +import cn.iocoder.dashboard.framework.security.core.service.SecurityAuthFrameworkService; import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.dashboard.framework.web.core.handler.GlobalExceptionHandler; -import cn.iocoder.dashboard.modules.system.service.auth.SysAuthService; import cn.iocoder.dashboard.util.servlet.ServletUtils; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; @@ -30,7 +30,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter { @Resource private SecurityProperties securityProperties; @Resource - private SysAuthService authService; + private SecurityAuthFrameworkService authService; @Resource private GlobalExceptionHandler globalExceptionHandler; diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/service/SecurityPermissionFrameworkService.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/service/SecurityPermissionFrameworkService.java index aef27a149..22098714e 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/service/SecurityPermissionFrameworkService.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/security/core/service/SecurityPermissionFrameworkService.java @@ -1,7 +1,5 @@ package cn.iocoder.dashboard.framework.security.core.service; -import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; - /** * Security 框架 Permission Service 接口,定义 security 组件需要的功能 * @@ -28,7 +26,7 @@ public interface SecurityPermissionFrameworkService { /** * 判断是否有角色 * - * 注意,角色使用的是 {@link SysRoleDO#getCode()} 标识 + * 注意,角色使用的是 SysRoleDO 的 code 标识 * * @param role 角色 * @return 是否 diff --git a/yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/enums/dict/SysDictTypeEnum.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/modules/system/enums/dict/SysDictTypeEnum.java similarity index 100% rename from yudao-admin-server/src/main/java/cn/iocoder/dashboard/modules/system/enums/dict/SysDictTypeEnum.java rename to yudao-framework/src/main/java/cn/iocoder/dashboard/modules/system/enums/dict/SysDictTypeEnum.java diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/util/RandomUtils.java b/yudao-framework/src/main/java/cn/iocoder/dashboard/util/RandomUtils.java index 717f6d490..51cd61f89 100644 --- a/yudao-framework/src/main/java/cn/iocoder/dashboard/util/RandomUtils.java +++ b/yudao-framework/src/main/java/cn/iocoder/dashboard/util/RandomUtils.java @@ -3,7 +3,6 @@ package cn.iocoder.dashboard.util; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.RandomUtil; import cn.iocoder.dashboard.common.enums.CommonStatusEnum; -import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; import uk.co.jemos.podam.api.PodamFactory; import uk.co.jemos.podam.api.PodamFactoryImpl; @@ -71,11 +70,6 @@ public class RandomUtils { return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus(); } - @SafeVarargs - public static SysUserDO randomUserDO(Consumer... consumers) { - return randomPojo(SysUserDO.class, consumers); - } - @SafeVarargs public static T randomPojo(Class clazz, Consumer... consumers) { T pojo = PODAM_FACTORY.manufacturePojo(clazz); diff --git a/yudao-framework/src/test/java/cn/iocoder/dashboard/BaseMockitoUnitTest.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/BaseMockitoUnitTest.java new file mode 100644 index 000000000..4a595b24e --- /dev/null +++ b/yudao-framework/src/test/java/cn/iocoder/dashboard/BaseMockitoUnitTest.java @@ -0,0 +1,13 @@ +package cn.iocoder.dashboard; + +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +/** + * 纯 Mockito 的单元测试 + * + * @author 芋道源码 + */ +@ExtendWith(MockitoExtension.class) +public class BaseMockitoUnitTest { +} diff --git a/yudao-admin-server/src/test/java/cn/iocoder/dashboard/framework/package-info.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/package-info.java similarity index 100% rename from yudao-admin-server/src/test/java/cn/iocoder/dashboard/framework/package-info.java rename to yudao-framework/src/test/java/cn/iocoder/dashboard/framework/package-info.java diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java similarity index 100% rename from yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java rename to yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsClientTest.java diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java similarity index 100% rename from yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java rename to yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/aliyun/AliyunSmsCodeMappingTest.java diff --git a/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/package-info.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/package-info.java new file mode 100644 index 000000000..42e9b0618 --- /dev/null +++ b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.dashboard.framework.sms.core.client.impl; diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsClientTest.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsClientTest.java similarity index 100% rename from yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsClientTest.java rename to yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsClientTest.java diff --git a/yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsCodeMappingTest.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsCodeMappingTest.java similarity index 100% rename from yudao-framework/src/main/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsCodeMappingTest.java rename to yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/impl/yunpian/YunpianSmsCodeMappingTest.java diff --git a/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/package-info.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/package-info.java new file mode 100644 index 000000000..037ce8ca2 --- /dev/null +++ b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/client/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.dashboard.framework.sms.core.client; diff --git a/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/package-info.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/package-info.java new file mode 100644 index 000000000..ec8f3eaf0 --- /dev/null +++ b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/core/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.dashboard.framework.sms.core; diff --git a/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/package-info.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/package-info.java new file mode 100644 index 000000000..ba591dc05 --- /dev/null +++ b/yudao-framework/src/test/java/cn/iocoder/dashboard/framework/sms/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.dashboard.framework.sms; diff --git a/yudao-framework/src/test/java/cn/iocoder/dashboard/package-info.java b/yudao-framework/src/test/java/cn/iocoder/dashboard/package-info.java new file mode 100644 index 000000000..f49464f8e --- /dev/null +++ b/yudao-framework/src/test/java/cn/iocoder/dashboard/package-info.java @@ -0,0 +1 @@ +package cn.iocoder.dashboard;