Commit e917fce6b3e6e2a9ce5e1dcab7534ffabcfa2bf5

Authored by 芋道源码
Committed by Gitee
2 parents abf5fae9 6c6babb4

!1343 reactor:yudao-common 增加 biz 包,将 framework 依赖的 api 统一迁移,方便后续 yudao-framework 独立仓库

Merge pull request !1343 from 芋道源码/develop
Showing 84 changed files with 309 additions and 334 deletions
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApi.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/infra/logger/ApiAccessLogCommonApi.java
1 -package cn.iocoder.yudao.module.infra.api.logger;  
2 -  
3 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; 1 +package cn.iocoder.yudao.framework.common.biz.infra.logger;
4 2
  3 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
5 import jakarta.validation.Valid; 4 import jakarta.validation.Valid;
6 import org.springframework.scheduling.annotation.Async; 5 import org.springframework.scheduling.annotation.Async;
7 6
@@ -10,7 +9,7 @@ import org.springframework.scheduling.annotation.Async; @@ -10,7 +9,7 @@ import org.springframework.scheduling.annotation.Async;
10 * 9 *
11 * @author 芋道源码 10 * @author 芋道源码
12 */ 11 */
13 -public interface ApiAccessLogApi { 12 +public interface ApiAccessLogCommonApi {
14 13
15 /** 14 /**
16 * 创建 API 访问日志 15 * 创建 API 访问日志
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApi.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/infra/logger/ApiErrorLogCommonApi.java
1 -package cn.iocoder.yudao.module.infra.api.logger; 1 +package cn.iocoder.yudao.framework.common.biz.infra.logger;
2 2
3 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; 3 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
4 4
5 import jakarta.validation.Valid; 5 import jakarta.validation.Valid;
6 import org.springframework.scheduling.annotation.Async; 6 import org.springframework.scheduling.annotation.Async;
@@ -10,7 +10,7 @@ import org.springframework.scheduling.annotation.Async; @@ -10,7 +10,7 @@ import org.springframework.scheduling.annotation.Async;
10 * 10 *
11 * @author 芋道源码 11 * @author 芋道源码
12 */ 12 */
13 -public interface ApiErrorLogApi { 13 +public interface ApiErrorLogCommonApi {
14 14
15 /** 15 /**
16 * 创建 API 错误日志 16 * 创建 API 错误日志
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiAccessLogCreateReqDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/infra/logger/dto/ApiAccessLogCreateReqDTO.java
1 -package cn.iocoder.yudao.module.infra.api.logger.dto; 1 +package cn.iocoder.yudao.framework.common.biz.infra.logger.dto;
2 2
  3 +import jakarta.validation.constraints.NotNull;
3 import lombok.Data; 4 import lombok.Data;
4 5
5 -import jakarta.validation.constraints.NotNull;  
6 import java.time.LocalDateTime; 6 import java.time.LocalDateTime;
7 7
8 /** 8 /**
yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/logger/dto/ApiErrorLogCreateReqDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/infra/logger/dto/ApiErrorLogCreateReqDTO.java
1 -package cn.iocoder.yudao.module.infra.api.logger.dto; 1 +package cn.iocoder.yudao.framework.common.biz.infra.logger.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/infra/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.common.biz.infra;
0 \ No newline at end of file 2 \ No newline at end of file
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/package-info.java 0 → 100644
  1 +/**
  2 + * 特殊:用于 framework 下,starter 需要调用 biz 业务模块的接口定义!
  3 + */
  4 +package cn.iocoder.yudao.framework.common.biz;
0 \ No newline at end of file 5 \ No newline at end of file
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/dict/DictDataCommonApi.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.common.biz.system.dict;
  2 +
  3 +import cn.iocoder.yudao.framework.common.biz.system.dict.dto.DictDataRespDTO;
  4 +
  5 +import java.util.List;
  6 +
  7 +/**
  8 + * 字典数据 API 接口
  9 + *
  10 + * @author 芋道源码
  11 + */
  12 +public interface DictDataCommonApi {
  13 +
  14 + /**
  15 + * 获得指定字典类型的字典数据列表
  16 + *
  17 + * @param dictType 字典类型
  18 + * @return 字典数据列表
  19 + */
  20 + List<DictDataRespDTO> getDictDataList(String dictType);
  21 +
  22 +}
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/dto/DictDataRespDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/dict/dto/DictDataRespDTO.java
1 -package cn.iocoder.yudao.module.system.api.dict.dto; 1 +package cn.iocoder.yudao.framework.common.biz.system.dict.dto;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import lombok.Data; 4 import lombok.Data;
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/logger/OperateLogCommonApi.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.common.biz.system.logger;
  2 +
  3 +import cn.iocoder.yudao.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
  4 +import jakarta.validation.Valid;
  5 +import org.springframework.scheduling.annotation.Async;
  6 +
  7 +/**
  8 + * 操作日志 API 接口
  9 + *
  10 + * @author 芋道源码
  11 + */
  12 +public interface OperateLogCommonApi {
  13 +
  14 + /**
  15 + * 创建操作日志
  16 + *
  17 + * @param createReqDTO 请求
  18 + */
  19 + void createOperateLog(@Valid OperateLogCreateReqDTO createReqDTO);
  20 +
  21 + /**
  22 + * 【异步】创建操作日志
  23 + *
  24 + * @param createReqDTO 请求
  25 + */
  26 + @Async
  27 + default void createOperateLogAsync(OperateLogCreateReqDTO createReqDTO) {
  28 + createOperateLog(createReqDTO);
  29 + }
  30 +
  31 +}
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogCreateReqDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/logger/dto/OperateLogCreateReqDTO.java
1 -package cn.iocoder.yudao.module.system.api.logger.dto; 1 +package cn.iocoder.yudao.framework.common.biz.system.logger.dto;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import jakarta.validation.constraints.NotEmpty; 4 import jakarta.validation.constraints.NotEmpty;
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApi.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/oauth2/OAuth2TokenCommonApi.java
1 -package cn.iocoder.yudao.module.system.api.oauth2; 1 +package cn.iocoder.yudao.framework.common.biz.system.oauth2;
2 2
3 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;  
4 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO;  
5 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; 3 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
  4 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
  5 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenRespDTO;
6 6
7 import jakarta.validation.Valid; 7 import jakarta.validation.Valid;
8 8
@@ -11,7 +11,7 @@ import jakarta.validation.Valid; @@ -11,7 +11,7 @@ import jakarta.validation.Valid;
11 * 11 *
12 * @author 芋道源码 12 * @author 芋道源码
13 */ 13 */
14 -public interface OAuth2TokenApi { 14 +public interface OAuth2TokenCommonApi {
15 15
16 /** 16 /**
17 * 创建访问令牌 17 * 创建访问令牌
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/oauth2/dto/OAuth2AccessTokenCheckRespDTO.java
1 -package cn.iocoder.yudao.module.system.api.oauth2.dto; 1 +package cn.iocoder.yudao.framework.common.biz.system.oauth2.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/oauth2/dto/OAuth2AccessTokenCreateReqDTO.java
1 -package cn.iocoder.yudao.module.system.api.oauth2.dto; 1 +package cn.iocoder.yudao.framework.common.biz.system.oauth2.dto;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 4 import cn.iocoder.yudao.framework.common.validation.InEnum;
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/dto/OAuth2AccessTokenRespDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/oauth2/dto/OAuth2AccessTokenRespDTO.java
1 -package cn.iocoder.yudao.module.system.api.oauth2.dto; 1 +package cn.iocoder.yudao.framework.common.biz.system.oauth2.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import lombok.experimental.Accessors; 4 import lombok.experimental.Accessors;
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/package-info.java 0 → 100644
  1 +/**
  2 + * 针对 system 模块的 api 包
  3 + */
  4 +package cn.iocoder.yudao.framework.common.biz.system;
0 \ No newline at end of file 5 \ No newline at end of file
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/permission/PermissionCommonApi.java 0 → 100644
  1 +package cn.iocoder.yudao.framework.common.biz.system.permission;
  2 +
  3 +import cn.iocoder.yudao.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
  4 +
  5 +/**
  6 + * 权限 API 接口
  7 + *
  8 + * @author 芋道源码
  9 + */
  10 +public interface PermissionCommonApi {
  11 +
  12 + /**
  13 + * 判断是否有权限,任一一个即可
  14 + *
  15 + * @param userId 用户编号
  16 + * @param permissions 权限
  17 + * @return 是否
  18 + */
  19 + boolean hasAnyPermissions(Long userId, String... permissions);
  20 +
  21 + /**
  22 + * 判断是否有角色,任一一个即可
  23 + *
  24 + * @param userId 用户编号
  25 + * @param roles 角色数组
  26 + * @return 是否
  27 + */
  28 + boolean hasAnyRoles(Long userId, String... roles);
  29 +
  30 + /**
  31 + * 获得登陆用户的部门数据权限
  32 + *
  33 + * @param userId 用户编号
  34 + * @return 部门数据权限
  35 + */
  36 + DeptDataPermissionRespDTO getDeptDataPermission(Long userId);
  37 +
  38 +}
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/dto/DeptDataPermissionRespDTO.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/permission/dto/DeptDataPermissionRespDTO.java
1 -package cn.iocoder.yudao.module.system.api.permission.dto; 1 +package cn.iocoder.yudao.framework.common.biz.system.permission.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApi.java renamed to yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/biz/system/tenant/TenantCommonApi.java
1 -package cn.iocoder.yudao.module.system.api.tenant; 1 +package cn.iocoder.yudao.framework.common.biz.system.tenant;
2 2
3 import java.util.List; 3 import java.util.List;
4 4
@@ -7,7 +7,7 @@ import java.util.List; @@ -7,7 +7,7 @@ import java.util.List;
7 * 7 *
8 * @author 芋道源码 8 * @author 芋道源码
9 */ 9 */
10 -public interface TenantApi { 10 +public interface TenantCommonApi {
11 11
12 /** 12 /**
13 * 获得所有租户 13 * 获得所有租户
yudao-framework/yudao-spring-boot-starter-biz-data-permission/pom.xml
@@ -34,13 +34,6 @@ @@ -34,13 +34,6 @@
34 <artifactId>yudao-spring-boot-starter-mybatis</artifactId> 34 <artifactId>yudao-spring-boot-starter-mybatis</artifactId>
35 </dependency> 35 </dependency>
36 36
37 - <!-- 业务组件 -->  
38 - <dependency>  
39 - <groupId>cn.iocoder.boot</groupId>  
40 - <artifactId>yudao-module-system-api</artifactId> <!-- 需要使用它,进行数据权限的获取 -->  
41 - <version>${revision}</version>  
42 - </dependency>  
43 -  
44 <!-- Test 测试相关 --> 37 <!-- Test 测试相关 -->
45 <dependency> 38 <dependency>
46 <groupId>cn.iocoder.boot</groupId> 39 <groupId>cn.iocoder.boot</groupId>
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/config/YudaoDeptDataPermissionAutoConfiguration.java
1 package cn.iocoder.yudao.framework.datapermission.config; 1 package cn.iocoder.yudao.framework.datapermission.config;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.permission.PermissionCommonApi;
3 import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRule; 4 import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRule;
4 import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer; 5 import cn.iocoder.yudao.framework.datapermission.core.rule.dept.DeptDataPermissionRuleCustomizer;
5 import cn.iocoder.yudao.framework.security.core.LoginUser; 6 import cn.iocoder.yudao.framework.security.core.LoginUser;
6 -import cn.iocoder.yudao.module.system.api.permission.PermissionApi;  
7 import org.springframework.boot.autoconfigure.AutoConfiguration; 7 import org.springframework.boot.autoconfigure.AutoConfiguration;
8 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; 8 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
9 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; 9 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
@@ -18,11 +18,11 @@ import java.util.List; @@ -18,11 +18,11 @@ import java.util.List;
18 */ 18 */
19 @AutoConfiguration 19 @AutoConfiguration
20 @ConditionalOnClass(LoginUser.class) 20 @ConditionalOnClass(LoginUser.class)
21 -@ConditionalOnBean(value = {PermissionApi.class, DeptDataPermissionRuleCustomizer.class}) 21 +@ConditionalOnBean(value = {PermissionCommonApi.class, DeptDataPermissionRuleCustomizer.class})
22 public class YudaoDeptDataPermissionAutoConfiguration { 22 public class YudaoDeptDataPermissionAutoConfiguration {
23 23
24 @Bean 24 @Bean
25 - public DeptDataPermissionRule deptDataPermissionRule(PermissionApi permissionApi, 25 + public DeptDataPermissionRule deptDataPermissionRule(PermissionCommonApi permissionApi,
26 List<DeptDataPermissionRuleCustomizer> customizers) { 26 List<DeptDataPermissionRuleCustomizer> customizers) {
27 // 创建 DeptDataPermissionRule 对象 27 // 创建 DeptDataPermissionRule 对象
28 DeptDataPermissionRule rule = new DeptDataPermissionRule(permissionApi); 28 DeptDataPermissionRule rule = new DeptDataPermissionRule(permissionApi);
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRule.java
@@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.datapermission.core.rule.dept; @@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.datapermission.core.rule.dept;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ObjectUtil; 4 import cn.hutool.core.util.ObjectUtil;
5 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
  6 +import cn.iocoder.yudao.framework.common.biz.system.permission.PermissionCommonApi;
  7 +import cn.iocoder.yudao.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
6 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 8 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
7 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
8 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 10 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
@@ -11,12 +13,13 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @@ -11,12 +13,13 @@ import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
11 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; 13 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
12 import cn.iocoder.yudao.framework.security.core.LoginUser; 14 import cn.iocoder.yudao.framework.security.core.LoginUser;
13 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 15 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
14 -import cn.iocoder.yudao.module.system.api.permission.PermissionApi;  
15 -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;  
16 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; 16 import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
17 import lombok.AllArgsConstructor; 17 import lombok.AllArgsConstructor;
18 import lombok.extern.slf4j.Slf4j; 18 import lombok.extern.slf4j.Slf4j;
19 -import net.sf.jsqlparser.expression.*; 19 +import net.sf.jsqlparser.expression.Alias;
  20 +import net.sf.jsqlparser.expression.Expression;
  21 +import net.sf.jsqlparser.expression.LongValue;
  22 +import net.sf.jsqlparser.expression.NullValue;
20 import net.sf.jsqlparser.expression.operators.conditional.OrExpression; 23 import net.sf.jsqlparser.expression.operators.conditional.OrExpression;
21 import net.sf.jsqlparser.expression.operators.relational.EqualsTo; 24 import net.sf.jsqlparser.expression.operators.relational.EqualsTo;
22 import net.sf.jsqlparser.expression.operators.relational.ExpressionList; 25 import net.sf.jsqlparser.expression.operators.relational.ExpressionList;
@@ -59,7 +62,7 @@ public class DeptDataPermissionRule implements DataPermissionRule { @@ -59,7 +62,7 @@ public class DeptDataPermissionRule implements DataPermissionRule {
59 62
60 static final Expression EXPRESSION_NULL = new NullValue(); 63 static final Expression EXPRESSION_NULL = new NullValue();
61 64
62 - private final PermissionApi permissionApi; 65 + private final PermissionCommonApi permissionApi;
63 66
64 /** 67 /**
65 * 基于部门的表字段配置 68 * 基于部门的表字段配置
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/test/java/cn/iocoder/yudao/framework/datapermission/core/rule/dept/DeptDataPermissionRuleTest.java
@@ -2,13 +2,13 @@ package cn.iocoder.yudao.framework.datapermission.core.rule.dept; @@ -2,13 +2,13 @@ package cn.iocoder.yudao.framework.datapermission.core.rule.dept;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.ReflectUtil; 4 import cn.hutool.core.util.ReflectUtil;
  5 +import cn.iocoder.yudao.framework.common.biz.system.permission.PermissionCommonApi;
  6 +import cn.iocoder.yudao.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 7 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
6 import cn.iocoder.yudao.framework.common.util.collection.SetUtils; 8 import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
7 import cn.iocoder.yudao.framework.security.core.LoginUser; 9 import cn.iocoder.yudao.framework.security.core.LoginUser;
8 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 10 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
9 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; 11 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
10 -import cn.iocoder.yudao.module.system.api.permission.PermissionApi;  
11 -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;  
12 import net.sf.jsqlparser.expression.Alias; 12 import net.sf.jsqlparser.expression.Alias;
13 import net.sf.jsqlparser.expression.Expression; 13 import net.sf.jsqlparser.expression.Expression;
14 import org.junit.jupiter.api.BeforeEach; 14 import org.junit.jupiter.api.BeforeEach;
@@ -39,7 +39,7 @@ class DeptDataPermissionRuleTest extends BaseMockitoUnitTest { @@ -39,7 +39,7 @@ class DeptDataPermissionRuleTest extends BaseMockitoUnitTest {
39 private DeptDataPermissionRule rule; 39 private DeptDataPermissionRule rule;
40 40
41 @Mock 41 @Mock
42 - private PermissionApi permissionApi; 42 + private PermissionCommonApi permissionApi;
43 43
44 @BeforeEach 44 @BeforeEach
45 @SuppressWarnings("unchecked") 45 @SuppressWarnings("unchecked")
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/config/YudaoTenantAutoConfiguration.java
1 package cn.iocoder.yudao.framework.tenant.config; 1 package cn.iocoder.yudao.framework.tenant.config;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.tenant.TenantCommonApi;
3 import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; 4 import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; 5 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
5 import cn.iocoder.yudao.framework.redis.config.YudaoCacheProperties; 6 import cn.iocoder.yudao.framework.redis.config.YudaoCacheProperties;
@@ -19,7 +20,6 @@ import cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter; @@ -19,7 +20,6 @@ import cn.iocoder.yudao.framework.tenant.core.web.TenantContextWebFilter;
19 import cn.iocoder.yudao.framework.tenant.core.web.TenantVisitContextInterceptor; 20 import cn.iocoder.yudao.framework.tenant.core.web.TenantVisitContextInterceptor;
20 import cn.iocoder.yudao.framework.web.config.WebProperties; 21 import cn.iocoder.yudao.framework.web.config.WebProperties;
21 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; 22 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler;
22 -import cn.iocoder.yudao.module.system.api.tenant.TenantApi;  
23 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; 23 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
24 import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor; 24 import com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor;
25 import jakarta.annotation.Resource; 25 import jakarta.annotation.Resource;
@@ -58,7 +58,7 @@ public class YudaoTenantAutoConfiguration { @@ -58,7 +58,7 @@ public class YudaoTenantAutoConfiguration {
58 private ApplicationContext applicationContext; 58 private ApplicationContext applicationContext;
59 59
60 @Bean 60 @Bean
61 - public TenantFrameworkService tenantFrameworkService(TenantApi tenantApi) { 61 + public TenantFrameworkService tenantFrameworkService(TenantCommonApi tenantApi) {
62 return new TenantFrameworkServiceImpl(tenantApi); 62 return new TenantFrameworkServiceImpl(tenantApi);
63 } 63 }
64 64
yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/service/TenantFrameworkServiceImpl.java
1 package cn.iocoder.yudao.framework.tenant.core.service; 1 package cn.iocoder.yudao.framework.tenant.core.service;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.tenant.TenantCommonApi;
3 import cn.iocoder.yudao.framework.common.exception.ServiceException; 4 import cn.iocoder.yudao.framework.common.exception.ServiceException;
4 import cn.iocoder.yudao.framework.common.util.cache.CacheUtils; 5 import cn.iocoder.yudao.framework.common.util.cache.CacheUtils;
5 -import cn.iocoder.yudao.module.system.api.tenant.TenantApi;  
6 import com.google.common.cache.CacheLoader; 6 import com.google.common.cache.CacheLoader;
7 import com.google.common.cache.LoadingCache; 7 import com.google.common.cache.LoadingCache;
8 import lombok.RequiredArgsConstructor; 8 import lombok.RequiredArgsConstructor;
@@ -21,7 +21,7 @@ public class TenantFrameworkServiceImpl implements TenantFrameworkService { @@ -21,7 +21,7 @@ public class TenantFrameworkServiceImpl implements TenantFrameworkService {
21 21
22 private static final ServiceException SERVICE_EXCEPTION_NULL = new ServiceException(); 22 private static final ServiceException SERVICE_EXCEPTION_NULL = new ServiceException();
23 23
24 - private final TenantApi tenantApi; 24 + private final TenantCommonApi tenantApi;
25 25
26 /** 26 /**
27 * 针对 {@link #getTenantIds()} 的缓存 27 * 针对 {@link #getTenantIds()} 的缓存
yudao-framework/yudao-spring-boot-starter-excel/pom.xml
@@ -27,13 +27,6 @@ @@ -27,13 +27,6 @@
27 <artifactId>spring-boot-starter</artifactId> 27 <artifactId>spring-boot-starter</artifactId>
28 </dependency> 28 </dependency>
29 29
30 - <!-- 业务组件 -->  
31 - <dependency>  
32 - <groupId>cn.iocoder.boot</groupId>  
33 - <artifactId>yudao-module-system-api</artifactId> <!-- 需要使用它,进行 Dict 的查询 -->  
34 - <version>${revision}</version>  
35 - </dependency>  
36 -  
37 <!-- Web 相关 --> 30 <!-- Web 相关 -->
38 <dependency> 31 <dependency>
39 <groupId>org.springframework</groupId> 32 <groupId>org.springframework</groupId>
yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/dict/config/YudaoDictAutoConfiguration.java
1 package cn.iocoder.yudao.framework.dict.config; 1 package cn.iocoder.yudao.framework.dict.config;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.dict.DictDataCommonApi;
3 import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils; 4 import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils;
4 -import cn.iocoder.yudao.module.system.api.dict.DictDataApi;  
5 import org.springframework.boot.autoconfigure.AutoConfiguration; 5 import org.springframework.boot.autoconfigure.AutoConfiguration;
6 import org.springframework.context.annotation.Bean; 6 import org.springframework.context.annotation.Bean;
7 7
@@ -10,7 +10,7 @@ public class YudaoDictAutoConfiguration { @@ -10,7 +10,7 @@ public class YudaoDictAutoConfiguration {
10 10
11 @Bean 11 @Bean
12 @SuppressWarnings("InstantiationOfUtilityClass") 12 @SuppressWarnings("InstantiationOfUtilityClass")
13 - public DictFrameworkUtils dictUtils(DictDataApi dictDataApi) { 13 + public DictFrameworkUtils dictUtils(DictDataCommonApi dictDataApi) {
14 DictFrameworkUtils.init(dictDataApi); 14 DictFrameworkUtils.init(dictDataApi);
15 return new DictFrameworkUtils(); 15 return new DictFrameworkUtils();
16 } 16 }
yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/dict/core/DictFrameworkUtils.java
1 package cn.iocoder.yudao.framework.dict.core; 1 package cn.iocoder.yudao.framework.dict.core;
2 2
3 -import cn.hutool.core.util.ObjectUtil;  
4 -import cn.iocoder.yudao.framework.common.core.KeyValue; 3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.biz.system.dict.DictDataCommonApi;
5 import cn.iocoder.yudao.framework.common.util.cache.CacheUtils; 5 import cn.iocoder.yudao.framework.common.util.cache.CacheUtils;
6 -import cn.iocoder.yudao.module.system.api.dict.DictDataApi;  
7 -import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; 6 +import cn.iocoder.yudao.framework.common.biz.system.dict.dto.DictDataRespDTO;
8 import com.google.common.cache.CacheLoader; 7 import com.google.common.cache.CacheLoader;
9 import com.google.common.cache.LoadingCache; 8 import com.google.common.cache.LoadingCache;
10 import lombok.SneakyThrows; 9 import lombok.SneakyThrows;
@@ -12,6 +11,9 @@ import lombok.extern.slf4j.Slf4j; @@ -12,6 +11,9 @@ import lombok.extern.slf4j.Slf4j;
12 11
13 import java.time.Duration; 12 import java.time.Duration;
14 import java.util.List; 13 import java.util.List;
  14 +import java.util.Objects;
  15 +
  16 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
15 17
16 /** 18 /**
17 * 字典工具类 19 * 字典工具类
@@ -21,76 +23,57 @@ import java.util.List; @@ -21,76 +23,57 @@ import java.util.List;
21 @Slf4j 23 @Slf4j
22 public class DictFrameworkUtils { 24 public class DictFrameworkUtils {
23 25
24 - private static DictDataApi dictDataApi;  
25 -  
26 - private static final DictDataRespDTO DICT_DATA_NULL = new DictDataRespDTO();  
27 -  
28 - // TODO @puhui999:GET_DICT_DATA_CACHE、GET_DICT_DATA_LIST_CACHE、PARSE_DICT_DATA_CACHE 这 3 个缓存是有点重叠,可以思考下,有没可能减少 1 个。微信讨论好私聊,再具体改哈  
29 - /**  
30 - * 针对 {@link #getDictDataLabel(String, String)} 的缓存  
31 - */  
32 - private static final LoadingCache<KeyValue<String, String>, DictDataRespDTO> GET_DICT_DATA_CACHE = CacheUtils.buildAsyncReloadingCache(  
33 - Duration.ofMinutes(1L), // 过期时间 1 分钟  
34 - new CacheLoader<KeyValue<String, String>, DictDataRespDTO>() {  
35 -  
36 - @Override  
37 - public DictDataRespDTO load(KeyValue<String, String> key) {  
38 - return ObjectUtil.defaultIfNull(dictDataApi.getDictData(key.getKey(), key.getValue()), DICT_DATA_NULL);  
39 - }  
40 -  
41 - });  
42 -  
43 - /**  
44 - * 针对 {@link #getDictDataLabelList(String)} 的缓存  
45 - */  
46 - private static final LoadingCache<String, List<String>> GET_DICT_DATA_LIST_CACHE = CacheUtils.buildAsyncReloadingCache(  
47 - Duration.ofMinutes(1L), // 过期时间 1 分钟  
48 - new CacheLoader<String, List<String>>() {  
49 -  
50 - @Override  
51 - public List<String> load(String dictType) {  
52 - return dictDataApi.getDictDataLabelList(dictType);  
53 - }  
54 -  
55 - }); 26 + private static DictDataCommonApi dictDataApi;
56 27
57 /** 28 /**
58 - * 针对 {@link #parseDictDataValue(String, String)} 的缓存 29 + * 针对 dictType 的字段数据缓存
59 */ 30 */
60 - private static final LoadingCache<KeyValue<String, String>, DictDataRespDTO> PARSE_DICT_DATA_CACHE = CacheUtils.buildAsyncReloadingCache( 31 + private static final LoadingCache<String, List<DictDataRespDTO>> GET_DICT_DATA_CACHE = CacheUtils.buildAsyncReloadingCache(
61 Duration.ofMinutes(1L), // 过期时间 1 分钟 32 Duration.ofMinutes(1L), // 过期时间 1 分钟
62 - new CacheLoader<KeyValue<String, String>, DictDataRespDTO>() { 33 + new CacheLoader<String, List<DictDataRespDTO>>() {
63 34
64 @Override 35 @Override
65 - public DictDataRespDTO load(KeyValue<String, String> key) {  
66 - return ObjectUtil.defaultIfNull(dictDataApi.parseDictData(key.getKey(), key.getValue()), DICT_DATA_NULL); 36 + public List<DictDataRespDTO> load(String dictType) {
  37 + return dictDataApi.getDictDataList(dictType);
67 } 38 }
68 39
69 }); 40 });
70 41
71 - public static void init(DictDataApi dictDataApi) { 42 + public static void init(DictDataCommonApi dictDataApi) {
72 DictFrameworkUtils.dictDataApi = dictDataApi; 43 DictFrameworkUtils.dictDataApi = dictDataApi;
73 log.info("[init][初始化 DictFrameworkUtils 成功]"); 44 log.info("[init][初始化 DictFrameworkUtils 成功]");
74 } 45 }
75 46
  47 + public static void clearCache() {
  48 + GET_DICT_DATA_CACHE.invalidateAll();
  49 + }
  50 +
76 @SneakyThrows 51 @SneakyThrows
77 - public static String getDictDataLabel(String dictType, Integer value) {  
78 - return GET_DICT_DATA_CACHE.get(new KeyValue<>(dictType, String.valueOf(value))).getLabel(); 52 + public static String parseDictDataLabel(String dictType, Integer value) {
  53 + if (value == null) {
  54 + return null;
  55 + }
  56 + return parseDictDataLabel(dictType, String.valueOf(value));
79 } 57 }
80 58
81 @SneakyThrows 59 @SneakyThrows
82 - public static String getDictDataLabel(String dictType, String value) {  
83 - return GET_DICT_DATA_CACHE.get(new KeyValue<>(dictType, value)).getLabel(); 60 + public static String parseDictDataLabel(String dictType, String value) {
  61 + List<DictDataRespDTO> dictDatas = GET_DICT_DATA_CACHE.get(dictType);
  62 + DictDataRespDTO dictData = CollUtil.findOne(dictDatas, data -> Objects.equals(data.getValue(), value));
  63 + return dictData != null ? dictData.getLabel(): null;
84 } 64 }
85 65
86 @SneakyThrows 66 @SneakyThrows
87 public static List<String> getDictDataLabelList(String dictType) { 67 public static List<String> getDictDataLabelList(String dictType) {
88 - return GET_DICT_DATA_LIST_CACHE.get(dictType); 68 + List<DictDataRespDTO> dictDatas = GET_DICT_DATA_CACHE.get(dictType);
  69 + return convertList(dictDatas, DictDataRespDTO::getLabel);
89 } 70 }
90 71
91 @SneakyThrows 72 @SneakyThrows
92 public static String parseDictDataValue(String dictType, String label) { 73 public static String parseDictDataValue(String dictType, String label) {
93 - return PARSE_DICT_DATA_CACHE.get(new KeyValue<>(dictType, label)).getValue(); 74 + List<DictDataRespDTO> dictDatas = GET_DICT_DATA_CACHE.get(dictType);
  75 + DictDataRespDTO dictData = CollUtil.findOne(dictDatas, data -> Objects.equals(data.getLabel(), label));
  76 + return dictData!= null ? dictData.getValue(): null;
94 } 77 }
95 78
96 } 79 }
yudao-framework/yudao-spring-boot-starter-excel/src/main/java/cn/iocoder/yudao/framework/excel/core/convert/DictConvert.java
@@ -56,7 +56,7 @@ public class DictConvert implements Converter&lt;Object&gt; { @@ -56,7 +56,7 @@ public class DictConvert implements Converter&lt;Object&gt; {
56 // 使用字典格式化 56 // 使用字典格式化
57 String type = getType(contentProperty); 57 String type = getType(contentProperty);
58 String value = String.valueOf(object); 58 String value = String.valueOf(object);
59 - String label = DictFrameworkUtils.getDictDataLabel(type, value); 59 + String label = DictFrameworkUtils.parseDictDataLabel(type, value);
60 if (label == null) { 60 if (label == null) {
61 log.error("[convertToExcelData][type({}) 转换不了 label({})]", type, value); 61 log.error("[convertToExcelData][type({}) 转换不了 label({})]", type, value);
62 return new WriteCellData<>(""); 62 return new WriteCellData<>("");
yudao-framework/yudao-spring-boot-starter-excel/src/test/java/cn/iocoder/yudao/framework/dict/core/util/DictFrameworkUtilsTest.java
1 package cn.iocoder.yudao.framework.dict.core.util; 1 package cn.iocoder.yudao.framework.dict.core.util;
2 2
3 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 +import cn.iocoder.yudao.framework.common.biz.system.dict.DictDataCommonApi;
  4 +import cn.iocoder.yudao.framework.common.biz.system.dict.dto.DictDataRespDTO;
4 import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils; 5 import cn.iocoder.yudao.framework.dict.core.DictFrameworkUtils;
5 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; 6 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
6 -import cn.iocoder.yudao.module.system.api.dict.DictDataApi;  
7 -import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;  
8 import org.junit.jupiter.api.BeforeEach; 7 import org.junit.jupiter.api.BeforeEach;
9 import org.junit.jupiter.api.Test; 8 import org.junit.jupiter.api.Test;
10 import org.mockito.Mock; 9 import org.mockito.Mock;
11 10
  11 +import java.util.List;
  12 +
12 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; 13 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
13 import static org.junit.jupiter.api.Assertions.assertEquals; 14 import static org.junit.jupiter.api.Assertions.assertEquals;
  15 +import static org.mockito.ArgumentMatchers.eq;
14 import static org.mockito.Mockito.when; 16 import static org.mockito.Mockito.when;
15 17
16 /** 18 /**
@@ -19,33 +21,40 @@ import static org.mockito.Mockito.when; @@ -19,33 +21,40 @@ import static org.mockito.Mockito.when;
19 public class DictFrameworkUtilsTest extends BaseMockitoUnitTest { 21 public class DictFrameworkUtilsTest extends BaseMockitoUnitTest {
20 22
21 @Mock 23 @Mock
22 - private DictDataApi dictDataApi; 24 + private DictDataCommonApi dictDataApi;
23 25
24 @BeforeEach 26 @BeforeEach
25 public void setUp() { 27 public void setUp() {
26 DictFrameworkUtils.init(dictDataApi); 28 DictFrameworkUtils.init(dictDataApi);
  29 + DictFrameworkUtils.clearCache();
27 } 30 }
28 31
29 @Test 32 @Test
30 - public void testGetDictDataLabel() { 33 + public void testParseDictDataLabel() {
31 // mock 数据 34 // mock 数据
32 - DictDataRespDTO dataRespDTO = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); 35 + List<DictDataRespDTO> dictDatas = List.of(
  36 + randomPojo(DictDataRespDTO.class, o -> o.setDictType("animal").setValue("cat").setLabel("猫")),
  37 + randomPojo(DictDataRespDTO.class, o -> o.setDictType("animal").setValue("dog").setLabel("狗"))
  38 + );
33 // mock 方法 39 // mock 方法
34 - when(dictDataApi.getDictData(dataRespDTO.getDictType(), dataRespDTO.getValue())).thenReturn(dataRespDTO); 40 + when(dictDataApi.getDictDataList(eq("animal"))).thenReturn(dictDatas);
35 41
36 // 断言返回值 42 // 断言返回值
37 - assertEquals(dataRespDTO.getLabel(), DictFrameworkUtils.getDictDataLabel(dataRespDTO.getDictType(), dataRespDTO.getValue())); 43 + assertEquals("狗", DictFrameworkUtils.parseDictDataLabel("animal", "dog"));
38 } 44 }
39 45
40 @Test 46 @Test
41 public void testParseDictDataValue() { 47 public void testParseDictDataValue() {
42 // mock 数据 48 // mock 数据
43 - DictDataRespDTO resp = randomPojo(DictDataRespDTO.class, o -> o.setStatus(CommonStatusEnum.ENABLE.getStatus())); 49 + List<DictDataRespDTO> dictDatas = List.of(
  50 + randomPojo(DictDataRespDTO.class, o -> o.setDictType("animal").setValue("cat").setLabel("猫")),
  51 + randomPojo(DictDataRespDTO.class, o -> o.setDictType("animal").setValue("dog").setLabel("狗"))
  52 + );
44 // mock 方法 53 // mock 方法
45 - when(dictDataApi.parseDictData(resp.getDictType(), resp.getLabel())).thenReturn(resp); 54 + when(dictDataApi.getDictDataList(eq("animal"))).thenReturn(dictDatas);
46 55
47 // 断言返回值 56 // 断言返回值
48 - assertEquals(resp.getValue(), DictFrameworkUtils.parseDictDataValue(resp.getDictType(), resp.getLabel())); 57 + assertEquals("dog", DictFrameworkUtils.parseDictDataValue("animal", "狗"));
49 } 58 }
50 59
51 } 60 }
yudao-framework/yudao-spring-boot-starter-security/pom.xml
@@ -59,13 +59,6 @@ @@ -59,13 +59,6 @@
59 <groupId>io.github.mouzt</groupId> 59 <groupId>io.github.mouzt</groupId>
60 <artifactId>bizlog-sdk</artifactId> 60 <artifactId>bizlog-sdk</artifactId>
61 </dependency> 61 </dependency>
62 -  
63 - <!-- 业务组件 -->  
64 - <dependency>  
65 - <groupId>cn.iocoder.boot</groupId>  
66 - <artifactId>yudao-module-system-api</artifactId> <!-- 需要使用它,进行 Token 的校验 -->  
67 - <version>${revision}</version>  
68 - </dependency>  
69 </dependencies> 62 </dependencies>
70 63
71 </project> 64 </project>
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/operatelog/core/service/LogRecordServiceImpl.java
1 package cn.iocoder.yudao.framework.operatelog.core.service; 1 package cn.iocoder.yudao.framework.operatelog.core.service;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.logger.OperateLogCommonApi;
  4 +import cn.iocoder.yudao.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
3 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 5 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
4 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; 6 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
5 import cn.iocoder.yudao.framework.security.core.LoginUser; 7 import cn.iocoder.yudao.framework.security.core.LoginUser;
6 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 8 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
7 -import cn.iocoder.yudao.module.system.api.logger.OperateLogApi;  
8 -import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;  
9 import com.mzt.logapi.beans.LogRecord; 9 import com.mzt.logapi.beans.LogRecord;
10 import com.mzt.logapi.service.ILogRecordService; 10 import com.mzt.logapi.service.ILogRecordService;
11 import jakarta.annotation.Resource; 11 import jakarta.annotation.Resource;
@@ -17,7 +17,7 @@ import java.util.List; @@ -17,7 +17,7 @@ import java.util.List;
17 /** 17 /**
18 * 操作日志 ILogRecordService 实现类 18 * 操作日志 ILogRecordService 实现类
19 * 19 *
20 - * 基于 {@link OperateLogApi} 实现,记录操作日志 20 + * 基于 {@link OperateLogCommonApi} 实现,记录操作日志
21 * 21 *
22 * @author HUIHUI 22 * @author HUIHUI
23 */ 23 */
@@ -25,7 +25,7 @@ import java.util.List; @@ -25,7 +25,7 @@ import java.util.List;
25 public class LogRecordServiceImpl implements ILogRecordService { 25 public class LogRecordServiceImpl implements ILogRecordService {
26 26
27 @Resource 27 @Resource
28 - private OperateLogApi operateLogApi; 28 + private OperateLogCommonApi operateLogApi;
29 29
30 @Override 30 @Override
31 public void record(LogRecord logRecord) { 31 public void record(LogRecord logRecord) {
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java
1 package cn.iocoder.yudao.framework.security.config; 1 package cn.iocoder.yudao.framework.security.config;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
  4 +import cn.iocoder.yudao.framework.common.biz.system.permission.PermissionCommonApi;
3 import cn.iocoder.yudao.framework.security.core.context.TransmittableThreadLocalSecurityContextHolderStrategy; 5 import cn.iocoder.yudao.framework.security.core.context.TransmittableThreadLocalSecurityContextHolderStrategy;
4 import cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter; 6 import cn.iocoder.yudao.framework.security.core.filter.TokenAuthenticationFilter;
5 import cn.iocoder.yudao.framework.security.core.handler.AccessDeniedHandlerImpl; 7 import cn.iocoder.yudao.framework.security.core.handler.AccessDeniedHandlerImpl;
@@ -7,8 +9,6 @@ import cn.iocoder.yudao.framework.security.core.handler.AuthenticationEntryPoint @@ -7,8 +9,6 @@ import cn.iocoder.yudao.framework.security.core.handler.AuthenticationEntryPoint
7 import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkService; 9 import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkService;
8 import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkServiceImpl; 10 import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkServiceImpl;
9 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; 11 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler;
10 -import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;  
11 -import cn.iocoder.yudao.module.system.api.permission.PermissionApi;  
12 import jakarta.annotation.Resource; 12 import jakarta.annotation.Resource;
13 import org.springframework.beans.factory.config.MethodInvokingFactoryBean; 13 import org.springframework.beans.factory.config.MethodInvokingFactoryBean;
14 import org.springframework.boot.autoconfigure.AutoConfiguration; 14 import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -69,12 +69,12 @@ public class YudaoSecurityAutoConfiguration { @@ -69,12 +69,12 @@ public class YudaoSecurityAutoConfiguration {
69 */ 69 */
70 @Bean 70 @Bean
71 public TokenAuthenticationFilter authenticationTokenFilter(GlobalExceptionHandler globalExceptionHandler, 71 public TokenAuthenticationFilter authenticationTokenFilter(GlobalExceptionHandler globalExceptionHandler,
72 - OAuth2TokenApi oauth2TokenApi) { 72 + OAuth2TokenCommonApi oauth2TokenApi) {
73 return new TokenAuthenticationFilter(securityProperties, globalExceptionHandler, oauth2TokenApi); 73 return new TokenAuthenticationFilter(securityProperties, globalExceptionHandler, oauth2TokenApi);
74 } 74 }
75 75
76 @Bean("ss") // 使用 Spring Security 的缩写,方便使用 76 @Bean("ss") // 使用 Spring Security 的缩写,方便使用
77 - public SecurityFrameworkService securityFrameworkService(PermissionApi permissionApi) { 77 + public SecurityFrameworkService securityFrameworkService(PermissionCommonApi permissionApi) {
78 return new SecurityFrameworkServiceImpl(permissionApi); 78 return new SecurityFrameworkServiceImpl(permissionApi);
79 } 79 }
80 80
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/filter/TokenAuthenticationFilter.java
@@ -2,6 +2,8 @@ package cn.iocoder.yudao.framework.security.core.filter; @@ -2,6 +2,8 @@ package cn.iocoder.yudao.framework.security.core.filter;
2 2
3 import cn.hutool.core.util.ObjectUtil; 3 import cn.hutool.core.util.ObjectUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
  5 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
  6 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
5 import cn.iocoder.yudao.framework.common.exception.ServiceException; 7 import cn.iocoder.yudao.framework.common.exception.ServiceException;
6 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 8 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; 9 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
@@ -10,16 +12,14 @@ import cn.iocoder.yudao.framework.security.core.LoginUser; @@ -10,16 +12,14 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
10 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 12 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
11 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; 13 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler;
12 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; 14 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
13 -import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;  
14 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;  
15 -import lombok.RequiredArgsConstructor;  
16 -import org.springframework.security.access.AccessDeniedException;  
17 -import org.springframework.web.filter.OncePerRequestFilter;  
18 -  
19 import jakarta.servlet.FilterChain; 15 import jakarta.servlet.FilterChain;
20 import jakarta.servlet.ServletException; 16 import jakarta.servlet.ServletException;
21 import jakarta.servlet.http.HttpServletRequest; 17 import jakarta.servlet.http.HttpServletRequest;
22 import jakarta.servlet.http.HttpServletResponse; 18 import jakarta.servlet.http.HttpServletResponse;
  19 +import lombok.RequiredArgsConstructor;
  20 +import org.springframework.security.access.AccessDeniedException;
  21 +import org.springframework.web.filter.OncePerRequestFilter;
  22 +
23 import java.io.IOException; 23 import java.io.IOException;
24 24
25 /** 25 /**
@@ -35,7 +35,7 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter { @@ -35,7 +35,7 @@ public class TokenAuthenticationFilter extends OncePerRequestFilter {
35 35
36 private final GlobalExceptionHandler globalExceptionHandler; 36 private final GlobalExceptionHandler globalExceptionHandler;
37 37
38 - private final OAuth2TokenApi oauth2TokenApi; 38 + private final OAuth2TokenCommonApi oauth2TokenApi;
39 39
40 @Override 40 @Override
41 @SuppressWarnings("NullableProblems") 41 @SuppressWarnings("NullableProblems")
yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/core/service/SecurityFrameworkServiceImpl.java
1 package cn.iocoder.yudao.framework.security.core.service; 1 package cn.iocoder.yudao.framework.security.core.service;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.biz.system.permission.PermissionCommonApi;
4 import cn.iocoder.yudao.framework.security.core.LoginUser; 5 import cn.iocoder.yudao.framework.security.core.LoginUser;
5 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 6 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
6 -import cn.iocoder.yudao.module.system.api.permission.PermissionApi;  
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
8 8
9 import java.util.Arrays; 9 import java.util.Arrays;
@@ -19,7 +19,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @@ -19,7 +19,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
19 @AllArgsConstructor 19 @AllArgsConstructor
20 public class SecurityFrameworkServiceImpl implements SecurityFrameworkService { 20 public class SecurityFrameworkServiceImpl implements SecurityFrameworkService {
21 21
22 - private final PermissionApi permissionApi; 22 + private final PermissionCommonApi permissionApi;
23 23
24 @Override 24 @Override
25 public boolean hasPermission(String permission) { 25 public boolean hasPermission(String permission) {
yudao-framework/yudao-spring-boot-starter-web/pom.xml
@@ -53,18 +53,6 @@ @@ -53,18 +53,6 @@
53 <scope>provided</scope> <!-- 设置为 provided,主要是 GlobalExceptionHandler 使用 --> 53 <scope>provided</scope> <!-- 设置为 provided,主要是 GlobalExceptionHandler 使用 -->
54 </dependency> 54 </dependency>
55 55
56 - <!-- 业务组件 -->  
57 - <dependency>  
58 - <groupId>cn.iocoder.boot</groupId>  
59 - <artifactId>yudao-module-infra-api</artifactId> <!-- 需要使用它,进行操作日志的记录 -->  
60 - <version>${revision}</version>  
61 - </dependency>  
62 - <dependency>  
63 - <groupId>cn.iocoder.boot</groupId>  
64 - <artifactId>yudao-module-system-api</artifactId> <!-- 需要使用它,进行错误码的记录 -->  
65 - <version>${revision}</version>  
66 - </dependency>  
67 -  
68 <!-- xss --> 56 <!-- xss -->
69 <dependency> 57 <dependency>
70 <groupId>org.jsoup</groupId> 58 <groupId>org.jsoup</groupId>
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/config/YudaoApiLogAutoConfiguration.java
@@ -2,10 +2,10 @@ package cn.iocoder.yudao.framework.apilog.config; @@ -2,10 +2,10 @@ package cn.iocoder.yudao.framework.apilog.config;
2 2
3 import cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter; 3 import cn.iocoder.yudao.framework.apilog.core.filter.ApiAccessLogFilter;
4 import cn.iocoder.yudao.framework.apilog.core.interceptor.ApiAccessLogInterceptor; 4 import cn.iocoder.yudao.framework.apilog.core.interceptor.ApiAccessLogInterceptor;
  5 +import cn.iocoder.yudao.framework.common.biz.infra.logger.ApiAccessLogCommonApi;
5 import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum; 6 import cn.iocoder.yudao.framework.common.enums.WebFilterOrderEnum;
6 import cn.iocoder.yudao.framework.web.config.WebProperties; 7 import cn.iocoder.yudao.framework.web.config.WebProperties;
7 import cn.iocoder.yudao.framework.web.config.YudaoWebAutoConfiguration; 8 import cn.iocoder.yudao.framework.web.config.YudaoWebAutoConfiguration;
8 -import cn.iocoder.yudao.module.infra.api.logger.ApiAccessLogApi;  
9 import jakarta.servlet.Filter; 9 import jakarta.servlet.Filter;
10 import org.springframework.beans.factory.annotation.Value; 10 import org.springframework.beans.factory.annotation.Value;
11 import org.springframework.boot.autoconfigure.AutoConfiguration; 11 import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -25,7 +25,7 @@ public class YudaoApiLogAutoConfiguration implements WebMvcConfigurer { @@ -25,7 +25,7 @@ public class YudaoApiLogAutoConfiguration implements WebMvcConfigurer {
25 @ConditionalOnProperty(prefix = "yudao.access-log", value = "enable", matchIfMissing = true) // 允许使用 yudao.access-log.enable=false 禁用访问日志 25 @ConditionalOnProperty(prefix = "yudao.access-log", value = "enable", matchIfMissing = true) // 允许使用 yudao.access-log.enable=false 禁用访问日志
26 public FilterRegistrationBean<ApiAccessLogFilter> apiAccessLogFilter(WebProperties webProperties, 26 public FilterRegistrationBean<ApiAccessLogFilter> apiAccessLogFilter(WebProperties webProperties,
27 @Value("${spring.application.name}") String applicationName, 27 @Value("${spring.application.name}") String applicationName,
28 - ApiAccessLogApi apiAccessLogApi) { 28 + ApiAccessLogCommonApi apiAccessLogApi) {
29 ApiAccessLogFilter filter = new ApiAccessLogFilter(webProperties, applicationName, apiAccessLogApi); 29 ApiAccessLogFilter filter = new ApiAccessLogFilter(webProperties, applicationName, apiAccessLogApi);
30 return createFilterBean(filter, WebFilterOrderEnum.API_ACCESS_LOG_FILTER); 30 return createFilterBean(filter, WebFilterOrderEnum.API_ACCESS_LOG_FILTER);
31 } 31 }
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/apilog/core/filter/ApiAccessLogFilter.java
@@ -9,6 +9,8 @@ import cn.hutool.core.util.BooleanUtil; @@ -9,6 +9,8 @@ import cn.hutool.core.util.BooleanUtil;
9 import cn.hutool.core.util.StrUtil; 9 import cn.hutool.core.util.StrUtil;
10 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; 10 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
11 import cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum; 11 import cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum;
  12 +import cn.iocoder.yudao.framework.common.biz.infra.logger.ApiAccessLogCommonApi;
  13 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
12 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; 14 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
13 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 15 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
14 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 16 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
@@ -17,8 +19,6 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; @@ -17,8 +19,6 @@ import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
17 import cn.iocoder.yudao.framework.web.config.WebProperties; 19 import cn.iocoder.yudao.framework.web.config.WebProperties;
18 import cn.iocoder.yudao.framework.web.core.filter.ApiRequestFilter; 20 import cn.iocoder.yudao.framework.web.core.filter.ApiRequestFilter;
19 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; 21 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
20 -import cn.iocoder.yudao.module.infra.api.logger.ApiAccessLogApi;  
21 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;  
22 import com.fasterxml.jackson.databind.JsonNode; 22 import com.fasterxml.jackson.databind.JsonNode;
23 import io.swagger.v3.oas.annotations.Operation; 23 import io.swagger.v3.oas.annotations.Operation;
24 import io.swagger.v3.oas.annotations.tags.Tag; 24 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -53,9 +53,9 @@ public class ApiAccessLogFilter extends ApiRequestFilter { @@ -53,9 +53,9 @@ public class ApiAccessLogFilter extends ApiRequestFilter {
53 53
54 private final String applicationName; 54 private final String applicationName;
55 55
56 - private final ApiAccessLogApi apiAccessLogApi; 56 + private final ApiAccessLogCommonApi apiAccessLogApi;
57 57
58 - public ApiAccessLogFilter(WebProperties webProperties, String applicationName, ApiAccessLogApi apiAccessLogApi) { 58 + public ApiAccessLogFilter(WebProperties webProperties, String applicationName, ApiAccessLogCommonApi apiAccessLogApi) {
59 super(webProperties); 59 super(webProperties);
60 this.applicationName = applicationName; 60 this.applicationName = applicationName;
61 this.apiAccessLogApi = apiAccessLogApi; 61 this.apiAccessLogApi = apiAccessLogApi;
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/config/YudaoWebAutoConfiguration.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.web.core.filter.DemoFilter; @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.web.core.filter.DemoFilter;
6 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler; 6 import cn.iocoder.yudao.framework.web.core.handler.GlobalExceptionHandler;
7 import cn.iocoder.yudao.framework.web.core.handler.GlobalResponseBodyHandler; 7 import cn.iocoder.yudao.framework.web.core.handler.GlobalResponseBodyHandler;
8 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; 8 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
9 -import cn.iocoder.yudao.module.infra.api.logger.ApiErrorLogApi; 9 +import cn.iocoder.yudao.framework.common.biz.infra.logger.ApiErrorLogCommonApi;
10 import jakarta.annotation.Resource; 10 import jakarta.annotation.Resource;
11 import jakarta.servlet.Filter; 11 import jakarta.servlet.Filter;
12 import org.springframework.beans.factory.annotation.Value; 12 import org.springframework.beans.factory.annotation.Value;
@@ -59,7 +59,7 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer { @@ -59,7 +59,7 @@ public class YudaoWebAutoConfiguration implements WebMvcConfigurer {
59 59
60 @Bean 60 @Bean
61 @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") 61 @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
62 - public GlobalExceptionHandler globalExceptionHandler(ApiErrorLogApi apiErrorLogApi) { 62 + public GlobalExceptionHandler globalExceptionHandler(ApiErrorLogCommonApi apiErrorLogApi) {
63 return new GlobalExceptionHandler(applicationName, apiErrorLogApi); 63 return new GlobalExceptionHandler(applicationName, apiErrorLogApi);
64 } 64 }
65 65
yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
@@ -14,8 +14,8 @@ import cn.iocoder.yudao.framework.common.util.json.JsonUtils; @@ -14,8 +14,8 @@ import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
14 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 14 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
15 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; 15 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
16 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; 16 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
17 -import cn.iocoder.yudao.module.infra.api.logger.ApiErrorLogApi;  
18 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; 17 +import cn.iocoder.yudao.framework.common.biz.infra.logger.ApiErrorLogCommonApi;
  18 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
19 import com.fasterxml.jackson.databind.exc.InvalidFormatException; 19 import com.fasterxml.jackson.databind.exc.InvalidFormatException;
20 import jakarta.servlet.http.HttpServletRequest; 20 import jakarta.servlet.http.HttpServletRequest;
21 import jakarta.validation.ConstraintViolation; 21 import jakarta.validation.ConstraintViolation;
@@ -63,7 +63,7 @@ public class GlobalExceptionHandler { @@ -63,7 +63,7 @@ public class GlobalExceptionHandler {
63 @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") 63 @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
64 private final String applicationName; 64 private final String applicationName;
65 65
66 - private final ApiErrorLogApi apiErrorLogApi; 66 + private final ApiErrorLogCommonApi apiErrorLogApi;
67 67
68 /** 68 /**
69 * 处理所有异常,主要是提供给 Filter 使用 69 * 处理所有异常,主要是提供给 Filter 使用
yudao-module-crm/yudao-module-crm-biz/pom.xml
@@ -24,6 +24,11 @@ @@ -24,6 +24,11 @@
24 </dependency> 24 </dependency>
25 <dependency> 25 <dependency>
26 <groupId>cn.iocoder.boot</groupId> 26 <groupId>cn.iocoder.boot</groupId>
  27 + <artifactId>yudao-module-infra-api</artifactId>
  28 + <version>${revision}</version>
  29 + </dependency>
  30 + <dependency>
  31 + <groupId>cn.iocoder.boot</groupId>
27 <artifactId>yudao-module-crm-api</artifactId> 32 <artifactId>yudao-module-crm-api</artifactId>
28 <version>${revision}</version> 33 <version>${revision}</version>
29 </dependency> 34 </dependency>
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/CrmCustomerIndustryParseFunction.java
@@ -34,7 +34,7 @@ public class CrmCustomerIndustryParseFunction implements IParseFunction { @@ -34,7 +34,7 @@ public class CrmCustomerIndustryParseFunction implements IParseFunction {
34 if (StrUtil.isEmptyIfStr(value)) { 34 if (StrUtil.isEmptyIfStr(value)) {
35 return ""; 35 return "";
36 } 36 }
37 - return DictFrameworkUtils.getDictDataLabel(CRM_CUSTOMER_INDUSTRY, value.toString()); 37 + return DictFrameworkUtils.parseDictDataLabel(CRM_CUSTOMER_INDUSTRY, value.toString());
38 } 38 }
39 39
40 } 40 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/CrmCustomerLevelParseFunction.java
@@ -34,7 +34,7 @@ public class CrmCustomerLevelParseFunction implements IParseFunction { @@ -34,7 +34,7 @@ public class CrmCustomerLevelParseFunction implements IParseFunction {
34 if (StrUtil.isEmptyIfStr(value)) { 34 if (StrUtil.isEmptyIfStr(value)) {
35 return ""; 35 return "";
36 } 36 }
37 - return DictFrameworkUtils.getDictDataLabel(CRM_CUSTOMER_LEVEL, value.toString()); 37 + return DictFrameworkUtils.parseDictDataLabel(CRM_CUSTOMER_LEVEL, value.toString());
38 } 38 }
39 39
40 } 40 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/CrmCustomerSourceParseFunction.java
@@ -34,7 +34,7 @@ public class CrmCustomerSourceParseFunction implements IParseFunction { @@ -34,7 +34,7 @@ public class CrmCustomerSourceParseFunction implements IParseFunction {
34 if (StrUtil.isEmptyIfStr(value)) { 34 if (StrUtil.isEmptyIfStr(value)) {
35 return ""; 35 return "";
36 } 36 }
37 - return DictFrameworkUtils.getDictDataLabel(CRM_CUSTOMER_SOURCE, value.toString()); 37 + return DictFrameworkUtils.parseDictDataLabel(CRM_CUSTOMER_SOURCE, value.toString());
38 } 38 }
39 39
40 } 40 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/CrmProductStatusParseFunction.java
@@ -33,7 +33,7 @@ public class CrmProductStatusParseFunction implements IParseFunction { @@ -33,7 +33,7 @@ public class CrmProductStatusParseFunction implements IParseFunction {
33 if (StrUtil.isEmptyIfStr(value)) { 33 if (StrUtil.isEmptyIfStr(value)) {
34 return ""; 34 return "";
35 } 35 }
36 - return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.CRM_PRODUCT_STATUS, value.toString()); 36 + return DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.CRM_PRODUCT_STATUS, value.toString());
37 } 37 }
38 38
39 } 39 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/CrmProductUnitParseFunction.java
@@ -33,7 +33,7 @@ public class CrmProductUnitParseFunction implements IParseFunction { @@ -33,7 +33,7 @@ public class CrmProductUnitParseFunction implements IParseFunction {
33 if (StrUtil.isEmptyIfStr(value)) { 33 if (StrUtil.isEmptyIfStr(value)) {
34 return ""; 34 return "";
35 } 35 }
36 - return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.CRM_PRODUCT_UNIT, value.toString()); 36 + return DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.CRM_PRODUCT_UNIT, value.toString());
37 } 37 }
38 38
39 } 39 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/CrmReceivableReturnTypeParseFunction.java
@@ -34,7 +34,7 @@ public class CrmReceivableReturnTypeParseFunction implements IParseFunction { @@ -34,7 +34,7 @@ public class CrmReceivableReturnTypeParseFunction implements IParseFunction {
34 if (StrUtil.isEmptyIfStr(value)) { 34 if (StrUtil.isEmptyIfStr(value)) {
35 return ""; 35 return "";
36 } 36 }
37 - return DictFrameworkUtils.getDictDataLabel(CRM_RECEIVABLE_RETURN_TYPE, value.toString()); 37 + return DictFrameworkUtils.parseDictDataLabel(CRM_RECEIVABLE_RETURN_TYPE, value.toString());
38 } 38 }
39 39
40 } 40 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/SysBooleanParseFunction.java
@@ -33,7 +33,7 @@ public class SysBooleanParseFunction implements IParseFunction { @@ -33,7 +33,7 @@ public class SysBooleanParseFunction implements IParseFunction {
33 if (StrUtil.isEmptyIfStr(value)) { 33 if (StrUtil.isEmptyIfStr(value)) {
34 return ""; 34 return "";
35 } 35 }
36 - return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.BOOLEAN_STRING, value.toString()); 36 + return DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.BOOLEAN_STRING, value.toString());
37 } 37 }
38 38
39 } 39 }
yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/framework/operatelog/core/SysSexParseFunction.java
@@ -33,7 +33,7 @@ public class SysSexParseFunction implements IParseFunction { @@ -33,7 +33,7 @@ public class SysSexParseFunction implements IParseFunction {
33 if (StrUtil.isEmptyIfStr(value)) { 33 if (StrUtil.isEmptyIfStr(value)) {
34 return ""; 34 return "";
35 } 35 }
36 - return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.USER_SEX, value.toString()); 36 + return DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.USER_SEX, value.toString());
37 } 37 }
38 38
39 } 39 }
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiAccessLogApiImpl.java
1 package cn.iocoder.yudao.module.infra.api.logger; 1 package cn.iocoder.yudao.module.infra.api.logger;
2 2
3 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO; 3 +import cn.iocoder.yudao.framework.common.biz.infra.logger.ApiAccessLogCommonApi;
  4 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
4 import cn.iocoder.yudao.module.infra.service.logger.ApiAccessLogService; 5 import cn.iocoder.yudao.module.infra.service.logger.ApiAccessLogService;
  6 +import jakarta.annotation.Resource;
5 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
6 import org.springframework.validation.annotation.Validated; 8 import org.springframework.validation.annotation.Validated;
7 9
8 -import jakarta.annotation.Resource;  
9 -  
10 /** 10 /**
11 * API 访问日志的 API 实现类 11 * API 访问日志的 API 实现类
12 * 12 *
@@ -14,7 +14,7 @@ import jakarta.annotation.Resource; @@ -14,7 +14,7 @@ import jakarta.annotation.Resource;
14 */ 14 */
15 @Service 15 @Service
16 @Validated 16 @Validated
17 -public class ApiAccessLogApiImpl implements ApiAccessLogApi { 17 +public class ApiAccessLogApiImpl implements ApiAccessLogCommonApi {
18 18
19 @Resource 19 @Resource
20 private ApiAccessLogService apiAccessLogService; 20 private ApiAccessLogService apiAccessLogService;
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/logger/ApiErrorLogApiImpl.java
1 package cn.iocoder.yudao.module.infra.api.logger; 1 package cn.iocoder.yudao.module.infra.api.logger;
2 2
3 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; 3 +import cn.iocoder.yudao.framework.common.biz.infra.logger.ApiErrorLogCommonApi;
  4 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
4 import cn.iocoder.yudao.module.infra.service.logger.ApiErrorLogService; 5 import cn.iocoder.yudao.module.infra.service.logger.ApiErrorLogService;
5 import org.springframework.stereotype.Service; 6 import org.springframework.stereotype.Service;
6 import org.springframework.validation.annotation.Validated; 7 import org.springframework.validation.annotation.Validated;
@@ -14,7 +15,7 @@ import jakarta.annotation.Resource; @@ -14,7 +15,7 @@ import jakarta.annotation.Resource;
14 */ 15 */
15 @Service 16 @Service
16 @Validated 17 @Validated
17 -public class ApiErrorLogApiImpl implements ApiErrorLogApi { 18 +public class ApiErrorLogApiImpl implements ApiErrorLogCommonApi {
18 19
19 @Resource 20 @Resource
20 private ApiErrorLogService apiErrorLogService; 21 private ApiErrorLogService apiErrorLogService;
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogService.java
1 package cn.iocoder.yudao.module.infra.service.logger; 1 package cn.iocoder.yudao.module.infra.service.logger;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;  
5 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; 5 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
6 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; 6 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
7 7
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImpl.java
1 package cn.iocoder.yudao.module.infra.service.logger; 1 package cn.iocoder.yudao.module.infra.service.logger;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 5 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.framework.common.util.string.StrUtils; 6 import cn.iocoder.yudao.framework.common.util.string.StrUtils;
6 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; 7 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
7 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; 8 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
8 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;  
9 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; 9 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
10 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; 10 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
11 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper; 11 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper;
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogService.java
1 package cn.iocoder.yudao.module.infra.service.logger; 1 package cn.iocoder.yudao.module.infra.service.logger;
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.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; 4 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
5 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; 5 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
6 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; 6 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
7 7
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImpl.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 import cn.iocoder.yudao.framework.common.util.string.StrUtils; 5 import cn.iocoder.yudao.framework.common.util.string.StrUtils;
6 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; 6 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
7 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils; 7 import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
8 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; 8 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
9 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; 9 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
10 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; 10 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
11 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper; 11 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper;
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java
1 package cn.iocoder.yudao.module.infra.service.logger; 1 package cn.iocoder.yudao.module.infra.service.logger;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiAccessLogCreateReqDTO;
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; 5 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 7 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
7 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;  
8 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO; 8 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
9 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO; 9 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
10 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper; 10 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper;
  11 +import jakarta.annotation.Resource;
11 import org.junit.jupiter.api.Test; 12 import org.junit.jupiter.api.Test;
12 import org.springframework.context.annotation.Import; 13 import org.springframework.context.annotation.Import;
13 14
14 -import jakarta.annotation.Resource;  
15 import java.time.Duration; 15 import java.time.Duration;
16 import java.util.List; 16 import java.util.List;
17 17
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.infra.service.logger; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.infra.service.logger;
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
6 -import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO; 6 +import cn.iocoder.yudao.framework.common.biz.infra.logger.dto.ApiErrorLogCreateReqDTO;
7 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO; 7 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
8 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO; 8 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
9 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper; 9 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper;
yudao-module-iot/yudao-module-iot-biz/pom.xml
@@ -21,6 +21,11 @@ @@ -21,6 +21,11 @@
21 <dependencies> 21 <dependencies>
22 <dependency> 22 <dependency>
23 <groupId>cn.iocoder.boot</groupId> 23 <groupId>cn.iocoder.boot</groupId>
  24 + <artifactId>yudao-module-system-api</artifactId>
  25 + <version>${revision}</version>
  26 + </dependency>
  27 + <dependency>
  28 + <groupId>cn.iocoder.boot</groupId>
24 <artifactId>yudao-module-iot-api</artifactId> 29 <artifactId>yudao-module-iot-api</artifactId>
25 <version>${revision}</version> 30 <version>${revision}</version>
26 </dependency> 31 </dependency>
yudao-module-mall/yudao-module-promotion-biz/pom.xml
@@ -36,6 +36,16 @@ @@ -36,6 +36,16 @@
36 </dependency> 36 </dependency>
37 <dependency> 37 <dependency>
38 <groupId>cn.iocoder.boot</groupId> 38 <groupId>cn.iocoder.boot</groupId>
  39 + <artifactId>yudao-module-system-api</artifactId>
  40 + <version>${revision}</version>
  41 + </dependency>
  42 + <dependency>
  43 + <groupId>cn.iocoder.boot</groupId>
  44 + <artifactId>yudao-module-infra-api</artifactId>
  45 + <version>${revision}</version>
  46 + </dependency>
  47 + <dependency>
  48 + <groupId>cn.iocoder.boot</groupId>
39 <artifactId>yudao-module-member-api</artifactId> 49 <artifactId>yudao-module-member-api</artifactId>
40 <version>${revision}</version> 50 <version>${revision}</version>
41 </dependency> 51 </dependency>
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageRecordController.java
@@ -41,7 +41,7 @@ public class AppBrokerageRecordController { @@ -41,7 +41,7 @@ public class AppBrokerageRecordController {
41 PageResult<BrokerageRecordDO> pageResult = brokerageRecordService.getBrokerageRecordPage( 41 PageResult<BrokerageRecordDO> pageResult = brokerageRecordService.getBrokerageRecordPage(
42 BeanUtils.toBean(pageReqVO, BrokerageRecordPageReqVO.class).setUserId(getLoginUserId())); 42 BeanUtils.toBean(pageReqVO, BrokerageRecordPageReqVO.class).setUserId(getLoginUserId()));
43 return success(BeanUtils.toBean(pageResult, AppBrokerageRecordRespVO.class, recordVO -> 43 return success(BeanUtils.toBean(pageResult, AppBrokerageRecordRespVO.class, recordVO ->
44 - recordVO.setStatusName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.BROKERAGE_RECORD_STATUS, recordVO.getStatus())))); 44 + recordVO.setStatusName(DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.BROKERAGE_RECORD_STATUS, recordVO.getStatus()))));
45 } 45 }
46 46
47 @GetMapping("/get-product-brokerage-price") 47 @GetMapping("/get-product-brokerage-price")
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/brokerage/AppBrokerageWithdrawController.java
@@ -49,8 +49,8 @@ public class AppBrokerageWithdrawController { @@ -49,8 +49,8 @@ public class AppBrokerageWithdrawController {
49 PageResult<BrokerageWithdrawDO> pageResult = brokerageWithdrawService.getBrokerageWithdrawPage( 49 PageResult<BrokerageWithdrawDO> pageResult = brokerageWithdrawService.getBrokerageWithdrawPage(
50 BeanUtils.toBean(pageReqVO, BrokerageWithdrawPageReqVO.class).setUserId(getLoginUserId())); 50 BeanUtils.toBean(pageReqVO, BrokerageWithdrawPageReqVO.class).setUserId(getLoginUserId()));
51 return success(BeanUtils.toBean(pageResult, AppBrokerageWithdrawRespVO.class, withdrawVO -> 51 return success(BeanUtils.toBean(pageResult, AppBrokerageWithdrawRespVO.class, withdrawVO ->
52 - withdrawVO.setTypeName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.BROKERAGE_WITHDRAW_TYPE, withdrawVO.getType()))  
53 - .setStatusName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.BROKERAGE_WITHDRAW_STATUS, withdrawVO.getStatus())))); 52 + withdrawVO.setTypeName(DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.BROKERAGE_WITHDRAW_TYPE, withdrawVO.getType()))
  53 + .setStatusName(DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.BROKERAGE_WITHDRAW_STATUS, withdrawVO.getStatus()))));
54 } 54 }
55 55
56 @GetMapping("/get") 56 @GetMapping("/get")
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
@@ -178,7 +178,7 @@ public interface TradeOrderConvert { @@ -178,7 +178,7 @@ public interface TradeOrderConvert {
178 AppTradeOrderDetailRespVO orderVO = convert3(order, orderItems); 178 AppTradeOrderDetailRespVO orderVO = convert3(order, orderItems);
179 orderVO.setPayExpireTime(order.getCreateTime().plus(tradeOrderProperties.getPayExpireTime())); 179 orderVO.setPayExpireTime(order.getCreateTime().plus(tradeOrderProperties.getPayExpireTime()));
180 if (StrUtil.isNotEmpty(order.getPayChannelCode())) { 180 if (StrUtil.isNotEmpty(order.getPayChannelCode())) {
181 - orderVO.setPayChannelName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.CHANNEL_CODE, order.getPayChannelCode())); 181 + orderVO.setPayChannelName(DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.CHANNEL_CODE, order.getPayChannelCode()));
182 } 182 }
183 // 处理收货地址 183 // 处理收货地址
184 orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId())); 184 orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId()));
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/auth/AuthConvert.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.member.convert.auth; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.member.convert.auth;
3 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; 3 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*;
4 import cn.iocoder.yudao.module.member.controller.app.social.vo.AppSocialUserUnbindReqVO; 4 import cn.iocoder.yudao.module.member.controller.app.social.vo.AppSocialUserUnbindReqVO;
5 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserResetPasswordReqVO; 5 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppMemberUserResetPasswordReqVO;
6 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; 6 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenRespDTO;
7 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO; 7 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeSendReqDTO;
8 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO; 8 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
9 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeValidateReqDTO; 9 import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeValidateReqDTO;
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java
@@ -12,9 +12,9 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; @@ -12,9 +12,9 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
12 import cn.iocoder.yudao.module.member.service.user.MemberUserService; 12 import cn.iocoder.yudao.module.member.service.user.MemberUserService;
13 import cn.iocoder.yudao.module.system.api.logger.LoginLogApi; 13 import cn.iocoder.yudao.module.system.api.logger.LoginLogApi;
14 import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO; 14 import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
15 -import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;  
16 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO;  
17 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; 15 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
  16 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
  17 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenRespDTO;
18 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; 18 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
19 import cn.iocoder.yudao.module.system.api.social.SocialClientApi; 19 import cn.iocoder.yudao.module.system.api.social.SocialClientApi;
20 import cn.iocoder.yudao.module.system.api.social.SocialUserApi; 20 import cn.iocoder.yudao.module.system.api.social.SocialUserApi;
@@ -58,7 +58,7 @@ public class MemberAuthServiceImpl implements MemberAuthService { @@ -58,7 +58,7 @@ public class MemberAuthServiceImpl implements MemberAuthService {
58 @Resource 58 @Resource
59 private SocialClientApi socialClientApi; 59 private SocialClientApi socialClientApi;
60 @Resource 60 @Resource
61 - private OAuth2TokenApi oauth2TokenApi; 61 + private OAuth2TokenCommonApi oauth2TokenApi;
62 62
63 @Override 63 @Override
64 public AppAuthLoginRespVO login(AppAuthLoginReqVO reqVO) { 64 public AppAuthLoginRespVO login(AppAuthLoginReqVO reqVO) {
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceTest.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
8 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; 8 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
9 import cn.iocoder.yudao.module.member.service.user.MemberUserService; 9 import cn.iocoder.yudao.module.member.service.user.MemberUserService;
10 import cn.iocoder.yudao.module.system.api.logger.LoginLogApi; 10 import cn.iocoder.yudao.module.system.api.logger.LoginLogApi;
11 -import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi; 11 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
12 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; 12 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
13 import cn.iocoder.yudao.module.system.api.social.SocialUserApi; 13 import cn.iocoder.yudao.module.system.api.social.SocialUserApi;
14 import org.springframework.boot.test.mock.mockito.MockBean; 14 import org.springframework.boot.test.mock.mockito.MockBean;
@@ -43,7 +43,7 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest { @@ -43,7 +43,7 @@ public class MemberAuthServiceTest extends BaseDbAndRedisUnitTest {
43 @MockBean 43 @MockBean
44 private LoginLogApi loginLogApi; 44 private LoginLogApi loginLogApi;
45 @MockBean 45 @MockBean
46 - private OAuth2TokenApi oauth2TokenApi; 46 + private OAuth2TokenCommonApi oauth2TokenApi;
47 @MockBean 47 @MockBean
48 private SocialUserApi socialUserApi; 48 private SocialUserApi socialUserApi;
49 @MockBean 49 @MockBean
yudao-module-pay/yudao-module-pay-biz/pom.xml
@@ -20,6 +20,11 @@ @@ -20,6 +20,11 @@
20 <dependencies> 20 <dependencies>
21 <dependency> 21 <dependency>
22 <groupId>cn.iocoder.boot</groupId> 22 <groupId>cn.iocoder.boot</groupId>
  23 + <artifactId>yudao-module-system-api</artifactId>
  24 + <version>${revision}</version>
  25 + </dependency>
  26 + <dependency>
  27 + <groupId>cn.iocoder.boot</groupId>
23 <artifactId>yudao-module-pay-api</artifactId> 28 <artifactId>yudao-module-pay-api</artifactId>
24 <version>${revision}</version> 29 <version>${revision}</version>
25 </dependency> 30 </dependency>
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/convert/wallet/PayWalletRechargeConvert.java
@@ -32,7 +32,7 @@ public interface PayWalletRechargeConvert { @@ -32,7 +32,7 @@ public interface PayWalletRechargeConvert {
32 PageResult<AppPayWalletRechargeRespVO> voPageResult = BeanUtils.toBean(pageResult, AppPayWalletRechargeRespVO.class); 32 PageResult<AppPayWalletRechargeRespVO> voPageResult = BeanUtils.toBean(pageResult, AppPayWalletRechargeRespVO.class);
33 Map<Long, PayOrderDO> payOrderMap = CollectionUtils.convertMap(payOrderList, PayOrderDO::getId); 33 Map<Long, PayOrderDO> payOrderMap = CollectionUtils.convertMap(payOrderList, PayOrderDO::getId);
34 voPageResult.getList().forEach(recharge -> { 34 voPageResult.getList().forEach(recharge -> {
35 - recharge.setPayChannelName(DictFrameworkUtils.getDictDataLabel( 35 + recharge.setPayChannelName(DictFrameworkUtils.parseDictDataLabel(
36 DictTypeConstants.CHANNEL_CODE, recharge.getPayChannelCode())); 36 DictTypeConstants.CHANNEL_CODE, recharge.getPayChannelCode()));
37 MapUtils.findAndThen(payOrderMap, recharge.getPayOrderId(), 37 MapUtils.findAndThen(payOrderMap, recharge.getPayOrderId(),
38 order -> recharge.setPayOrderChannelOrderNo(order.getChannelOrderNo())); 38 order -> recharge.setPayOrderChannelOrderNo(order.getChannelOrderNo()));
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/jmreport/config/JmReportConfiguration.java
1 package cn.iocoder.yudao.module.report.framework.jmreport.config; 1 package cn.iocoder.yudao.module.report.framework.jmreport.config;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
3 import cn.iocoder.yudao.framework.security.config.SecurityProperties; 4 import cn.iocoder.yudao.framework.security.config.SecurityProperties;
4 import cn.iocoder.yudao.module.report.framework.jmreport.core.service.JmOnlDragExternalServiceImpl; 5 import cn.iocoder.yudao.module.report.framework.jmreport.core.service.JmOnlDragExternalServiceImpl;
5 import cn.iocoder.yudao.module.report.framework.jmreport.core.service.JmReportTokenServiceImpl; 6 import cn.iocoder.yudao.module.report.framework.jmreport.core.service.JmReportTokenServiceImpl;
6 -import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;  
7 import cn.iocoder.yudao.module.system.api.permission.PermissionApi; 7 import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
8 import org.jeecg.modules.jmreport.api.JmReportTokenServiceI; 8 import org.jeecg.modules.jmreport.api.JmReportTokenServiceI;
9 import org.springframework.context.annotation.Bean; 9 import org.springframework.context.annotation.Bean;
@@ -21,7 +21,7 @@ import org.springframework.context.annotation.Primary; @@ -21,7 +21,7 @@ import org.springframework.context.annotation.Primary;
21 public class JmReportConfiguration { 21 public class JmReportConfiguration {
22 22
23 @Bean 23 @Bean
24 - public JmReportTokenServiceI jmReportTokenService(OAuth2TokenApi oAuth2TokenApi, 24 + public JmReportTokenServiceI jmReportTokenService(OAuth2TokenCommonApi oAuth2TokenApi,
25 PermissionApi permissionApi, 25 PermissionApi permissionApi,
26 SecurityProperties securityProperties) { 26 SecurityProperties securityProperties) {
27 return new JmReportTokenServiceImpl(oAuth2TokenApi, permissionApi, securityProperties); 27 return new JmReportTokenServiceImpl(oAuth2TokenApi, permissionApi, securityProperties);
yudao-module-report/yudao-module-report-biz/src/main/java/cn/iocoder/yudao/module/report/framework/jmreport/core/service/JmReportTokenServiceImpl.java
@@ -9,8 +9,8 @@ import cn.iocoder.yudao.framework.security.core.LoginUser; @@ -9,8 +9,8 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
9 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; 9 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
10 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; 10 import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
11 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; 11 import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils;
12 -import cn.iocoder.yudao.module.system.api.oauth2.OAuth2TokenApi;  
13 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO; 12 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
  13 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
14 import cn.iocoder.yudao.module.system.api.permission.PermissionApi; 14 import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
15 import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; 15 import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
16 import jakarta.servlet.http.HttpServletRequest; 16 import jakarta.servlet.http.HttpServletRequest;
@@ -37,7 +37,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI { @@ -37,7 +37,7 @@ public class JmReportTokenServiceImpl implements JmReportTokenServiceI {
37 */ 37 */
38 private static final String AUTHORIZATION_FORMAT = SecurityFrameworkUtils.AUTHORIZATION_BEARER + " %s"; 38 private static final String AUTHORIZATION_FORMAT = SecurityFrameworkUtils.AUTHORIZATION_BEARER + " %s";
39 39
40 - private final OAuth2TokenApi oauth2TokenApi; 40 + private final OAuth2TokenCommonApi oauth2TokenApi;
41 private final PermissionApi permissionApi; 41 private final PermissionApi permissionApi;
42 42
43 private final SecurityProperties securityProperties; 43 private final SecurityProperties securityProperties;
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApi.java
1 package cn.iocoder.yudao.module.system.api.dict; 1 package cn.iocoder.yudao.module.system.api.dict;
2 2
3 -import cn.hutool.core.util.ObjUtil;  
4 -import cn.hutool.core.util.StrUtil;  
5 -import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; 3 +import cn.iocoder.yudao.framework.common.biz.system.dict.DictDataCommonApi;
6 4
7 import java.util.Collection; 5 import java.util.Collection;
8 -import java.util.List;  
9 -  
10 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;  
11 6
12 /** 7 /**
13 * 字典数据 API 接口 8 * 字典数据 API 接口
14 * 9 *
15 * @author 芋道源码 10 * @author 芋道源码
16 */ 11 */
17 -public interface DictDataApi { 12 +public interface DictDataApi extends DictDataCommonApi {
18 13
19 /** 14 /**
20 * 校验字典数据们是否有效。如下情况,视为无效: 15 * 校验字典数据们是否有效。如下情况,视为无效:
@@ -26,56 +21,4 @@ public interface DictDataApi { @@ -26,56 +21,4 @@ public interface DictDataApi {
26 */ 21 */
27 void validateDictDataList(String dictType, Collection<String> values); 22 void validateDictDataList(String dictType, Collection<String> values);
28 23
29 - /**  
30 - * 获得指定的字典数据,从缓存中  
31 - *  
32 - * @param type 字典类型  
33 - * @param value 字典数据值  
34 - * @return 字典数据  
35 - */  
36 - DictDataRespDTO getDictData(String type, String value);  
37 -  
38 - /**  
39 - * 获得指定的字典标签,从缓存中  
40 - *  
41 - * @param type 字典类型  
42 - * @param value 字典数据值  
43 - * @return 字典标签  
44 - */  
45 - default String getDictDataLabel(String type, Integer value) {  
46 - DictDataRespDTO dictData = getDictData(type, String.valueOf(value));  
47 - if (ObjUtil.isNull(dictData)) {  
48 - return StrUtil.EMPTY;  
49 - }  
50 - return dictData.getLabel();  
51 - }  
52 -  
53 - /**  
54 - * 解析获得指定的字典数据,从缓存中  
55 - *  
56 - * @param type 字典类型  
57 - * @param label 字典数据标签  
58 - * @return 字典数据  
59 - */  
60 - DictDataRespDTO parseDictData(String type, String label);  
61 -  
62 - /**  
63 - * 获得指定字典类型的字典数据列表  
64 - *  
65 - * @param dictType 字典类型  
66 - * @return 字典数据列表  
67 - */  
68 - List<DictDataRespDTO> getDictDataList(String dictType);  
69 -  
70 - /**  
71 - * 获得字典数据标签列表  
72 - *  
73 - * @param dictType 字典类型  
74 - * @return 字典数据标签列表  
75 - */  
76 - default List<String> getDictDataLabelList(String dictType) {  
77 - List<DictDataRespDTO> list = getDictDataList(dictType);  
78 - return convertList(list, DictDataRespDTO::getLabel);  
79 - }  
80 -  
81 } 24 }
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.java
1 package cn.iocoder.yudao.module.system.api.logger; 1 package cn.iocoder.yudao.module.system.api.logger;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.logger.OperateLogCommonApi;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;  
5 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO; 5 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO;
6 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogRespDTO; 6 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogRespDTO;
7 -import jakarta.validation.Valid;  
8 -import org.springframework.scheduling.annotation.Async;  
9 7
10 /** 8 /**
11 * 操作日志 API 接口 9 * 操作日志 API 接口
12 * 10 *
13 * @author 芋道源码 11 * @author 芋道源码
14 */ 12 */
15 -public interface OperateLogApi {  
16 -  
17 - /**  
18 - * 创建操作日志  
19 - *  
20 - * @param createReqDTO 请求  
21 - */  
22 - void createOperateLog(@Valid OperateLogCreateReqDTO createReqDTO);  
23 -  
24 - /**  
25 - * 【异步】创建操作日志  
26 - *  
27 - * @param createReqDTO 请求  
28 - */  
29 - @Async  
30 - default void createOperateLogAsync(OperateLogCreateReqDTO createReqDTO) {  
31 - createOperateLog(createReqDTO);  
32 - } 13 +public interface OperateLogApi extends OperateLogCommonApi {
33 14
34 /** 15 /**
35 * 获取指定模块的指定数据的操作日志分页 16 * 获取指定模块的指定数据的操作日志分页
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApi.java
1 package cn.iocoder.yudao.module.system.api.permission; 1 package cn.iocoder.yudao.module.system.api.permission;
2 2
3 -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; 3 +import cn.iocoder.yudao.framework.common.biz.system.permission.PermissionCommonApi;
4 4
5 import java.util.Collection; 5 import java.util.Collection;
6 import java.util.Set; 6 import java.util.Set;
@@ -10,7 +10,7 @@ import java.util.Set; @@ -10,7 +10,7 @@ import java.util.Set;
10 * 10 *
11 * @author 芋道源码 11 * @author 芋道源码
12 */ 12 */
13 -public interface PermissionApi { 13 +public interface PermissionApi extends PermissionCommonApi {
14 14
15 /** 15 /**
16 * 获得拥有多个角色的用户编号集合 16 * 获得拥有多个角色的用户编号集合
@@ -20,30 +20,4 @@ public interface PermissionApi { @@ -20,30 +20,4 @@ public interface PermissionApi {
20 */ 20 */
21 Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds); 21 Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds);
22 22
23 - /**  
24 - * 判断是否有权限,任一一个即可  
25 - *  
26 - * @param userId 用户编号  
27 - * @param permissions 权限  
28 - * @return 是否  
29 - */  
30 - boolean hasAnyPermissions(Long userId, String... permissions);  
31 -  
32 - /**  
33 - * 判断是否有角色,任一一个即可  
34 - *  
35 - * @param userId 用户编号  
36 - * @param roles 角色数组  
37 - * @return 是否  
38 - */  
39 - boolean hasAnyRoles(Long userId, String... roles);  
40 -  
41 - /**  
42 - * 获得登陆用户的部门数据权限  
43 - *  
44 - * @param userId 用户编号  
45 - * @return 部门数据权限  
46 - */  
47 - DeptDataPermissionRespDTO getDeptDataPermission(Long userId);  
48 -  
49 } 23 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/dict/DictDataApiImpl.java
1 package cn.iocoder.yudao.module.system.api.dict; 1 package cn.iocoder.yudao.module.system.api.dict;
2 2
3 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 3 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
4 -import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO; 4 +import cn.iocoder.yudao.framework.common.biz.system.dict.dto.DictDataRespDTO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictDataDO;
6 import cn.iocoder.yudao.module.system.service.dict.DictDataService; 6 import cn.iocoder.yudao.module.system.service.dict.DictDataService;
7 import jakarta.annotation.Resource; 7 import jakarta.annotation.Resource;
@@ -27,18 +27,6 @@ public class DictDataApiImpl implements DictDataApi { @@ -27,18 +27,6 @@ public class DictDataApiImpl implements DictDataApi {
27 } 27 }
28 28
29 @Override 29 @Override
30 - public DictDataRespDTO getDictData(String dictType, String value) {  
31 - DictDataDO dictData = dictDataService.getDictData(dictType, value);  
32 - return BeanUtils.toBean(dictData, DictDataRespDTO.class);  
33 - }  
34 -  
35 - @Override  
36 - public DictDataRespDTO parseDictData(String dictType, String label) {  
37 - DictDataDO dictData = dictDataService.parseDictData(dictType, label);  
38 - return BeanUtils.toBean(dictData, DictDataRespDTO.class);  
39 - }  
40 -  
41 - @Override  
42 public List<DictDataRespDTO> getDictDataList(String dictType) { 30 public List<DictDataRespDTO> getDictDataList(String dictType) {
43 List<DictDataDO> list = dictDataService.getDictDataListByDictType(dictType); 31 List<DictDataDO> list = dictDataService.getDictDataListByDictType(dictType);
44 return BeanUtils.toBean(list, DictDataRespDTO.class); 32 return BeanUtils.toBean(list, DictDataRespDTO.class);
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.api.logger; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.api.logger;
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.common.util.object.BeanUtils; 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 -import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; 5 +import cn.iocoder.yudao.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
6 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO; 6 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO;
7 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogRespDTO; 7 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogRespDTO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/oauth2/OAuth2TokenApiImpl.java
1 package cn.iocoder.yudao.module.system.api.oauth2; 1 package cn.iocoder.yudao.module.system.api.oauth2;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.OAuth2TokenCommonApi;
3 import cn.iocoder.yudao.framework.common.util.object.BeanUtils; 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
4 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCheckRespDTO;  
5 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenCreateReqDTO;  
6 -import cn.iocoder.yudao.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO; 5 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCheckRespDTO;
  6 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenCreateReqDTO;
  7 +import cn.iocoder.yudao.framework.common.biz.system.oauth2.dto.OAuth2AccessTokenRespDTO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.OAuth2AccessTokenDO;
8 import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService; 9 import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
9 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
@@ -16,7 +17,7 @@ import jakarta.annotation.Resource; @@ -16,7 +17,7 @@ import jakarta.annotation.Resource;
16 * @author 芋道源码 17 * @author 芋道源码
17 */ 18 */
18 @Service 19 @Service
19 -public class OAuth2TokenApiImpl implements OAuth2TokenApi { 20 +public class OAuth2TokenApiImpl implements OAuth2TokenCommonApi {
20 21
21 @Resource 22 @Resource
22 private OAuth2TokenService oauth2TokenService; 23 private OAuth2TokenService oauth2TokenService;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/permission/PermissionApiImpl.java
1 package cn.iocoder.yudao.module.system.api.permission; 1 package cn.iocoder.yudao.module.system.api.permission;
2 2
3 -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; 3 +import cn.iocoder.yudao.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
4 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 4 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
5 import org.springframework.stereotype.Service; 5 import org.springframework.stereotype.Service;
6 6
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/tenant/TenantApiImpl.java
1 package cn.iocoder.yudao.module.system.api.tenant; 1 package cn.iocoder.yudao.module.system.api.tenant;
2 2
  3 +import cn.iocoder.yudao.framework.common.biz.system.tenant.TenantCommonApi;
3 import cn.iocoder.yudao.module.system.service.tenant.TenantService; 4 import cn.iocoder.yudao.module.system.service.tenant.TenantService;
4 import org.springframework.stereotype.Service; 5 import org.springframework.stereotype.Service;
5 6
@@ -12,7 +13,7 @@ import java.util.List; @@ -12,7 +13,7 @@ import java.util.List;
12 * @author 芋道源码 13 * @author 芋道源码
13 */ 14 */
14 @Service 15 @Service
15 -public class TenantApiImpl implements TenantApi { 16 +public class TenantApiImpl implements TenantCommonApi {
16 17
17 @Resource 18 @Resource
18 private TenantService tenantService; 19 private TenantService tenantService;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/BooleanParseFunction.java
@@ -33,7 +33,7 @@ public class BooleanParseFunction implements IParseFunction { @@ -33,7 +33,7 @@ public class BooleanParseFunction implements IParseFunction {
33 if (StrUtil.isEmptyIfStr(value)) { 33 if (StrUtil.isEmptyIfStr(value)) {
34 return ""; 34 return "";
35 } 35 }
36 - return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.BOOLEAN_STRING, value.toString()); 36 + return DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.BOOLEAN_STRING, value.toString());
37 } 37 }
38 38
39 } 39 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/operatelog/core/SexParseFunction.java
@@ -33,7 +33,7 @@ public class SexParseFunction implements IParseFunction { @@ -33,7 +33,7 @@ public class SexParseFunction implements IParseFunction {
33 if (StrUtil.isEmptyIfStr(value)) { 33 if (StrUtil.isEmptyIfStr(value)) {
34 return ""; 34 return "";
35 } 35 }
36 - return DictFrameworkUtils.getDictDataLabel(DictTypeConstants.USER_SEX, value.toString()); 36 + return DictFrameworkUtils.parseDictDataLabel(DictTypeConstants.USER_SEX, value.toString());
37 } 37 }
38 38
39 } 39 }
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.java
1 package cn.iocoder.yudao.module.system.service.logger; 1 package cn.iocoder.yudao.module.system.service.logger;
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.module.system.api.logger.dto.OperateLogCreateReqDTO; 4 +import cn.iocoder.yudao.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
5 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO; 5 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO;
6 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.service.logger; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.service.logger;
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.common.util.object.BeanUtils; 4 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
5 -import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; 5 +import cn.iocoder.yudao.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
6 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO; 6 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO;
7 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java
1 package cn.iocoder.yudao.module.system.service.permission; 1 package cn.iocoder.yudao.module.system.service.permission;
2 2
3 -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; 3 +import cn.iocoder.yudao.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
4 4
5 import java.util.Collection; 5 import java.util.Collection;
6 import java.util.Set; 6 import java.util.Set;
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java
@@ -7,7 +7,7 @@ import cn.hutool.extra.spring.SpringUtil; @@ -7,7 +7,7 @@ import cn.hutool.extra.spring.SpringUtil;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; 9 import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission;
10 -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; 10 +import cn.iocoder.yudao.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
11 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 11 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
12 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; 12 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
13 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; 13 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO;
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.service.logger; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.service.logger;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 4 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
5 import cn.iocoder.yudao.framework.test.core.util.RandomUtils; 5 import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
6 -import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; 6 +import cn.iocoder.yudao.framework.common.biz.system.logger.dto.OperateLogCreateReqDTO;
7 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO; 7 import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogPageReqDTO;
8 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java
@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil; @@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.extra.spring.SpringUtil; 4 import cn.hutool.extra.spring.SpringUtil;
5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
7 -import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO; 7 +import cn.iocoder.yudao.framework.common.biz.system.permission.dto.DeptDataPermissionRespDTO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
10 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;