Commit ceef984d15c79a0f4aa8d14d6228365d28ec8afa

Authored by YunaiV
2 parents 4909342d 468dbc66

Merge remote-tracking branch 'origin/master'

Showing 267 changed files with 3571 additions and 2130 deletions

Too many changes.

To preserve performance only 100 of 267 files are displayed.

README.md
@@ -88,6 +88,9 @@ @@ -88,6 +88,9 @@
88 | `yudao-admin-ui` | 管理后台的 UI 界面 | 88 | `yudao-admin-ui` | 管理后台的 UI 界面 |
89 | `yudao-user-server` | 用户前台的服务端 | 89 | `yudao-user-server` | 用户前台的服务端 |
90 | `yudao-user-ui` | 用户前台的 UI 界面 | 90 | `yudao-user-ui` | 用户前台的 UI 界面 |
  91 +| `yudao-core-service` | 公共服务,提供共享逻辑 |
  92 +
  93 +> 友情提示:`yudao-admin-server` 和 `yudao-user-server` 会存在需要复用的逻辑,通过 `yudao-core-service` 实现。
91 94
92 ### 后端 95 ### 后端
93 96
http-client.env.json
1 { 1 {
2 "local": { 2 "local": {
3 "baseUrl": "http://127.0.0.1:48080/api", 3 "baseUrl": "http://127.0.0.1:48080/api",
  4 + "userServerUrl": "http://127.0.0.1:28080/api",
4 "token": "test1" 5 "token": "test1"
5 } 6 }
6 } 7 }
@@ -12,6 +12,7 @@ @@ -12,6 +12,7 @@
12 <module>yudao-framework</module> 12 <module>yudao-framework</module>
13 <module>yudao-admin-server</module> 13 <module>yudao-admin-server</module>
14 <module>yudao-user-server</module> 14 <module>yudao-user-server</module>
  15 + <module>yudao-core-service</module>
15 </modules> 16 </modules>
16 17
17 <name>${artifactId}</name> 18 <name>${artifactId}</name>
yudao-admin-server/pom.xml
@@ -20,6 +20,11 @@ @@ -20,6 +20,11 @@
20 <!-- 业务组件 --> 20 <!-- 业务组件 -->
21 <dependency> 21 <dependency>
22 <groupId>cn.iocoder.boot</groupId> 22 <groupId>cn.iocoder.boot</groupId>
  23 + <artifactId>yudao-core-service</artifactId>
  24 + </dependency>
  25 +
  26 + <dependency>
  27 + <groupId>cn.iocoder.boot</groupId>
23 <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId> 28 <artifactId>yudao-spring-boot-starter-biz-operatelog</artifactId>
24 </dependency> 29 </dependency>
25 <dependency> 30 <dependency>
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/AdminServerApplication.java
@@ -3,7 +3,8 @@ package cn.iocoder.yudao.adminserver; @@ -3,7 +3,8 @@ package cn.iocoder.yudao.adminserver;
3 import org.springframework.boot.SpringApplication; 3 import org.springframework.boot.SpringApplication;
4 import org.springframework.boot.autoconfigure.SpringBootApplication; 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
5 5
6 -@SpringBootApplication 6 +@SuppressWarnings("SpringComponentScan") // 忽略 IDEA 无法识别 ${yudao.info.base-package} 和 ${yudao.core-service.base-package}
  7 +@SpringBootApplication(scanBasePackages = {"${yudao.info.base-package}", "${yudao.core-service.base-package}"})
7 public class AdminServerApplication { 8 public class AdminServerApplication {
8 9
9 public static void main(String[] args) { 10 public static void main(String[] args) {
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/InfConfigController.java
1 package cn.iocoder.yudao.adminserver.modules.infra.controller.config; 1 package cn.iocoder.yudao.adminserver.modules.infra.controller.config;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
6 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.*; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.*;
8 import cn.iocoder.yudao.adminserver.modules.infra.convert.config.InfConfigConvert; 9 import cn.iocoder.yudao.adminserver.modules.infra.convert.config.InfConfigConvert;
9 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.config.InfConfigDO;  
10 import cn.iocoder.yudao.adminserver.modules.infra.service.config.InfConfigService; 10 import cn.iocoder.yudao.adminserver.modules.infra.service.config.InfConfigService;
11 import io.swagger.annotations.Api; 11 import io.swagger.annotations.Api;
12 import io.swagger.annotations.ApiImplicitParam; 12 import io.swagger.annotations.ApiImplicitParam;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/file/InfFileController.java
1 package cn.iocoder.yudao.adminserver.modules.infra.controller.file; 1 package cn.iocoder.yudao.adminserver.modules.infra.controller.file;
2 2
3 import cn.hutool.core.io.IoUtil; 3 import cn.hutool.core.io.IoUtil;
  4 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFileRespVO; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFileRespVO;
8 import cn.iocoder.yudao.adminserver.modules.infra.convert.file.InfFileConvert; 9 import cn.iocoder.yudao.adminserver.modules.infra.convert.file.InfFileConvert;
9 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.file.InfFileDO;  
10 import cn.iocoder.yudao.adminserver.modules.infra.service.file.InfFileService; 10 import cn.iocoder.yudao.adminserver.modules.infra.service.file.InfFileService;
11 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; 11 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
12 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/InfApiAccessLogController.java
1 package cn.iocoder.yudao.adminserver.modules.infra.controller.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.controller.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -9,7 +10,6 @@ import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccess @@ -9,7 +10,6 @@ import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccess
9 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO; 10 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO;
10 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogRespVO; 11 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogRespVO;
11 import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiAccessLogConvert; 12 import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiAccessLogConvert;
12 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;  
13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiAccessLogService; 13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiAccessLogService;
14 import io.swagger.annotations.Api; 14 import io.swagger.annotations.Api;
15 import io.swagger.annotations.ApiOperation; 15 import io.swagger.annotations.ApiOperation;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/InfApiErrorLogController.java
1 package cn.iocoder.yudao.adminserver.modules.infra.controller.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.controller.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -9,7 +10,6 @@ import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorl @@ -9,7 +10,6 @@ import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorl
9 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO; 10 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO;
10 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogRespVO; 11 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogRespVO;
11 import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiErrorLogConvert; 12 import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiErrorLogConvert;
12 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;  
13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiErrorLogService; 13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiErrorLogService;
14 import io.swagger.annotations.Api; 14 import io.swagger.annotations.Api;
15 import io.swagger.annotations.ApiImplicitParam; 15 import io.swagger.annotations.ApiImplicitParam;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/config/InfConfigConvert.java
1 package cn.iocoder.yudao.adminserver.modules.infra.convert.config; 1 package cn.iocoder.yudao.adminserver.modules.infra.convert.config;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO; 5 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO;
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExcelVO; 6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExcelVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigRespVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigRespVO;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.config.InfConfigDO;  
9 import org.mapstruct.Mapper; 9 import org.mapstruct.Mapper;
10 import org.mapstruct.factory.Mappers; 10 import org.mapstruct.factory.Mappers;
11 11
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/file/InfFileConvert.java
1 package cn.iocoder.yudao.adminserver.modules.infra.convert.file; 1 package cn.iocoder.yudao.adminserver.modules.infra.convert.file;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFileRespVO; 5 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFileRespVO;
5 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.file.InfFileDO;  
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.factory.Mappers; 7 import org.mapstruct.factory.Mappers;
8 8
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/logger/InfApiAccessLogConvert.java
1 package cn.iocoder.yudao.adminserver.modules.infra.convert.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.convert.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiAccessLogCreateDTO; 5 import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiAccessLogCreateDTO;
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExcelVO; 6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExcelVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogRespVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogRespVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;  
8 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
10 10
@@ -20,8 +20,6 @@ public interface InfApiAccessLogConvert { @@ -20,8 +20,6 @@ public interface InfApiAccessLogConvert {
20 20
21 InfApiAccessLogConvert INSTANCE = Mappers.getMapper(InfApiAccessLogConvert.class); 21 InfApiAccessLogConvert INSTANCE = Mappers.getMapper(InfApiAccessLogConvert.class);
22 22
23 - InfApiAccessLogDO convert(ApiAccessLogCreateDTO bean);  
24 -  
25 InfApiAccessLogRespVO convert(InfApiAccessLogDO bean); 23 InfApiAccessLogRespVO convert(InfApiAccessLogDO bean);
26 24
27 List<InfApiAccessLogRespVO> convertList(List<InfApiAccessLogDO> list); 25 List<InfApiAccessLogRespVO> convertList(List<InfApiAccessLogDO> list);
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/convert/logger/InfApiErrorLogConvert.java
1 package cn.iocoder.yudao.adminserver.modules.infra.convert.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.convert.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 -import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiErrorLogCreateDTO;  
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExcelVO; 5 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExcelVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogRespVO; 6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogRespVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;  
8 import org.mapstruct.Mapper; 7 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 8 import org.mapstruct.factory.Mappers;
10 9
@@ -20,8 +19,6 @@ public interface InfApiErrorLogConvert { @@ -20,8 +19,6 @@ public interface InfApiErrorLogConvert {
20 19
21 InfApiErrorLogConvert INSTANCE = Mappers.getMapper(InfApiErrorLogConvert.class); 20 InfApiErrorLogConvert INSTANCE = Mappers.getMapper(InfApiErrorLogConvert.class);
22 21
23 - InfApiErrorLogDO convert(ApiErrorLogCreateDTO bean);  
24 -  
25 InfApiErrorLogRespVO convert(InfApiErrorLogDO bean); 22 InfApiErrorLogRespVO convert(InfApiErrorLogDO bean);
26 23
27 PageResult<InfApiErrorLogRespVO> convertPage(PageResult<InfApiErrorLogDO> page); 24 PageResult<InfApiErrorLogRespVO> convertPage(PageResult<InfApiErrorLogDO> page);
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/config/InfConfigDO.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.config;  
2 -  
3 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
4 -import cn.iocoder.yudao.adminserver.modules.infra.enums.config.InfConfigTypeEnum;  
5 -import com.baomidou.mybatisplus.annotation.TableField;  
6 -import com.baomidou.mybatisplus.annotation.TableId;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.Data;  
9 -import lombok.EqualsAndHashCode;  
10 -import lombok.ToString;  
11 -  
12 -/**  
13 - * 参数配置表  
14 - *  
15 - * @author ruoyi  
16 - */  
17 -@TableName("inf_config")  
18 -@Data  
19 -@EqualsAndHashCode(callSuper = true)  
20 -@ToString(callSuper = true)  
21 -public class InfConfigDO extends BaseDO {  
22 -  
23 - /**  
24 - * 参数主键  
25 - */  
26 - @TableId  
27 - private Long id;  
28 - /**  
29 - * 参数分组  
30 - */  
31 - @TableField("`group`")  
32 - private String group;  
33 - /**  
34 - * 参数名称  
35 - */  
36 - private String name;  
37 - /**  
38 - * 参数键名  
39 - */  
40 - @TableField("`key`")  
41 - private String key;  
42 - /**  
43 - * 参数键值  
44 - */  
45 - private String value;  
46 - /**  
47 - * 参数类型  
48 - *  
49 - * 枚举 {@link InfConfigTypeEnum}  
50 - */  
51 - @TableField("`type`")  
52 - private Integer type;  
53 - /**  
54 - * 是否敏感  
55 - *  
56 - * 对于敏感配置,需要管理权限才能查看  
57 - */  
58 - @TableField("`sensitive`")  
59 - private Boolean sensitive;  
60 - /**  
61 - * 备注  
62 - */  
63 - private String remark;  
64 -  
65 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/dataobject/logger/InfApiErrorLogDO.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger;  
2 -  
3 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
4 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
5 -import cn.iocoder.yudao.adminserver.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum;  
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
7 -import com.baomidou.mybatisplus.annotation.TableName;  
8 -import lombok.*;  
9 -  
10 -import java.util.Date;  
11 -  
12 -/**  
13 - * API 异常数据  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@TableName("inf_api_error_log")  
18 -@Data  
19 -@EqualsAndHashCode(callSuper = true)  
20 -@ToString(callSuper = true)  
21 -@Builder  
22 -@NoArgsConstructor  
23 -@AllArgsConstructor  
24 -public class InfApiErrorLogDO extends BaseDO {  
25 -  
26 - /**  
27 - * 编号  
28 - */  
29 - private Long id;  
30 - /**  
31 - * 用户编号  
32 - */  
33 - private Long userId;  
34 - /**  
35 - * 链路追踪编号  
36 - *  
37 - * 一般来说,通过链路追踪编号,可以将访问日志,错误日志,链路追踪日志,logger 打印日志等,结合在一起,从而进行排错。  
38 - */  
39 - private String traceId;  
40 - /**  
41 - * 用户类型  
42 - *  
43 - * 枚举 {@link UserTypeEnum}  
44 - */  
45 - private Integer userType;  
46 - /**  
47 - * 应用名  
48 - *  
49 - * 目前读取 spring.application.name  
50 - */  
51 - private String applicationName;  
52 -  
53 - // ========== 请求相关字段 ==========  
54 -  
55 - /**  
56 - * 请求方法名  
57 - */  
58 - private String requestMethod;  
59 - /**  
60 - * 访问地址  
61 - */  
62 - private String requestUrl;  
63 - /**  
64 - * 请求参数  
65 - *  
66 - * query: Query String  
67 - * body: Quest Body  
68 - */  
69 - private String requestParams;  
70 - /**  
71 - * 用户 IP  
72 - */  
73 - private String userIp;  
74 - /**  
75 - * 浏览器 UA  
76 - */  
77 - private String userAgent;  
78 -  
79 - // ========== 异常相关字段 ==========  
80 -  
81 - /**  
82 - * 异常发生时间  
83 - */  
84 - private Date exceptionTime;  
85 - /**  
86 - * 异常名  
87 - *  
88 - * {@link Throwable#getClass()} 的类全名  
89 - */  
90 - private String exceptionName;  
91 - /**  
92 - * 异常导致的消息  
93 - *  
94 - * {@link cn.hutool.core.exceptions.ExceptionUtil#getMessage(Throwable)}  
95 - */  
96 - private String exceptionMessage;  
97 - /**  
98 - * 异常导致的根消息  
99 - *  
100 - * {@link cn.hutool.core.exceptions.ExceptionUtil#getRootCauseMessage(Throwable)}  
101 - */  
102 - private String exceptionRootCauseMessage;  
103 - /**  
104 - * 异常的栈轨迹  
105 - *  
106 - * {@link org.apache.commons.lang3.exception.ExceptionUtils#getStackTrace(Throwable)}  
107 - */  
108 - private String exceptionStackTrace;  
109 - /**  
110 - * 异常发生的类全名  
111 - *  
112 - * {@link StackTraceElement#getClassName()}  
113 - */  
114 - private String exceptionClassName;  
115 - /**  
116 - * 异常发生的类文件  
117 - *  
118 - * {@link StackTraceElement#getFileName()}  
119 - */  
120 - private String exceptionFileName;  
121 - /**  
122 - * 异常发生的方法名  
123 - *  
124 - * {@link StackTraceElement#getMethodName()}  
125 - */  
126 - private String exceptionMethodName;  
127 - /**  
128 - * 异常发生的方法所在行  
129 - *  
130 - * {@link StackTraceElement#getLineNumber()}  
131 - */  
132 - private Integer exceptionLineNumber;  
133 -  
134 - // ========== 处理相关字段 ==========  
135 -  
136 - /**  
137 - * 处理状态  
138 - *  
139 - * 枚举 {@link InfApiErrorLogProcessStatusEnum}  
140 - */  
141 - private Integer processStatus;  
142 - /**  
143 - * 处理时间  
144 - */  
145 - private Date processTime;  
146 - /**  
147 - * 处理用户编号  
148 - *  
149 - * 关联 {@link SysUserDO#getId()}  
150 - */  
151 - private Long processUserId;  
152 -  
153 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/config/InfConfigMapper.java
1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config; 1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExportReqVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExportReqVO;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigPageReqVO; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigPageReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.config.InfConfigDO;  
9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
10 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
11 11
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/file/InfFileMapper.java
1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.file; 1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.file;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.file.InfFileDO;  
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
10 @Mapper 10 @Mapper
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/logger/InfApiAccessLogMapper.java
1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO;
  4 +import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO;
  5 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 -import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;  
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 10
11 import java.util.List; 11 import java.util.List;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/dal/mysql/logger/InfApiErrorLogMapper.java
1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;  
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 10
11 import java.util.List; 11 import java.util.List;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/config/InfConfigService.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.config; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.config;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO; 5 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO;
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExportReqVO; 6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigPageReqVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigPageReqVO;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.config.InfConfigDO;  
9 9
10 import javax.validation.Valid; 10 import javax.validation.Valid;
11 import java.util.List; 11 import java.util.List;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/config/impl/InfConfigServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.config.impl; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.config.impl;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
3 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 4 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO;
@@ -8,7 +9,6 @@ import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfig @@ -8,7 +9,6 @@ import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfig
8 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO; 9 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO;
9 import cn.iocoder.yudao.adminserver.modules.infra.convert.config.InfConfigConvert; 10 import cn.iocoder.yudao.adminserver.modules.infra.convert.config.InfConfigConvert;
10 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config.InfConfigMapper; 11 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config.InfConfigMapper;
11 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.config.InfConfigDO;  
12 import cn.iocoder.yudao.adminserver.modules.infra.enums.config.InfConfigTypeEnum; 12 import cn.iocoder.yudao.adminserver.modules.infra.enums.config.InfConfigTypeEnum;
13 import cn.iocoder.yudao.adminserver.modules.infra.mq.producer.config.InfConfigProducer; 13 import cn.iocoder.yudao.adminserver.modules.infra.mq.producer.config.InfConfigProducer;
14 import cn.iocoder.yudao.adminserver.modules.infra.service.config.InfConfigService; 14 import cn.iocoder.yudao.adminserver.modules.infra.service.config.InfConfigService;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/file/InfFileService.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.file; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.file;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO;
5 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.file.InfFileDO;  
6 6
7 /** 7 /**
8 * 文件 Service 接口 8 * 文件 Service 接口
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/file/impl/InfFileServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.file.impl; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.file.impl;
2 2
3 import cn.hutool.core.io.FileTypeUtil; 3 import cn.hutool.core.io.FileTypeUtil;
  4 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.adminserver.modules.infra.framework.file.config.FileProperties; 6 import cn.iocoder.yudao.adminserver.modules.infra.framework.file.config.FileProperties;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.file.InfFileDO;  
8 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.file.InfFileMapper; 8 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.file.InfFileMapper;
9 import cn.iocoder.yudao.adminserver.modules.infra.service.file.InfFileService; 9 import cn.iocoder.yudao.adminserver.modules.infra.service.file.InfFileService;
10 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/logger/InfApiAccessLogService.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService;  
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiAccessLogDO; 5 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 7
9 import java.util.List; 8 import java.util.List;
10 9
@@ -13,7 +12,7 @@ import java.util.List; @@ -13,7 +12,7 @@ import java.util.List;
13 * 12 *
14 * @author 芋道源码 13 * @author 芋道源码
15 */ 14 */
16 -public interface InfApiAccessLogService extends ApiAccessLogFrameworkService { 15 +public interface InfApiAccessLogService {
17 16
18 /** 17 /**
19 * 获得 API 访问日志分页 18 * 获得 API 访问日志分页
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/logger/InfApiErrorLogService.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService;  
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiErrorLogDO; 5 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 7
9 import java.util.List; 8 import java.util.List;
10 9
@@ -13,7 +12,7 @@ import java.util.List; @@ -13,7 +12,7 @@ import java.util.List;
13 * 12 *
14 * @author 芋道源码 13 * @author 芋道源码
15 */ 14 */
16 -public interface InfApiErrorLogService extends ApiErrorLogFrameworkService { 15 +public interface InfApiErrorLogService {
17 16
18 /** 17 /**
19 * 获得 API 错误日志分页 18 * 获得 API 错误日志分页
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/logger/impl/InfApiAccessLogServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiAccessLogCreateDTO;  
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiAccessLogConvert;  
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;  
9 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiAccessLogMapper; 5 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiAccessLogMapper;
10 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiAccessLogService; 6 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiAccessLogService;
11 -import org.springframework.scheduling.annotation.Async;  
12 -import org.springframework.scheduling.annotation.AsyncResult; 7 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
14 import org.springframework.validation.annotation.Validated; 10 import org.springframework.validation.annotation.Validated;
15 11
16 import javax.annotation.Resource; 12 import javax.annotation.Resource;
17 import java.util.List; 13 import java.util.List;
18 -import java.util.concurrent.Future;  
19 14
20 /** 15 /**
21 * API 访问日志 Service 实现类 16 * API 访问日志 Service 实现类
@@ -30,14 +25,6 @@ public class InfApiAccessLogServiceImpl implements InfApiAccessLogService { @@ -30,14 +25,6 @@ public class InfApiAccessLogServiceImpl implements InfApiAccessLogService {
30 private InfApiAccessLogMapper apiAccessLogMapper; 25 private InfApiAccessLogMapper apiAccessLogMapper;
31 26
32 @Override 27 @Override
33 - @Async  
34 - public Future<Boolean> createApiAccessLogAsync(ApiAccessLogCreateDTO createDTO) {  
35 - InfApiAccessLogDO apiAccessLog = InfApiAccessLogConvert.INSTANCE.convert(createDTO);  
36 - int insert = apiAccessLogMapper.insert(apiAccessLog);  
37 - return new AsyncResult<>(insert > 1);  
38 - }  
39 -  
40 - @Override  
41 public PageResult<InfApiAccessLogDO> getApiAccessLogPage(InfApiAccessLogPageReqVO pageReqVO) { 28 public PageResult<InfApiAccessLogDO> getApiAccessLogPage(InfApiAccessLogPageReqVO pageReqVO) {
42 return apiAccessLogMapper.selectPage(pageReqVO); 29 return apiAccessLogMapper.selectPage(pageReqVO);
43 } 30 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/service/logger/impl/InfApiErrorLogServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiErrorLogCreateDTO;  
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.infra.convert.logger.InfApiErrorLogConvert;  
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;  
9 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiErrorLogMapper; 5 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiErrorLogMapper;
10 import cn.iocoder.yudao.adminserver.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum; 6 import cn.iocoder.yudao.adminserver.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum;
11 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiErrorLogService; 7 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.InfApiErrorLogService;
12 -import org.springframework.scheduling.annotation.Async;  
13 -import org.springframework.scheduling.annotation.AsyncResult; 8 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
  9 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
15 import org.springframework.validation.annotation.Validated; 11 import org.springframework.validation.annotation.Validated;
16 12
17 import javax.annotation.Resource; 13 import javax.annotation.Resource;
18 import java.util.Date; 14 import java.util.Date;
19 import java.util.List; 15 import java.util.List;
20 -import java.util.concurrent.Future;  
21 16
22 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
23 import static cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants.API_ERROR_LOG_NOT_FOUND; 17 import static cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants.API_ERROR_LOG_NOT_FOUND;
24 import static cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants.API_ERROR_LOG_PROCESSED; 18 import static cn.iocoder.yudao.adminserver.modules.infra.enums.InfErrorCodeConstants.API_ERROR_LOG_PROCESSED;
  19 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
25 20
26 /** 21 /**
27 * API 错误日志 Service 实现类 22 * API 错误日志 Service 实现类
@@ -36,15 +31,6 @@ public class InfApiErrorLogServiceImpl implements InfApiErrorLogService { @@ -36,15 +31,6 @@ public class InfApiErrorLogServiceImpl implements InfApiErrorLogService {
36 private InfApiErrorLogMapper apiErrorLogMapper; 31 private InfApiErrorLogMapper apiErrorLogMapper;
37 32
38 @Override 33 @Override
39 - @Async  
40 - public Future<Boolean> createApiErrorLogAsync(ApiErrorLogCreateDTO createDTO) {  
41 - InfApiErrorLogDO apiErrorLog = InfApiErrorLogConvert.INSTANCE.convert(createDTO);  
42 - apiErrorLog.setProcessStatus(InfApiErrorLogProcessStatusEnum.INIT.getStatus());  
43 - int insert = apiErrorLogMapper.insert(apiErrorLog);  
44 - return new AsyncResult<>(insert == 1);  
45 - }  
46 -  
47 - @Override  
48 public PageResult<InfApiErrorLogDO> getApiErrorLogPage(InfApiErrorLogPageReqVO pageReqVO) { 34 public PageResult<InfApiErrorLogDO> getApiErrorLogPage(InfApiErrorLogPageReqVO pageReqVO) {
49 return apiErrorLogMapper.selectPage(pageReqVO); 35 return apiErrorLogMapper.selectPage(pageReqVO);
50 } 36 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/SysAuthController.java
@@ -4,13 +4,13 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.*; @@ -4,13 +4,13 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.*;
4 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysAuthConvert; 4 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysAuthConvert;
5 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO; 5 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;
6 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO; 6 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
8 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.MenuTypeEnum; 7 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.MenuTypeEnum;
9 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysAuthService; 8 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysAuthService;
10 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService; 9 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
11 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService; 10 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService;
12 import cn.iocoder.yudao.adminserver.modules.system.service.social.SysSocialService; 11 import cn.iocoder.yudao.adminserver.modules.system.service.social.SysSocialService;
13 -import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 12 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  13 +import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
15 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 15 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
16 import cn.iocoder.yudao.framework.common.util.collection.SetUtils; 16 import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
@@ -43,7 +43,7 @@ public class SysAuthController { @@ -43,7 +43,7 @@ public class SysAuthController {
43 @Resource 43 @Resource
44 private SysAuthService authService; 44 private SysAuthService authService;
45 @Resource 45 @Resource
46 - private SysUserService userService; 46 + private SysUserCoreService userCoreService;
47 @Resource 47 @Resource
48 private SysRoleService roleService; 48 private SysRoleService roleService;
49 @Resource 49 @Resource
@@ -64,7 +64,7 @@ public class SysAuthController { @@ -64,7 +64,7 @@ public class SysAuthController {
64 @ApiOperation("获取登录用户的权限信息") 64 @ApiOperation("获取登录用户的权限信息")
65 public CommonResult<SysAuthPermissionInfoRespVO> getPermissionInfo() { 65 public CommonResult<SysAuthPermissionInfoRespVO> getPermissionInfo() {
66 // 获得用户信息 66 // 获得用户信息
67 - SysUserDO user = userService.getUser(getLoginUserId()); 67 + SysUserDO user = userCoreService.getUser(getLoginUserId());
68 if (user == null) { 68 if (user == null) {
69 return null; 69 return null;
70 } 70 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/auth/SysUserSessionController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.auth; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.auth;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageItemRespVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageItemRespVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;
7 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysUserSessionConvert; 5 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysUserSessionConvert;
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSessionDO;  
9 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; 6 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
10 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
11 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService; 7 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService;
12 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService; 8 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
13 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 9 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  10 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
  11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  12 +import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
  13 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  14 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 15 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
15 import io.swagger.annotations.Api; 16 import io.swagger.annotations.Api;
16 import io.swagger.annotations.ApiImplicitParam; 17 import io.swagger.annotations.ApiImplicitParam;
@@ -35,6 +36,8 @@ public class SysUserSessionController { @@ -35,6 +36,8 @@ public class SysUserSessionController {
35 @Resource 36 @Resource
36 private SysUserSessionService userSessionService; 37 private SysUserSessionService userSessionService;
37 @Resource 38 @Resource
  39 + private SysUserSessionCoreService userSessionCoreService;
  40 + @Resource
38 private SysUserService userService; 41 private SysUserService userService;
39 @Resource 42 @Resource
40 private SysDeptService deptService; 43 private SysDeptService deptService;
@@ -72,7 +75,7 @@ public class SysUserSessionController { @@ -72,7 +75,7 @@ public class SysUserSessionController {
72 example = "fe50b9f6-d177-44b1-8da9-72ea34f63db7") 75 example = "fe50b9f6-d177-44b1-8da9-72ea34f63db7")
73 @PreAuthorize("@ss.hasPermission('system:user-session:delete')") 76 @PreAuthorize("@ss.hasPermission('system:user-session:delete')")
74 public CommonResult<Boolean> deleteUserSession(@RequestParam("id") String id) { 77 public CommonResult<Boolean> deleteUserSession(@RequestParam("id") String id) {
75 - userSessionService.deleteUserSession(id); 78 + userSessionCoreService.deleteUserSession(id);
76 return success(true); 79 return success(true);
77 } 80 }
78 81
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/dict/SysDictDataController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.dict; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.dict;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
6 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.*; 8 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.*;
8 import cn.iocoder.yudao.adminserver.modules.system.convert.dict.SysDictDataConvert; 9 import cn.iocoder.yudao.adminserver.modules.system.convert.dict.SysDictDataConvert;
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictDataDO;  
10 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService; 10 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;
11 import io.swagger.annotations.Api; 11 import io.swagger.annotations.Api;
12 import io.swagger.annotations.ApiImplicitParam; 12 import io.swagger.annotations.ApiImplicitParam;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/logger/SysLoginLogController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.logger; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -9,7 +10,6 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog @@ -9,7 +10,6 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog
9 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO; 10 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;
10 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogRespVO; 11 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogRespVO;
11 import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysLoginLogConvert; 12 import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysLoginLogConvert;
12 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysLoginLogDO;  
13 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService; 13 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService;
14 import io.swagger.annotations.Api; 14 import io.swagger.annotations.Api;
15 import io.swagger.annotations.ApiOperation; 15 import io.swagger.annotations.ApiOperation;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/logger/SysOperateLogController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.logger; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.logger;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;  
6 -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;  
7 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO;
8 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;
10 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO;
11 import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysOperateLogConvert; 7 import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysOperateLogConvert;
12 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO;
13 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
14 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysOperateLogService; 9 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysOperateLogService;
15 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 10 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  12 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  13 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
16 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 14 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
17 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 15 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  16 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  17 +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
18 import io.swagger.annotations.Api; 18 import io.swagger.annotations.Api;
19 import io.swagger.annotations.ApiOperation; 19 import io.swagger.annotations.ApiOperation;
20 import org.springframework.security.access.prepost.PreAuthorize; 20 import org.springframework.security.access.prepost.PreAuthorize;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/logger/vo/loginlog/SysLoginLogCreateReqVO.java deleted
1 -package cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog;  
2 -  
3 -import io.swagger.annotations.ApiModel;  
4 -import lombok.Data;  
5 -import lombok.EqualsAndHashCode;  
6 -import lombok.ToString;  
7 -  
8 -@ApiModel(value = "登录日志创建 Request VO",  
9 - description = "暂时提供给前端,仅仅后端记录登录日志时,进行使用")  
10 -@Data  
11 -@EqualsAndHashCode(callSuper = true)  
12 -@ToString(callSuper = true)  
13 -public class SysLoginLogCreateReqVO extends SysLoginLogBaseVO {  
14 -}  
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/sms/SmsCallbackController.java
@@ -2,10 +2,10 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.sms; @@ -2,10 +2,10 @@ package cn.iocoder.yudao.adminserver.modules.system.controller.sms;
2 2
3 import cn.hutool.core.util.URLUtil; 3 import cn.hutool.core.util.URLUtil;
4 import cn.hutool.extra.servlet.ServletUtil; 4 import cn.hutool.extra.servlet.ServletUtil;
  5 +import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
7 import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum; 8 import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
8 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsService;  
9 import io.swagger.annotations.Api; 9 import io.swagger.annotations.Api;
10 import io.swagger.annotations.ApiImplicitParam; 10 import io.swagger.annotations.ApiImplicitParam;
11 import io.swagger.annotations.ApiOperation; 11 import io.swagger.annotations.ApiOperation;
@@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25 public class SmsCallbackController { 25 public class SmsCallbackController {
26 26
27 @Resource 27 @Resource
28 - private SysSmsService smsService; 28 + private SysSmsCoreService smsCoreService;
29 29
30 @PostMapping("/sms/yunpian") 30 @PostMapping("/sms/yunpian")
31 @ApiOperation(value = "云片短信的回调", notes = "参见 https://www.yunpian.com/official/document/sms/zh_cn/domestic_push_report 文档") 31 @ApiOperation(value = "云片短信的回调", notes = "参见 https://www.yunpian.com/official/document/sms/zh_cn/domestic_push_report 文档")
@@ -33,7 +33,7 @@ public class SmsCallbackController { @@ -33,7 +33,7 @@ public class SmsCallbackController {
33 @OperateLog(enable = false) 33 @OperateLog(enable = false)
34 public String receiveYunpianSmsStatus(@RequestParam("sms_status") String smsStatus) throws Throwable { 34 public String receiveYunpianSmsStatus(@RequestParam("sms_status") String smsStatus) throws Throwable {
35 String text = URLUtil.decode(smsStatus); // decode 解码参数,因为它被 encode 35 String text = URLUtil.decode(smsStatus); // decode 解码参数,因为它被 encode
36 - smsService.receiveSmsStatus(SmsChannelEnum.YUN_PIAN.getCode(), text); 36 + smsCoreService.receiveSmsStatus(SmsChannelEnum.YUN_PIAN.getCode(), text);
37 return "SUCCESS"; // 约定返回 SUCCESS 为成功 37 return "SUCCESS"; // 约定返回 SUCCESS 为成功
38 } 38 }
39 39
@@ -42,7 +42,7 @@ public class SmsCallbackController { @@ -42,7 +42,7 @@ public class SmsCallbackController {
42 @OperateLog(enable = false) 42 @OperateLog(enable = false)
43 public CommonResult<Boolean> receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable { 43 public CommonResult<Boolean> receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable {
44 String text = ServletUtil.getBody(request); 44 String text = ServletUtil.getBody(request);
45 - smsService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text); 45 + smsCoreService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text);
46 return success(true); 46 return success(true);
47 } 47 }
48 48
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/sms/SysSmsChannelController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.sms;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.*; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.*;
6 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsChannelConvert; 4 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsChannelConvert;
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
8 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsChannelService; 5 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsChannelService;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;
  7 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import io.swagger.annotations.Api; 9 import io.swagger.annotations.Api;
10 import io.swagger.annotations.ApiImplicitParam; 10 import io.swagger.annotations.ApiImplicitParam;
11 import io.swagger.annotations.ApiOperation; 11 import io.swagger.annotations.ApiOperation;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/sms/SysSmsLogController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.sms;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;  
6 -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;  
7 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExcelVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExcelVO;
8 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO;
10 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogRespVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogRespVO;
11 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsLogConvert; 7 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsLogConvert;
12 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsLogDO;  
13 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsLogService; 8 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsLogService;
  9 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;
  10 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  11 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  12 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  13 +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
14 import io.swagger.annotations.Api; 14 import io.swagger.annotations.Api;
15 import io.swagger.annotations.ApiOperation; 15 import io.swagger.annotations.ApiOperation;
16 import org.springframework.security.access.prepost.PreAuthorize; 16 import org.springframework.security.access.prepost.PreAuthorize;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/sms/SysSmsTemplateController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.sms;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.*;
  4 +import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsTemplateConvert;
  5 +import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsTemplateService;
  6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
  7 +import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 8 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 10 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
6 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 11 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.*;  
8 -import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsTemplateConvert;  
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
10 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsService;  
11 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsTemplateService;  
12 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
13 import io.swagger.annotations.ApiImplicitParam; 13 import io.swagger.annotations.ApiImplicitParam;
14 import io.swagger.annotations.ApiOperation; 14 import io.swagger.annotations.ApiOperation;
@@ -32,7 +32,7 @@ public class SysSmsTemplateController { @@ -32,7 +32,7 @@ public class SysSmsTemplateController {
32 @Resource 32 @Resource
33 private SysSmsTemplateService smsTemplateService; 33 private SysSmsTemplateService smsTemplateService;
34 @Resource 34 @Resource
35 - private SysSmsService smsService; 35 + private SysSmsCoreService smsCoreService;
36 36
37 @PostMapping("/create") 37 @PostMapping("/create")
38 @ApiOperation("创建短信模板") 38 @ApiOperation("创建短信模板")
@@ -91,7 +91,7 @@ public class SysSmsTemplateController { @@ -91,7 +91,7 @@ public class SysSmsTemplateController {
91 @ApiOperation("发送短信") 91 @ApiOperation("发送短信")
92 @PreAuthorize("@ss.hasPermission('system:sms-template:send-sms')") 92 @PreAuthorize("@ss.hasPermission('system:sms-template:send-sms')")
93 public CommonResult<Long> sendSms(@Valid @RequestBody SysSmsTemplateSendReqVO sendReqVO) { 93 public CommonResult<Long> sendSms(@Valid @RequestBody SysSmsTemplateSendReqVO sendReqVO) {
94 - return success(smsService.sendSingleSms(sendReqVO.getMobile(), null, null, 94 + return success(smsCoreService.sendSingleSms(sendReqVO.getMobile(), null, null,
95 sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); 95 sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams()));
96 } 96 }
97 97
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/SysUserController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.user; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.user;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
5 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;  
8 -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;  
9 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;
10 import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert; 5 import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert;
11 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; 6 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
12 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
13 -import cn.iocoder.yudao.adminserver.modules.system.enums.common.SysSexEnum;  
14 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService; 7 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
15 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 8 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  9 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  10 +import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;
  11 +import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
  12 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  13 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  14 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
16 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 15 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
17 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 16 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  17 +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
  18 +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
18 import io.swagger.annotations.Api; 19 import io.swagger.annotations.Api;
19 import io.swagger.annotations.ApiImplicitParam; 20 import io.swagger.annotations.ApiImplicitParam;
20 import io.swagger.annotations.ApiImplicitParams; 21 import io.swagger.annotations.ApiImplicitParams;
@@ -42,6 +43,8 @@ public class SysUserController { @@ -42,6 +43,8 @@ public class SysUserController {
42 @Resource 43 @Resource
43 private SysUserService userService; 44 private SysUserService userService;
44 @Resource 45 @Resource
  46 + private SysUserCoreService userCoreService;
  47 + @Resource
45 private SysDeptService deptService; 48 private SysDeptService deptService;
46 49
47 @PostMapping("/create") 50 @PostMapping("/create")
@@ -113,7 +116,7 @@ public class SysUserController { @@ -113,7 +116,7 @@ public class SysUserController {
113 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) 116 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
114 @PreAuthorize("@ss.hasPermission('system:user:query')") 117 @PreAuthorize("@ss.hasPermission('system:user:query')")
115 public CommonResult<SysUserRespVO> getInfo(@RequestParam("id") Long id) { 118 public CommonResult<SysUserRespVO> getInfo(@RequestParam("id") Long id) {
116 - return success(SysUserConvert.INSTANCE.convert(userService.getUser(id))); 119 + return success(SysUserConvert.INSTANCE.convert(userCoreService.getUser(id)));
117 } 120 }
118 121
119 @GetMapping("/export") 122 @GetMapping("/export")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/SysUserProfileController.java
1 package cn.iocoder.yudao.adminserver.modules.system.controller.user; 1 package cn.iocoder.yudao.adminserver.modules.system.controller.user;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social.SysSocialUserDO;  
5 -import cn.iocoder.yudao.adminserver.modules.system.service.social.SysSocialService;  
6 -import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;  
7 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
8 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileRespVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileRespVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;
10 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;
@@ -12,12 +8,17 @@ import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert; @@ -12,12 +8,17 @@ import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert;
12 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
13 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO; 9 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
14 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO; 10 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
15 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO; 11 +import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social.SysSocialUserDO;
16 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService; 12 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
17 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService; 13 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;
18 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService; 14 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
19 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService; 15 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysRoleService;
  16 +import cn.iocoder.yudao.adminserver.modules.system.service.social.SysSocialService;
20 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 17 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  18 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  19 +import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
  20 +import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
  21 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
21 import io.swagger.annotations.Api; 22 import io.swagger.annotations.Api;
22 import io.swagger.annotations.ApiOperation; 23 import io.swagger.annotations.ApiOperation;
23 import lombok.extern.slf4j.Slf4j; 24 import lombok.extern.slf4j.Slf4j;
@@ -30,13 +31,10 @@ import javax.validation.Valid; @@ -30,13 +31,10 @@ import javax.validation.Valid;
30 import java.io.IOException; 31 import java.io.IOException;
31 import java.util.List; 32 import java.util.List;
32 33
  34 +import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.FILE_IS_EMPTY;
33 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 35 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
34 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; 36 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
35 -import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.FILE_IS_EMPTY;  
36 37
37 -/**  
38 - * @author niudehua  
39 - */  
40 @Api(tags = "用户个人中心") 38 @Api(tags = "用户个人中心")
41 @RestController 39 @RestController
42 @RequestMapping("/system/user/profile") 40 @RequestMapping("/system/user/profile")
@@ -47,6 +45,8 @@ public class SysUserProfileController { @@ -47,6 +45,8 @@ public class SysUserProfileController {
47 @Resource 45 @Resource
48 private SysUserService userService; 46 private SysUserService userService;
49 @Resource 47 @Resource
  48 + private SysUserCoreService userCoreService;
  49 + @Resource
50 private SysDeptService deptService; 50 private SysDeptService deptService;
51 @Resource 51 @Resource
52 private SysPostService postService; 52 private SysPostService postService;
@@ -61,7 +61,7 @@ public class SysUserProfileController { @@ -61,7 +61,7 @@ public class SysUserProfileController {
61 @ApiOperation("获得登录用户信息") 61 @ApiOperation("获得登录用户信息")
62 public CommonResult<SysUserProfileRespVO> profile() { 62 public CommonResult<SysUserProfileRespVO> profile() {
63 // 获得用户基本信息 63 // 获得用户基本信息
64 - SysUserDO user = userService.getUser(getLoginUserId()); 64 + SysUserDO user = userCoreService.getUser(getLoginUserId());
65 SysUserProfileRespVO resp = SysUserConvert.INSTANCE.convert03(user); 65 SysUserProfileRespVO resp = SysUserConvert.INSTANCE.convert03(user);
66 // 获得用户角色 66 // 获得用户角色
67 List<SysRoleDO> userRoles = roleService.getRolesFromCache(permissionService.listUserRoleIs(user.getId())); 67 List<SysRoleDO> userRoles = roleService.getRolesFromCache(permissionService.listUserRoleIs(user.getId()));
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/controller/user/vo/user/SysUserImportExcelVO.java
@@ -8,6 +8,7 @@ import lombok.AllArgsConstructor; @@ -8,6 +8,7 @@ import lombok.AllArgsConstructor;
8 import lombok.Builder; 8 import lombok.Builder;
9 import lombok.Data; 9 import lombok.Data;
10 import lombok.NoArgsConstructor; 10 import lombok.NoArgsConstructor;
  11 +import lombok.experimental.Accessors;
11 12
12 /** 13 /**
13 * 用户 Excel 导入 VO 14 * 用户 Excel 导入 VO
@@ -16,6 +17,7 @@ import lombok.NoArgsConstructor; @@ -16,6 +17,7 @@ import lombok.NoArgsConstructor;
16 @Builder 17 @Builder
17 @AllArgsConstructor 18 @AllArgsConstructor
18 @NoArgsConstructor 19 @NoArgsConstructor
  20 +@Accessors(chain = false) // 设置 chain = false,避免用户导入有问题
19 public class SysUserImportExcelVO { 21 public class SysUserImportExcelVO {
20 22
21 @ExcelProperty("登录名称") 23 @ExcelProperty("登录名称")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/auth/SysAuthConvert.java
@@ -2,17 +2,13 @@ package cn.iocoder.yudao.adminserver.modules.system.convert.auth; @@ -2,17 +2,13 @@ package cn.iocoder.yudao.adminserver.modules.system.convert.auth;
2 2
3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthMenuRespVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthMenuRespVO;
4 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthPermissionInfoRespVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthPermissionInfoRespVO;
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLogin2ReqVO;  
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLoginReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;  
9 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO; 5 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysMenuDO;
10 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO; 6 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
11 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
12 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.MenuIdEnum; 7 import cn.iocoder.yudao.adminserver.modules.system.enums.permission.MenuIdEnum;
  8 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  9 +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
13 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
14 import cn.iocoder.yudao.framework.security.core.LoginUser; 11 import cn.iocoder.yudao.framework.security.core.LoginUser;
15 -import me.zhyd.oauth.model.AuthCallback;  
16 import org.mapstruct.Mapper; 12 import org.mapstruct.Mapper;
17 import org.mapstruct.Mapping; 13 import org.mapstruct.Mapping;
18 import org.mapstruct.factory.Mappers; 14 import org.mapstruct.factory.Mappers;
@@ -25,9 +21,13 @@ public interface SysAuthConvert { @@ -25,9 +21,13 @@ public interface SysAuthConvert {
25 21
26 SysAuthConvert INSTANCE = Mappers.getMapper(SysAuthConvert.class); 22 SysAuthConvert INSTANCE = Mappers.getMapper(SysAuthConvert.class);
27 23
28 - @Mapping(source = "updateTime", target = "updateTime", ignore = true)  
29 - // 字段相同,但是含义不同,忽略  
30 - LoginUser convert(SysUserDO bean); 24 + @Mapping(source = "updateTime", target = "updateTime", ignore = true) // 字段相同,但是含义不同,忽略
  25 + LoginUser convert0(SysUserDO bean);
  26 +
  27 + default LoginUser convert(SysUserDO bean) {
  28 + // 目的,为了设置 UserTypeEnum.ADMIN.getValue()
  29 + return convert0(bean).setUserType(UserTypeEnum.ADMIN.getValue());
  30 + }
31 31
32 default SysAuthPermissionInfoRespVO convert(SysUserDO user, List<SysRoleDO> roleList, List<SysMenuDO> menuList) { 32 default SysAuthPermissionInfoRespVO convert(SysUserDO user, List<SysRoleDO> roleList, List<SysMenuDO> menuList) {
33 return SysAuthPermissionInfoRespVO.builder() 33 return SysAuthPermissionInfoRespVO.builder()
@@ -39,10 +39,6 @@ public interface SysAuthConvert { @@ -39,10 +39,6 @@ public interface SysAuthConvert {
39 39
40 SysAuthMenuRespVO convertTreeNode(SysMenuDO menu); 40 SysAuthMenuRespVO convertTreeNode(SysMenuDO menu);
41 41
42 - LoginUser convert(SysUserProfileUpdateReqVO reqVO);  
43 -  
44 - LoginUser convert(SysUserProfileUpdatePasswordReqVO reqVO);  
45 -  
46 /** 42 /**
47 * 将菜单列表,构建成菜单树 43 * 将菜单列表,构建成菜单树
48 * 44 *
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/auth/SysUserSessionConvert.java
1 package cn.iocoder.yudao.adminserver.modules.system.convert.auth; 1 package cn.iocoder.yudao.adminserver.modules.system.convert.auth;
2 2
3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageItemRespVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageItemRespVO;
4 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSessionDO; 4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
5 import org.mapstruct.Mapper; 5 import org.mapstruct.Mapper;
6 import org.mapstruct.factory.Mappers; 6 import org.mapstruct.factory.Mappers;
7 7
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/dict/SysDictDataConvert.java
1 package cn.iocoder.yudao.adminserver.modules.system.convert.dict; 1 package cn.iocoder.yudao.adminserver.modules.system.convert.dict;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.*;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO; 6 import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;
5 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.*;  
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictDataDO;  
7 import org.mapstruct.Mapper; 7 import org.mapstruct.Mapper;
8 import org.mapstruct.factory.Mappers; 8 import org.mapstruct.factory.Mappers;
9 9
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/logger/SysLoginLogConvert.java
1 package cn.iocoder.yudao.adminserver.modules.system.convert.logger; 1 package cn.iocoder.yudao.adminserver.modules.system.convert.logger;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExcelVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExcelVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogRespVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogRespVO;
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysLoginLogDO; 5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import org.mapstruct.Mapper; 7 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 8 import org.mapstruct.factory.Mappers;
10 9
@@ -15,8 +14,6 @@ public interface SysLoginLogConvert { @@ -15,8 +14,6 @@ public interface SysLoginLogConvert {
15 14
16 SysLoginLogConvert INSTANCE = Mappers.getMapper(SysLoginLogConvert.class); 15 SysLoginLogConvert INSTANCE = Mappers.getMapper(SysLoginLogConvert.class);
17 16
18 - SysLoginLogDO convert(SysLoginLogCreateReqVO bean);  
19 -  
20 PageResult<SysLoginLogRespVO> convertPage(PageResult<SysLoginLogDO> page); 17 PageResult<SysLoginLogRespVO> convertPage(PageResult<SysLoginLogDO> page);
21 18
22 List<SysLoginLogExcelVO> convertList(List<SysLoginLogDO> list); 19 List<SysLoginLogExcelVO> convertList(List<SysLoginLogDO> list);
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/logger/SysOperateLogConvert.java
1 package cn.iocoder.yudao.adminserver.modules.system.convert.logger; 1 package cn.iocoder.yudao.adminserver.modules.system.convert.logger;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExcelVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogRespVO;
7 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO; 5 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO;
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO; 6 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  7 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 8 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  9 +import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
10 import org.mapstruct.Mapper; 10 import org.mapstruct.Mapper;
11 import org.mapstruct.factory.Mappers; 11 import org.mapstruct.factory.Mappers;
12 12
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/sms/SysSmsChannelConvert.java
1 package cn.iocoder.yudao.adminserver.modules.system.convert.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.convert.sms;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelRespVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelRespVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelSimpleRespVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelSimpleRespVO;
8 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO;
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsChannelDO; 7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;
10 import org.mapstruct.Mapper; 10 import org.mapstruct.Mapper;
11 import org.mapstruct.factory.Mappers; 11 import org.mapstruct.factory.Mappers;
12 12
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/sms/SysSmsLogConvert.java
1 package cn.iocoder.yudao.adminserver.modules.system.convert.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.convert.sms;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExcelVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExcelVO;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogRespVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogRespVO;
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsLogDO; 5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import org.mapstruct.Mapper; 7 import org.mapstruct.Mapper;
8 import org.mapstruct.factory.Mappers; 8 import org.mapstruct.factory.Mappers;
9 9
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/sms/SysSmsTemplateConvert.java
1 package cn.iocoder.yudao.adminserver.modules.system.convert.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.convert.sms;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExcelVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExcelVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateRespVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateRespVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import org.mapstruct.Mapper; 9 import org.mapstruct.Mapper;
10 import org.mapstruct.factory.Mappers; 10 import org.mapstruct.factory.Mappers;
11 11
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/convert/user/SysUserConvert.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO @@ -8,7 +8,7 @@ import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO
8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
9 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO; 9 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.permission.SysRoleDO;
10 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social.SysSocialUserDO; 10 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social.SysSocialUserDO;
11 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO; 11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
12 import org.mapstruct.Mapper; 12 import org.mapstruct.Mapper;
13 import org.mapstruct.factory.Mappers; 13 import org.mapstruct.factory.Mappers;
14 14
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/logger/SysOperateLogDO.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
3 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; 5 import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
7 import com.baomidou.mybatisplus.annotation.TableField; 7 import com.baomidou.mybatisplus.annotation.TableField;
8 import com.baomidou.mybatisplus.annotation.TableId; 8 import com.baomidou.mybatisplus.annotation.TableId;
9 import com.baomidou.mybatisplus.annotation.TableName; 9 import com.baomidou.mybatisplus.annotation.TableName;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/dataobject/social/SysSocialUserDO.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO; 3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/auth/SysUserSessionMapper.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSessionDO;  
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 9
10 import java.util.Collection; 10 import java.util.Collection;
@@ -23,4 +23,5 @@ public interface SysUserSessionMapper extends BaseMapperX&lt;SysUserSessionDO&gt; { @@ -23,4 +23,5 @@ public interface SysUserSessionMapper extends BaseMapperX&lt;SysUserSessionDO&gt; {
23 default List<SysUserSessionDO> selectListBySessionTimoutLt() { 23 default List<SysUserSessionDO> selectListBySessionTimoutLt() {
24 return selectList(new QueryWrapperX<SysUserSessionDO>().lt("session_timeout",new Date())); 24 return selectList(new QueryWrapperX<SysUserSessionDO>().lt("session_timeout",new Date()));
25 } 25 }
  26 +
26 } 27 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/dict/SysDictDataMapper.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;
  4 +import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictDataDO;  
9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
10 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
11 11
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/logger/SysLoginLogMapper.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO; 8 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysLoginLogDO;  
9 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum; 9 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;
10 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
11 11
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/sms/SysSmsChannelMapper.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
8 import org.apache.ibatis.annotations.Mapper; 8 import org.apache.ibatis.annotations.Mapper;
9 import org.apache.ibatis.annotations.Select; 9 import org.apache.ibatis.annotations.Select;
10 10
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/sms/SysSmsLogMapper.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO;
  4 +import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsLogDO;  
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 10
11 import java.util.List; 11 import java.util.List;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/sms/SysSmsTemplateMapper.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms;
2 2
  3 +import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO;
  4 +import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
10 -import org.apache.ibatis.annotations.Select;  
11 10
12 -import java.util.Date;  
13 import java.util.List; 11 import java.util.List;
14 12
15 @Mapper 13 @Mapper
@@ -47,7 +45,4 @@ public interface SysSmsTemplateMapper extends BaseMapperX&lt;SysSmsTemplateDO&gt; { @@ -47,7 +45,4 @@ public interface SysSmsTemplateMapper extends BaseMapperX&lt;SysSmsTemplateDO&gt; {
47 return selectCount("channel_id", channelId); 45 return selectCount("channel_id", channelId);
48 } 46 }
49 47
50 - @Select("SELECT id FROM sys_sms_template WHERE update_time > #{maxUpdateTime} LIMIT 1")  
51 - Long selectExistsByUpdateTimeAfter(Date maxUpdateTime);  
52 -  
53 } 48 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/mysql/user/SysUserMapper.java
1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user; 1 package cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserExportReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserExportReqVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserPageReqVO; 8 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserPageReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
10 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
11 11
@@ -19,14 +19,14 @@ public interface SysUserMapper extends BaseMapperX&lt;SysUserDO&gt; { @@ -19,14 +19,14 @@ public interface SysUserMapper extends BaseMapperX&lt;SysUserDO&gt; {
19 return selectOne(new QueryWrapper<SysUserDO>().eq("username", username)); 19 return selectOne(new QueryWrapper<SysUserDO>().eq("username", username));
20 } 20 }
21 21
22 - default SysUserDO selectByMobile(String mobile) {  
23 - return selectOne(new QueryWrapper<SysUserDO>().eq("mobile", mobile));  
24 - }  
25 -  
26 default SysUserDO selectByEmail(String email) { 22 default SysUserDO selectByEmail(String email) {
27 return selectOne(new QueryWrapper<SysUserDO>().eq("email", email)); 23 return selectOne(new QueryWrapper<SysUserDO>().eq("email", email));
28 } 24 }
29 25
  26 + default SysUserDO selectByMobile(String mobile) {
  27 + return selectOne(new QueryWrapper<SysUserDO>().eq("mobile", mobile));
  28 + }
  29 +
30 default PageResult<SysUserDO> selectPage(SysUserPageReqVO reqVO, Collection<Long> deptIds) { 30 default PageResult<SysUserDO> selectPage(SysUserPageReqVO reqVO, Collection<Long> deptIds) {
31 return selectPage(reqVO, new QueryWrapperX<SysUserDO>() 31 return selectPage(reqVO, new QueryWrapperX<SysUserDO>()
32 .likeIfPresent("username", reqVO.getUsername()) 32 .likeIfPresent("username", reqVO.getUsername())
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/redis/RedisKeyConstants.java deleted
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/dal/redis/SysRedisKeyConstants.java
@@ -15,10 +15,6 @@ import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.S @@ -15,10 +15,6 @@ import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.S
15 */ 15 */
16 public interface SysRedisKeyConstants { 16 public interface SysRedisKeyConstants {
17 17
18 - RedisKeyDefine LOGIN_USER = new RedisKeyDefine("登录用户的缓存",  
19 - "login_user:%s", // 参数为 sessionId  
20 - STRING, LoginUser.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);  
21 -  
22 RedisKeyDefine CAPTCHA_CODE = new RedisKeyDefine("验证码的缓存", 18 RedisKeyDefine CAPTCHA_CODE = new RedisKeyDefine("验证码的缓存",
23 "captcha_code:%s", // 参数为 uuid 19 "captcha_code:%s", // 参数为 uuid
24 STRING, String.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC); 20 STRING, String.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/enums/SysErrorCodeConstants.java
1 package cn.iocoder.yudao.adminserver.modules.system.enums; 1 package cn.iocoder.yudao.adminserver.modules.system.enums;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.tool.framework.errorcode.config.ErrorCodeConfiguration;  
4 import cn.iocoder.yudao.framework.common.exception.ErrorCode; 3 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
5 -import org.springframework.validation.Errors; 4 +import javafx.beans.binding.MapExpression;
6 5
7 /** 6 /**
8 * System 错误码枚举类 7 * System 错误码枚举类
@@ -14,14 +13,11 @@ public interface SysErrorCodeConstants { @@ -14,14 +13,11 @@ public interface SysErrorCodeConstants {
14 // ========== AUTH 模块 1002000000 ========== 13 // ========== AUTH 模块 1002000000 ==========
15 ErrorCode AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1002000000, "登录失败,账号密码不正确"); 14 ErrorCode AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1002000000, "登录失败,账号密码不正确");
16 ErrorCode AUTH_LOGIN_USER_DISABLED = new ErrorCode(1002000001, "登录失败,账号被禁用"); 15 ErrorCode AUTH_LOGIN_USER_DISABLED = new ErrorCode(1002000001, "登录失败,账号被禁用");
17 - ErrorCode AUTH_LOGIN_FAIL_UNKNOWN = new ErrorCode(1002000002, "登录失败"); // 登录失败的兜底,位置原因 16 + ErrorCode AUTH_LOGIN_FAIL_UNKNOWN = new ErrorCode(1002000002, "登录失败"); // 登录失败的兜底,未知原因
18 ErrorCode AUTH_LOGIN_CAPTCHA_NOT_FOUND = new ErrorCode(1002000003, "验证码不存在"); 17 ErrorCode AUTH_LOGIN_CAPTCHA_NOT_FOUND = new ErrorCode(1002000003, "验证码不存在");
19 ErrorCode AUTH_LOGIN_CAPTCHA_CODE_ERROR = new ErrorCode(1002000004, "验证码不正确"); 18 ErrorCode AUTH_LOGIN_CAPTCHA_CODE_ERROR = new ErrorCode(1002000004, "验证码不正确");
20 ErrorCode AUTH_THIRD_LOGIN_NOT_BIND = new ErrorCode(1002000005, "未绑定账号,需要进行绑定"); 19 ErrorCode AUTH_THIRD_LOGIN_NOT_BIND = new ErrorCode(1002000005, "未绑定账号,需要进行绑定");
21 -  
22 - // ========== TOKEN 模块 1002001000 ==========  
23 - ErrorCode TOKEN_EXPIRED = new ErrorCode(1002001000, "Token 已经过期");  
24 - ErrorCode TOKEN_PARSE_FAIL = new ErrorCode(1002001001, "Token 解析失败"); 20 + ErrorCode AUTH_TOKEN_EXPIRED = new ErrorCode(1002000006, "Token 已经过期");
25 21
26 // ========== 菜单模块 1002002000 ========== 22 // ========== 菜单模块 1002002000 ==========
27 ErrorCode MENU_NAME_DUPLICATE = new ErrorCode(1002002000, "已经存在该名字的菜单"); 23 ErrorCode MENU_NAME_DUPLICATE = new ErrorCode(1002002000, "已经存在该名字的菜单");
@@ -90,10 +86,6 @@ public interface SysErrorCodeConstants { @@ -90,10 +86,6 @@ public interface SysErrorCodeConstants {
90 ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002011000, "短信模板不存在"); 86 ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002011000, "短信模板不存在");
91 ErrorCode SMS_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1002011001, "已经存在编码为【{}】的短信模板"); 87 ErrorCode SMS_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1002011001, "已经存在编码为【{}】的短信模板");
92 88
93 - // ========== 短信发送 1002012000 ==========  
94 - ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1002012000, "手机号不存在");  
95 - ErrorCode SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS = new ErrorCode(1002012001, "模板参数({})缺失");  
96 -  
97 // ========== 错误码模块 1002013000 ========== 89 // ========== 错误码模块 1002013000 ==========
98 ErrorCode ERROR_CODE_NOT_EXISTS = new ErrorCode(1002013000, "错误码不存在"); 90 ErrorCode ERROR_CODE_NOT_EXISTS = new ErrorCode(1002013000, "错误码不存在");
99 ErrorCode ERROR_CODE_DUPLICATE = new ErrorCode(1002013001, "已经存在编码为【{}】的错误码"); 91 ErrorCode ERROR_CODE_DUPLICATE = new ErrorCode(1002013001, "已经存在编码为【{}】的错误码");
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/enums/logger/SysLoginLogTypeEnum.java
@@ -13,6 +13,8 @@ public enum SysLoginLogTypeEnum { @@ -13,6 +13,8 @@ public enum SysLoginLogTypeEnum {
13 LOGIN_USERNAME(100), // 使用账号登录 13 LOGIN_USERNAME(100), // 使用账号登录
14 LOGIN_SOCIAL(101), // 使用社交登录 14 LOGIN_SOCIAL(101), // 使用社交登录
15 LOGIN_MOCK(102), // 使用 Mock 登录 15 LOGIN_MOCK(102), // 使用 Mock 登录
  16 + LOGIN_MOBILE(103), // 使用手机登陆
  17 + LOGIN_SMS(104), // 使用短信登陆
16 18
17 LOGOUT_SELF(200), // 自己主动登出 19 LOGOUT_SELF(200), // 自己主动登出
18 LOGOUT_TIMEOUT(201), // 超时登出 20 LOGOUT_TIMEOUT(201), // 超时登出
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/enums/logger/SysLoginResultEnum.java
@@ -13,8 +13,8 @@ public enum SysLoginResultEnum { @@ -13,8 +13,8 @@ public enum SysLoginResultEnum {
13 SUCCESS(0), // 成功 13 SUCCESS(0), // 成功
14 BAD_CREDENTIALS(10), // 账号或密码不正确 14 BAD_CREDENTIALS(10), // 账号或密码不正确
15 USER_DISABLED(20), // 用户被禁用 15 USER_DISABLED(20), // 用户被禁用
16 - CAPTCHA_NOT_FOUND(30), // 验证码不存在  
17 - CAPTCHA_CODE_ERROR(31), // 验证码不正确 16 + CAPTCHA_NOT_FOUND(30), // 图片验证码不存在
  17 + CAPTCHA_CODE_ERROR(31), // 图片验证码不正确
18 18
19 UNKNOWN_ERROR(100), // 未知异常 19 UNKNOWN_ERROR(100), // 未知异常
20 ; 20 ;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/dict/SysDictDataRefreshConsumer.java
1 package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.dict; 1 package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.dict;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.service.dict.SysDictDataCoreService;
3 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener; 4 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;
4 import cn.iocoder.yudao.adminserver.modules.system.mq.message.dict.SysDictDataRefreshMessage; 5 import cn.iocoder.yudao.adminserver.modules.system.mq.message.dict.SysDictDataRefreshMessage;
5 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService; 6 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;
@@ -18,12 +19,12 @@ import javax.annotation.Resource; @@ -18,12 +19,12 @@ import javax.annotation.Resource;
18 public class SysDictDataRefreshConsumer extends AbstractChannelMessageListener<SysDictDataRefreshMessage> { 19 public class SysDictDataRefreshConsumer extends AbstractChannelMessageListener<SysDictDataRefreshMessage> {
19 20
20 @Resource 21 @Resource
21 - private SysDictDataService dictDataService; 22 + private SysDictDataCoreService dictDataCoreService;
22 23
23 @Override 24 @Override
24 public void onMessage(SysDictDataRefreshMessage message) { 25 public void onMessage(SysDictDataRefreshMessage message) {
25 log.info("[onMessage][收到 DictData 刷新消息]"); 26 log.info("[onMessage][收到 DictData 刷新消息]");
26 - dictDataService.initLocalCache(); 27 + dictDataCoreService.initLocalCache();
27 } 28 }
28 29
29 } 30 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/sms/SysSmsSendConsumer.java
1 package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;
  4 +import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService;
3 import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener; 5 import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;
4 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsSendMessage;  
5 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsService;  
6 import lombok.extern.slf4j.Slf4j; 6 import lombok.extern.slf4j.Slf4j;
7 import org.springframework.stereotype.Component; 7 import org.springframework.stereotype.Component;
8 8
@@ -19,12 +19,12 @@ import javax.annotation.Resource; @@ -19,12 +19,12 @@ import javax.annotation.Resource;
19 public class SysSmsSendConsumer extends AbstractStreamMessageListener<SysSmsSendMessage> { 19 public class SysSmsSendConsumer extends AbstractStreamMessageListener<SysSmsSendMessage> {
20 20
21 @Resource 21 @Resource
22 - private SysSmsService smsService; 22 + private SysSmsCoreService smsCoreService;
23 23
24 @Override 24 @Override
25 public void onMessage(SysSmsSendMessage message) { 25 public void onMessage(SysSmsSendMessage message) {
26 log.info("[onMessage][消息内容({})]", message); 26 log.info("[onMessage][消息内容({})]", message);
27 - smsService.doSendSms(message); 27 + smsCoreService.doSendSms(message);
28 } 28 }
29 29
30 } 30 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/consumer/sms/SysSmsTemplateRefreshConsumer.java
1 package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms;
2 2
3 -import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;  
4 import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsTemplateRefreshMessage; 3 import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsTemplateRefreshMessage;
5 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsTemplateService; 4 +import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsTemplateCoreService;
  5 +import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;
6 import lombok.extern.slf4j.Slf4j; 6 import lombok.extern.slf4j.Slf4j;
7 import org.springframework.stereotype.Component; 7 import org.springframework.stereotype.Component;
8 8
@@ -18,12 +18,12 @@ import javax.annotation.Resource; @@ -18,12 +18,12 @@ import javax.annotation.Resource;
18 public class SysSmsTemplateRefreshConsumer extends AbstractChannelMessageListener<SysSmsTemplateRefreshMessage> { 18 public class SysSmsTemplateRefreshConsumer extends AbstractChannelMessageListener<SysSmsTemplateRefreshMessage> {
19 19
20 @Resource 20 @Resource
21 - private SysSmsTemplateService smsTemplateService; 21 + private SysSmsTemplateCoreService smsTemplateCoreService;
22 22
23 @Override 23 @Override
24 public void onMessage(SysSmsTemplateRefreshMessage message) { 24 public void onMessage(SysSmsTemplateRefreshMessage message) {
25 log.info("[onMessage][收到 SmsTemplate 刷新消息]"); 25 log.info("[onMessage][收到 SmsTemplate 刷新消息]");
26 - smsTemplateService.initLocalCache(); 26 + smsTemplateCoreService.initLocalCache();
27 } 27 }
28 28
29 } 29 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/mq/producer/sms/SysSmsProducer.java
@@ -3,7 +3,6 @@ package cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms; @@ -3,7 +3,6 @@ package cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms;
3 import cn.iocoder.yudao.framework.common.core.KeyValue; 3 import cn.iocoder.yudao.framework.common.core.KeyValue;
4 import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils; 4 import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils;
5 import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsChannelRefreshMessage; 5 import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsChannelRefreshMessage;
6 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsSendMessage;  
7 import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsTemplateRefreshMessage; 6 import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsTemplateRefreshMessage;
8 import lombok.extern.slf4j.Slf4j; 7 import lombok.extern.slf4j.Slf4j;
9 import org.springframework.data.redis.core.StringRedisTemplate; 8 import org.springframework.data.redis.core.StringRedisTemplate;
@@ -26,22 +25,6 @@ public class SysSmsProducer { @@ -26,22 +25,6 @@ public class SysSmsProducer {
26 private StringRedisTemplate stringRedisTemplate; 25 private StringRedisTemplate stringRedisTemplate;
27 26
28 /** 27 /**
29 - * 发送 {@link SysSmsSendMessage} 消息  
30 - *  
31 - * @param logId 短信日志编号  
32 - * @param mobile 手机号  
33 - * @param channelId 渠道编号  
34 - * @param apiTemplateId 短信模板编号  
35 - * @param templateParams 短信模板参数  
36 - */  
37 - public void sendSmsSendMessage(Long logId, String mobile,  
38 - Long channelId, String apiTemplateId, List<KeyValue<String, Object>> templateParams) {  
39 - SysSmsSendMessage message = new SysSmsSendMessage().setLogId(logId).setMobile(mobile);  
40 - message.setChannelId(channelId).setApiTemplateId(apiTemplateId).setTemplateParams(templateParams);  
41 - RedisMessageUtils.sendStreamMessage(stringRedisTemplate, message);  
42 - }  
43 -  
44 - /**  
45 * 发送 {@link SysSmsChannelRefreshMessage} 消息 28 * 发送 {@link SysSmsChannelRefreshMessage} 消息
46 */ 29 */
47 public void sendSmsChannelRefreshMessage() { 30 public void sendSmsChannelRefreshMessage() {
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/SysAuthService.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.security.core.service.SecurityAuthFrameworkSer @@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.security.core.service.SecurityAuthFrameworkSer
6 import javax.validation.Valid; 6 import javax.validation.Valid;
7 7
8 /** 8 /**
9 - * 认证 Service 接口 9 + * 管理后台的认证 Service 接口
10 * 10 *
11 * 提供用户的账号密码登录、token 的校验等认证相关的功能 11 * 提供用户的账号密码登录、token 的校验等认证相关的功能
12 * 12 *
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/SysUserSessionService.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.auth; 1 package cn.iocoder.yudao.adminserver.modules.system.service.auth;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSessionDO; 4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 6
8 /** 7 /**
9 * 在线用户 Session Service 接口 8 * 在线用户 Session Service 接口
@@ -13,53 +12,6 @@ import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSe @@ -13,53 +12,6 @@ import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSe
13 public interface SysUserSessionService { 12 public interface SysUserSessionService {
14 13
15 /** 14 /**
16 - * 创建在线用户 Session  
17 - *  
18 - * @param loginUser 登录用户  
19 - * @param userIp 用户 IP  
20 - * @param userAgent 用户 UA  
21 - * @return Session 编号  
22 - */  
23 - String createUserSession(LoginUser loginUser, String userIp, String userAgent);  
24 -  
25 - /**  
26 - * 刷新在线用户 Session 的更新时间  
27 - *  
28 - * @param sessionId Session 编号  
29 - * @param loginUser 登录用户  
30 - */  
31 - void refreshUserSession(String sessionId, LoginUser loginUser);  
32 -  
33 - /**  
34 - * 删除在线用户 Session  
35 - *  
36 - * @param sessionId Session 编号  
37 - */  
38 - void deleteUserSession(String sessionId);  
39 -  
40 - /**  
41 - * 获得 Session 编号对应的在线用户  
42 - *  
43 - * @param sessionId Session 编号  
44 - * @return 在线用户  
45 - */  
46 - LoginUser getLoginUser(String sessionId);  
47 -  
48 - /**  
49 - * 获取当前登录用户信息  
50 - * @param username 用户名称  
51 - * @return 在线用户  
52 - */  
53 - String getSessionId(String username);  
54 -  
55 - /**  
56 - * 获得 Session 超时时间,单位:毫秒  
57 - *  
58 - * @return 超时时间  
59 - */  
60 - Long getSessionTimeoutMillis();  
61 -  
62 - /**  
63 * 获得在线用户分页列表 15 * 获得在线用户分页列表
64 * 16 *
65 * @param reqVO 分页条件 17 * @param reqVO 分页条件
@@ -73,4 +25,5 @@ public interface SysUserSessionService { @@ -73,4 +25,5 @@ public interface SysUserSessionService {
73 * @return {@link Long } 移出的超时用户数量 25 * @return {@link Long } 移出的超时用户数量
74 **/ 26 **/
75 long clearSessionTimeout(); 27 long clearSessionTimeout();
  28 +
76 } 29 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/impl/SysAuthServiceImpl.java
@@ -5,20 +5,22 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAu @@ -5,20 +5,22 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAu
5 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialBindReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialBindReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLogin2ReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLogin2ReqVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLoginReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthSocialLoginReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO;  
9 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysAuthConvert; 8 import cn.iocoder.yudao.adminserver.modules.system.convert.auth.SysAuthConvert;
10 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social.SysSocialUserDO; 9 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.social.SysSocialUserDO;
11 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
12 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum; 10 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum;
13 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum; 11 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;
14 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysAuthService; 12 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysAuthService;
15 -import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService;  
16 import cn.iocoder.yudao.adminserver.modules.system.service.common.SysCaptchaService; 13 import cn.iocoder.yudao.adminserver.modules.system.service.common.SysCaptchaService;
17 -import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService;  
18 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService; 14 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
19 import cn.iocoder.yudao.adminserver.modules.system.service.social.SysSocialService; 15 import cn.iocoder.yudao.adminserver.modules.system.service.social.SysSocialService;
20 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 16 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  17 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  18 +import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
  19 +import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;
  20 +import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;
  21 +import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
21 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 22 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  23 +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
22 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 24 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
23 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; 25 import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
24 import cn.iocoder.yudao.framework.security.core.LoginUser; 26 import cn.iocoder.yudao.framework.security.core.LoginUser;
@@ -38,6 +40,7 @@ import org.springframework.util.Assert; @@ -38,6 +40,7 @@ import org.springframework.util.Assert;
38 40
39 import javax.annotation.Resource; 41 import javax.annotation.Resource;
40 import java.util.List; 42 import java.util.List;
  43 +import java.util.Objects;
41 import java.util.Set; 44 import java.util.Set;
42 45
43 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*; 46 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;
@@ -60,13 +63,15 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -60,13 +63,15 @@ public class SysAuthServiceImpl implements SysAuthService {
60 @Resource 63 @Resource
61 private SysUserService userService; 64 private SysUserService userService;
62 @Resource 65 @Resource
  66 + private SysUserCoreService userCoreService;
  67 + @Resource
63 private SysPermissionService permissionService; 68 private SysPermissionService permissionService;
64 @Resource 69 @Resource
65 private SysCaptchaService captchaService; 70 private SysCaptchaService captchaService;
66 @Resource 71 @Resource
67 - private SysLoginLogService loginLogService; 72 + private SysLoginLogCoreService loginLogCoreService;
68 @Resource 73 @Resource
69 - private SysUserSessionService userSessionService; 74 + private SysUserSessionCoreService userSessionCoreService;
70 @Resource 75 @Resource
71 private SysSocialService socialService; 76 private SysSocialService socialService;
72 77
@@ -84,7 +89,7 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -84,7 +89,7 @@ public class SysAuthServiceImpl implements SysAuthService {
84 @Override 89 @Override
85 public LoginUser mockLogin(Long userId) { 90 public LoginUser mockLogin(Long userId) {
86 // 获取用户编号对应的 SysUserDO 91 // 获取用户编号对应的 SysUserDO
87 - SysUserDO user = userService.getUser(userId); 92 + SysUserDO user = userCoreService.getUser(userId);
88 if (user == null) { 93 if (user == null) {
89 throw new UsernameNotFoundException(String.valueOf(userId)); 94 throw new UsernameNotFoundException(String.valueOf(userId));
90 } 95 }
@@ -106,7 +111,7 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -106,7 +111,7 @@ public class SysAuthServiceImpl implements SysAuthService {
106 loginUser.setRoleIds(this.getUserRoleIds(loginUser.getId())); // 获取用户角色列表 111 loginUser.setRoleIds(this.getUserRoleIds(loginUser.getId())); // 获取用户角色列表
107 112
108 // 缓存登录用户到 Redis 中,返回 sessionId 编号 113 // 缓存登录用户到 Redis 中,返回 sessionId 编号
109 - return userSessionService.createUserSession(loginUser, userIp, userAgent); 114 + return userSessionCoreService.createUserSession(loginUser, userIp, userAgent);
110 } 115 }
111 116
112 private void verifyCaptcha(String username, String captchaUUID, String captchaCode) { 117 private void verifyCaptcha(String username, String captchaUUID, String captchaCode) {
@@ -154,14 +159,25 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -154,14 +159,25 @@ public class SysAuthServiceImpl implements SysAuthService {
154 } 159 }
155 160
156 private void createLoginLog(String username, SysLoginLogTypeEnum logTypeEnum, SysLoginResultEnum loginResult) { 161 private void createLoginLog(String username, SysLoginLogTypeEnum logTypeEnum, SysLoginResultEnum loginResult) {
157 - SysLoginLogCreateReqVO reqVO = new SysLoginLogCreateReqVO();  
158 - reqVO.setLogType(logTypeEnum.getType());  
159 - reqVO.setTraceId(TracerUtils.getTraceId());  
160 - reqVO.setUsername(username);  
161 - reqVO.setUserAgent(ServletUtils.getUserAgent());  
162 - reqVO.setUserIp(ServletUtils.getClientIP());  
163 - reqVO.setResult(loginResult.getResult());  
164 - loginLogService.createLoginLog(reqVO); 162 + // 获得用户
  163 + SysUserDO user = userService.getUserByUsername(username);
  164 + // 插入登录日志
  165 + SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO();
  166 + reqDTO.setLogType(logTypeEnum.getType());
  167 + reqDTO.setTraceId(TracerUtils.getTraceId());
  168 + if (user != null) {
  169 + reqDTO.setUserId(user.getId());
  170 + }
  171 + reqDTO.setUserType(UserTypeEnum.ADMIN.getValue());
  172 + reqDTO.setUsername(username);
  173 + reqDTO.setUserAgent(ServletUtils.getUserAgent());
  174 + reqDTO.setUserIp(ServletUtils.getClientIP());
  175 + reqDTO.setResult(loginResult.getResult());
  176 + loginLogCoreService.createLoginLog(reqDTO);
  177 + // 更新最后登录时间
  178 + if (user != null && Objects.equals(SysLoginResultEnum.SUCCESS.getResult(), loginResult.getResult())) {
  179 + userService.updateUserLogin(user.getId(), ServletUtils.getClientIP());
  180 + }
165 } 181 }
166 182
167 /** 183 /**
@@ -188,7 +204,7 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -188,7 +204,7 @@ public class SysAuthServiceImpl implements SysAuthService {
188 } 204 }
189 205
190 // 自动登录 206 // 自动登录
191 - SysUserDO user = userService.getUser(socialUsers.get(0).getUserId()); 207 + SysUserDO user = userCoreService.getUser(socialUsers.get(0).getUserId());
192 if (user == null) { 208 if (user == null) {
193 throw exception(USER_NOT_EXISTS); 209 throw exception(USER_NOT_EXISTS);
194 } 210 }
@@ -203,7 +219,7 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -203,7 +219,7 @@ public class SysAuthServiceImpl implements SysAuthService {
203 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser); 219 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser);
204 220
205 // 缓存登录用户到 Redis 中,返回 sessionId 编号 221 // 缓存登录用户到 Redis 中,返回 sessionId 编号
206 - return userSessionService.createUserSession(loginUser, userIp, userAgent); 222 + return userSessionCoreService.createUserSession(loginUser, userIp, userAgent);
207 } 223 }
208 224
209 @Override 225 @Override
@@ -220,7 +236,7 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -220,7 +236,7 @@ public class SysAuthServiceImpl implements SysAuthService {
220 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser); 236 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser);
221 237
222 // 缓存登录用户到 Redis 中,返回 sessionId 编号 238 // 缓存登录用户到 Redis 中,返回 sessionId 编号
223 - return userSessionService.createUserSession(loginUser, userIp, userAgent); 239 + return userSessionCoreService.createUserSession(loginUser, userIp, userAgent);
224 } 240 }
225 241
226 @Override 242 @Override
@@ -236,31 +252,33 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -236,31 +252,33 @@ public class SysAuthServiceImpl implements SysAuthService {
236 @Override 252 @Override
237 public void logout(String token) { 253 public void logout(String token) {
238 // 查询用户信息 254 // 查询用户信息
239 - LoginUser loginUser = userSessionService.getLoginUser(token); 255 + LoginUser loginUser = userSessionCoreService.getLoginUser(token);
240 if (loginUser == null) { 256 if (loginUser == null) {
241 return; 257 return;
242 } 258 }
243 // 删除 session 259 // 删除 session
244 - userSessionService.deleteUserSession(token);  
245 - // 记录登出日子和  
246 - this.createLogoutLog(loginUser.getUsername()); 260 + userSessionCoreService.deleteUserSession(token);
  261 + // 记录登出日志
  262 + this.createLogoutLog(loginUser.getId(), loginUser.getUsername());
247 } 263 }
248 264
249 - private void createLogoutLog(String username) {  
250 - SysLoginLogCreateReqVO reqVO = new SysLoginLogCreateReqVO();  
251 - reqVO.setLogType(SysLoginLogTypeEnum.LOGOUT_SELF.getType());  
252 - reqVO.setTraceId(TracerUtils.getTraceId());  
253 - reqVO.setUsername(username);  
254 - reqVO.setUserAgent(ServletUtils.getUserAgent());  
255 - reqVO.setUserIp(ServletUtils.getClientIP());  
256 - reqVO.setResult(SysLoginResultEnum.SUCCESS.getResult());  
257 - loginLogService.createLoginLog(reqVO); 265 + private void createLogoutLog(Long userId, String username) {
  266 + SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO();
  267 + reqDTO.setLogType(SysLoginLogTypeEnum.LOGOUT_SELF.getType());
  268 + reqDTO.setTraceId(TracerUtils.getTraceId());
  269 + reqDTO.setUserId(userId);
  270 + reqDTO.setUserType(UserTypeEnum.ADMIN.getValue());
  271 + reqDTO.setUsername(username);
  272 + reqDTO.setUserAgent(ServletUtils.getUserAgent());
  273 + reqDTO.setUserIp(ServletUtils.getClientIP());
  274 + reqDTO.setResult(SysLoginResultEnum.SUCCESS.getResult());
  275 + loginLogCoreService.createLoginLog(reqDTO);
258 } 276 }
259 277
260 @Override 278 @Override
261 public LoginUser verifyTokenAndRefresh(String token) { 279 public LoginUser verifyTokenAndRefresh(String token) {
262 // 获得 LoginUser 280 // 获得 LoginUser
263 - LoginUser loginUser = userSessionService.getLoginUser(token); 281 + LoginUser loginUser = userSessionCoreService.getLoginUser(token);
264 if (loginUser == null) { 282 if (loginUser == null) {
265 return null; 283 return null;
266 } 284 }
@@ -272,20 +290,20 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -272,20 +290,20 @@ public class SysAuthServiceImpl implements SysAuthService {
272 private void refreshLoginUserCache(String token, LoginUser loginUser) { 290 private void refreshLoginUserCache(String token, LoginUser loginUser) {
273 // 每 1/3 的 Session 超时时间,刷新 LoginUser 缓存 291 // 每 1/3 的 Session 超时时间,刷新 LoginUser 缓存
274 if (System.currentTimeMillis() - loginUser.getUpdateTime().getTime() < 292 if (System.currentTimeMillis() - loginUser.getUpdateTime().getTime() <
275 - userSessionService.getSessionTimeoutMillis() / 3) { 293 + userSessionCoreService.getSessionTimeoutMillis() / 3) {
276 return; 294 return;
277 } 295 }
278 296
279 // 重新加载 SysUserDO 信息 297 // 重新加载 SysUserDO 信息
280 - SysUserDO user = userService.getUser(loginUser.getId()); 298 + SysUserDO user = userCoreService.getUser(loginUser.getId());
281 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) { 299 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) {
282 - throw exception(TOKEN_EXPIRED); // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面 300 + throw exception(AUTH_TOKEN_EXPIRED); // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面
283 } 301 }
284 302
285 // 刷新 LoginUser 缓存 303 // 刷新 LoginUser 缓存
286 loginUser.setDeptId(user.getDeptId()); 304 loginUser.setDeptId(user.getDeptId());
287 loginUser.setRoleIds(this.getUserRoleIds(loginUser.getId())); 305 loginUser.setRoleIds(this.getUserRoleIds(loginUser.getId()));
288 - userSessionService.refreshUserSession(token, loginUser); 306 + userSessionCoreService.refreshUserSession(token, loginUser);
289 } 307 }
290 308
291 } 309 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/impl/SysUserSessionServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.auth.impl; 1 package cn.iocoder.yudao.adminserver.modules.system.service.auth.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.hutool.core.util.IdUtil;  
5 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -import cn.iocoder.yudao.framework.security.config.SecurityProperties;  
8 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
9 -import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;  
10 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;
11 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO;  
12 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSessionDO;  
13 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
14 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth.SysUserSessionMapper; 6 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth.SysUserSessionMapper;
15 -import cn.iocoder.yudao.adminserver.modules.system.dal.redis.auth.SysLoginUserRedisDAO;  
16 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum; 7 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum;
17 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum; 8 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;
18 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService; 9 import cn.iocoder.yudao.adminserver.modules.system.service.auth.SysUserSessionService;
19 -import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService;  
20 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 10 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
21 -import com.baomidou.mybatisplus.core.conditions.Wrapper;  
22 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
23 -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
  12 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  13 +import cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth.SysLoginUserCoreRedisDAO;
  14 +import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;
  15 +import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;
  16 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  17 +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
24 import com.google.common.collect.Lists; 18 import com.google.common.collect.Lists;
25 import lombok.extern.slf4j.Slf4j; 19 import lombok.extern.slf4j.Slf4j;
26 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
27 21
28 import javax.annotation.Resource; 22 import javax.annotation.Resource;
29 -import java.time.Duration;  
30 -import java.util.*; 23 +import java.util.ArrayList;
  24 +import java.util.Collection;
  25 +import java.util.List;
  26 +import java.util.Map;
31 import java.util.stream.Collectors; 27 import java.util.stream.Collectors;
32 28
33 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; 29 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
34 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;  
35 30
36 /** 31 /**
37 * 在线用户 Session Service 实现类 32 * 在线用户 Session Service 实现类
@@ -43,72 +38,14 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime; @@ -43,72 +38,14 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
43 public class SysUserSessionServiceImpl implements SysUserSessionService { 38 public class SysUserSessionServiceImpl implements SysUserSessionService {
44 39
45 @Resource 40 @Resource
46 - private SecurityProperties securityProperties;  
47 - @Resource  
48 - private SysLoginUserRedisDAO loginUserRedisDAO;  
49 - @Resource  
50 private SysUserSessionMapper userSessionMapper; 41 private SysUserSessionMapper userSessionMapper;
51 @Resource 42 @Resource
52 private SysUserService userService; 43 private SysUserService userService;
53 @Resource 44 @Resource
54 - private SysLoginLogService loginLogService;  
55 -  
56 - @Override  
57 - public String createUserSession(LoginUser loginUser, String userIp, String userAgent) {  
58 - // 生成 Session 编号  
59 - String sessionId = generateSessionId();  
60 - // 写入 Redis 缓存  
61 - loginUser.setUpdateTime(new Date());  
62 - loginUserRedisDAO.set(sessionId, loginUser);  
63 - // 写入 DB 中  
64 - SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)  
65 - .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent).username(loginUser.getUsername())  
66 - .sessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis())))  
67 - .build();  
68 - userSessionMapper.insert(userSession);  
69 - // 返回 Session 编号  
70 - return sessionId;  
71 - }  
72 -  
73 - @Override  
74 - public void refreshUserSession(String sessionId, LoginUser loginUser) {  
75 - // 写入 Redis 缓存  
76 - loginUser.setUpdateTime(new Date());  
77 - loginUserRedisDAO.set(sessionId, loginUser);  
78 - // 更新 DB 中  
79 - SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build();  
80 - updateObj.setUsername(loginUser.getUsername());  
81 - updateObj.setUpdateTime(new Date());  
82 - updateObj.setSessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis())));  
83 - userSessionMapper.updateById(updateObj);  
84 - }  
85 -  
86 - @Override  
87 - public void deleteUserSession(String sessionId) {  
88 - // 删除 Redis 缓存  
89 - loginUserRedisDAO.delete(sessionId);  
90 - // 删除 DB 记录  
91 - userSessionMapper.deleteById(sessionId);  
92 - } 45 + private SysLoginLogCoreService loginLogCoreService;
93 46
94 - @Override  
95 - public LoginUser getLoginUser(String sessionId) {  
96 - return loginUserRedisDAO.get(sessionId);  
97 - }  
98 -  
99 - @Override  
100 - public String getSessionId(String username) {  
101 - QueryWrapper<SysUserSessionDO> wrapper = new QueryWrapper<>();  
102 - wrapper.eq("username", username);  
103 - wrapper.orderByDesc("create_time");  
104 - SysUserSessionDO sysUserSessionDO = userSessionMapper.selectOne(wrapper);  
105 - return sysUserSessionDO.getId();  
106 - }  
107 -  
108 - @Override  
109 - public Long getSessionTimeoutMillis() {  
110 - return securityProperties.getSessionTimeout().toMillis();  
111 - } 47 + @Resource
  48 + private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO;
112 49
113 @Override 50 @Override
114 public PageResult<SysUserSessionDO> getUserSessionPage(SysUserSessionPageReqVO reqVO) { 51 public PageResult<SysUserSessionDO> getUserSessionPage(SysUserSessionPageReqVO reqVO) {
@@ -123,18 +60,20 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { @@ -123,18 +60,20 @@ public class SysUserSessionServiceImpl implements SysUserSessionService {
123 return userSessionMapper.selectPage(reqVO, userIds); 60 return userSessionMapper.selectPage(reqVO, userIds);
124 } 61 }
125 62
  63 + // TODO @芋艿:优化下该方法
126 @Override 64 @Override
127 public long clearSessionTimeout() { 65 public long clearSessionTimeout() {
128 // 获取db里已经超时的用户列表 66 // 获取db里已经超时的用户列表
129 List<SysUserSessionDO> sessionTimeoutDOS = userSessionMapper.selectListBySessionTimoutLt(); 67 List<SysUserSessionDO> sessionTimeoutDOS = userSessionMapper.selectListBySessionTimoutLt();
130 Map<String, SysUserSessionDO> timeoutSessionDOMap = sessionTimeoutDOS 68 Map<String, SysUserSessionDO> timeoutSessionDOMap = sessionTimeoutDOS
131 .stream() 69 .stream()
132 - .filter(sessionDO -> loginUserRedisDAO.get(sessionDO.getId()) == null) 70 + .filter(sessionDO -> loginUserCoreRedisDAO.get(sessionDO.getId()) == null)
133 .collect(Collectors.toMap(SysUserSessionDO::getId, o -> o)); 71 .collect(Collectors.toMap(SysUserSessionDO::getId, o -> o));
134 // 确认已经超时,按批次移出在线用户列表 72 // 确认已经超时,按批次移出在线用户列表
135 if (CollUtil.isNotEmpty(timeoutSessionDOMap)) { 73 if (CollUtil.isNotEmpty(timeoutSessionDOMap)) {
136 - Lists.partition(new ArrayList<>(timeoutSessionDOMap.keySet()), 100).forEach(userSessionMapper::deleteBatchIds);  
137 - //记录用户超时退出日志 74 + Lists.partition(new ArrayList<>(timeoutSessionDOMap.keySet()), 100)
  75 + .forEach(userSessionMapper::deleteBatchIds);
  76 + // 记录用户超时退出日志
138 createTimeoutLogoutLog(timeoutSessionDOMap.values()); 77 createTimeoutLogoutLog(timeoutSessionDOMap.values());
139 } 78 }
140 return timeoutSessionDOMap.size(); 79 return timeoutSessionDOMap.size();
@@ -142,24 +81,17 @@ public class SysUserSessionServiceImpl implements SysUserSessionService { @@ -142,24 +81,17 @@ public class SysUserSessionServiceImpl implements SysUserSessionService {
142 81
143 private void createTimeoutLogoutLog(Collection<SysUserSessionDO> timeoutSessionDOS) { 82 private void createTimeoutLogoutLog(Collection<SysUserSessionDO> timeoutSessionDOS) {
144 for (SysUserSessionDO timeoutSessionDO : timeoutSessionDOS) { 83 for (SysUserSessionDO timeoutSessionDO : timeoutSessionDOS) {
145 - SysLoginLogCreateReqVO reqVO = new SysLoginLogCreateReqVO();  
146 - reqVO.setLogType(SysLoginLogTypeEnum.LOGOUT_TIMEOUT.getType());  
147 - reqVO.setTraceId(TracerUtils.getTraceId());  
148 - reqVO.setUsername(timeoutSessionDO.getUsername());  
149 - reqVO.setUserAgent(timeoutSessionDO.getUserAgent());  
150 - reqVO.setUserIp(timeoutSessionDO.getUserIp());  
151 - reqVO.setResult(SysLoginResultEnum.SUCCESS.getResult());  
152 - loginLogService.createLoginLog(reqVO); 84 + SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO();
  85 + reqDTO.setLogType(SysLoginLogTypeEnum.LOGOUT_TIMEOUT.getType());
  86 + reqDTO.setTraceId(TracerUtils.getTraceId());
  87 + reqDTO.setUserId(timeoutSessionDO.getUserId());
  88 + reqDTO.setUserType(timeoutSessionDO.getUserType());
  89 + reqDTO.setUsername(timeoutSessionDO.getUsername());
  90 + reqDTO.setUserAgent(timeoutSessionDO.getUserAgent());
  91 + reqDTO.setUserIp(timeoutSessionDO.getUserIp());
  92 + reqDTO.setResult(SysLoginResultEnum.SUCCESS.getResult());
  93 + loginLogCoreService.createLoginLog(reqDTO);
153 } 94 }
154 } 95 }
155 96
156 - /**  
157 - * 生成 Session 编号,目前采用 UUID 算法  
158 - *  
159 - * @return Session 编号  
160 - */  
161 - private static String generateSessionId() {  
162 - return IdUtil.fastSimpleUUID();  
163 - }  
164 -  
165 } 97 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/SysDictDataService.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.dict; 1 package cn.iocoder.yudao.adminserver.modules.system.service.dict;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.framework.dict.core.service.DictDataFrameworkService; 5 import cn.iocoder.yudao.framework.dict.core.service.DictDataFrameworkService;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO; 8 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;
8 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO; 9 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO;
9 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictDataDO;  
10 10
11 import java.util.List; 11 import java.util.List;
12 12
@@ -15,12 +15,7 @@ import java.util.List; @@ -15,12 +15,7 @@ import java.util.List;
15 * 15 *
16 * @author ruoyi 16 * @author ruoyi
17 */ 17 */
18 -public interface SysDictDataService extends DictDataFrameworkService {  
19 -  
20 - /**  
21 - * 初始化字典数据的本地缓存  
22 - */  
23 - void initLocalCache(); 18 +public interface SysDictDataService {
24 19
25 /** 20 /**
26 * 创建字典数据 21 * 创建字典数据
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/impl/SysDictDataServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.dict.impl; 1 package cn.iocoder.yudao.adminserver.modules.system.service.dict.impl;
2 2
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;  
7 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
8 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;
10 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;
11 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO;
12 import cn.iocoder.yudao.adminserver.modules.system.convert.dict.SysDictDataConvert; 7 import cn.iocoder.yudao.adminserver.modules.system.convert.dict.SysDictDataConvert;
13 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictDataDO;  
14 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTypeDO; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTypeDO;
15 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictDataMapper; 9 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictDataMapper;
16 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dict.SysDictDataProducer; 10 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dict.SysDictDataProducer;
17 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService; 11 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictDataService;
18 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictTypeService; 12 import cn.iocoder.yudao.adminserver.modules.system.service.dict.SysDictTypeService;
  13 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
  14 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  15 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
19 import com.google.common.annotations.VisibleForTesting; 16 import com.google.common.annotations.VisibleForTesting;
20 -import com.google.common.collect.ImmutableTable;  
21 import lombok.extern.slf4j.Slf4j; 17 import lombok.extern.slf4j.Slf4j;
22 -import org.springframework.scheduling.annotation.Scheduled;  
23 import org.springframework.stereotype.Service; 18 import org.springframework.stereotype.Service;
24 19
25 -import javax.annotation.PostConstruct;  
26 import javax.annotation.Resource; 20 import javax.annotation.Resource;
27 import java.util.Comparator; 21 import java.util.Comparator;
28 import java.util.Date; 22 import java.util.Date;
29 import java.util.List; 23 import java.util.List;
30 24
31 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
32 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*; 25 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;
  26 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
33 27
34 /** 28 /**
35 * 字典数据 Service 实现类 29 * 字典数据 Service 实现类
@@ -47,31 +41,6 @@ public class SysDictDataServiceImpl implements SysDictDataService { @@ -47,31 +41,6 @@ public class SysDictDataServiceImpl implements SysDictDataService {
47 .comparing(SysDictDataDO::getDictType) 41 .comparing(SysDictDataDO::getDictType)
48 .thenComparingInt(SysDictDataDO::getSort); 42 .thenComparingInt(SysDictDataDO::getSort);
49 43
50 - /**  
51 - * 定时执行 {@link #schedulePeriodicRefresh()} 的周期  
52 - * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高  
53 - */  
54 - private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;  
55 -  
56 - /**  
57 - * 字典数据缓存,第二个 key 使用 label  
58 - *  
59 - * key1:字典类型 dictType  
60 - * key2:字典标签 label  
61 - */  
62 - private ImmutableTable<String, String, SysDictDataDO> labelDictDataCache;  
63 - /**  
64 - * 字典数据缓存,第二个 key 使用 value  
65 - *  
66 - * key1:字典类型 dictType  
67 - * key2:字典值 value  
68 - */  
69 - private ImmutableTable<String, String, SysDictDataDO> valueDictDataCache;  
70 - /**  
71 - * 缓存字典数据的最大更新时间,用于后续的增量轮询,判断是否有更新  
72 - */  
73 - private volatile Date maxUpdateTime;  
74 -  
75 @Resource 44 @Resource
76 private SysDictTypeService dictTypeService; 45 private SysDictTypeService dictTypeService;
77 46
@@ -81,34 +50,6 @@ public class SysDictDataServiceImpl implements SysDictDataService { @@ -81,34 +50,6 @@ public class SysDictDataServiceImpl implements SysDictDataService {
81 @Resource 50 @Resource
82 private SysDictDataProducer dictDataProducer; 51 private SysDictDataProducer dictDataProducer;
83 52
84 - @Override  
85 - @PostConstruct  
86 - public synchronized void initLocalCache() {  
87 - // 获取字典数据列表,如果有更新  
88 - List<SysDictDataDO> dataList = this.loadDictDataIfUpdate(maxUpdateTime);  
89 - if (CollUtil.isEmpty(dataList)) {  
90 - return;  
91 - }  
92 -  
93 - // 构建缓存  
94 - ImmutableTable.Builder<String, String, SysDictDataDO> labelDictDataBuilder = ImmutableTable.builder();  
95 - ImmutableTable.Builder<String, String, SysDictDataDO> valueDictDataBuilder = ImmutableTable.builder();  
96 - dataList.forEach(dictData -> {  
97 - labelDictDataBuilder.put(dictData.getDictType(), dictData.getLabel(), dictData);  
98 - valueDictDataBuilder.put(dictData.getDictType(), dictData.getValue(), dictData);  
99 - });  
100 - labelDictDataCache = labelDictDataBuilder.build();  
101 - valueDictDataCache = valueDictDataBuilder.build();  
102 - assert dataList.size() > 0; // 断言,避免告警  
103 - maxUpdateTime = dataList.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();  
104 - log.info("[initLocalCache][缓存字典数据,数量为:{}]", dataList.size());  
105 - }  
106 -  
107 - @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)  
108 - public void schedulePeriodicRefresh() {  
109 - initLocalCache();  
110 - }  
111 -  
112 /** 53 /**
113 * 如果字典数据发生变化,从数据库中获取最新的全量字典数据。 54 * 如果字典数据发生变化,从数据库中获取最新的全量字典数据。
114 * 如果未发生变化,则返回空 55 * 如果未发生变化,则返回空
@@ -238,19 +179,4 @@ public class SysDictDataServiceImpl implements SysDictDataService { @@ -238,19 +179,4 @@ public class SysDictDataServiceImpl implements SysDictDataService {
238 } 179 }
239 } 180 }
240 181
241 - @Override  
242 - public DictDataRespDTO getDictDataFromCache(String type, String value) {  
243 - return SysDictDataConvert.INSTANCE.convert02(valueDictDataCache.get(type, value));  
244 - }  
245 -  
246 - @Override  
247 - public DictDataRespDTO parseDictDataFromCache(String type, String label) {  
248 - return SysDictDataConvert.INSTANCE.convert02(labelDictDataCache.get(type, label));  
249 - }  
250 -  
251 - @Override  
252 - public List<DictDataRespDTO> listDictDatasFromCache(String type) {  
253 - return SysDictDataConvert.INSTANCE.convertList03(labelDictDataCache.row(type).values());  
254 - }  
255 -  
256 } 182 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/SysLoginLogService.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.logger; 1 package cn.iocoder.yudao.adminserver.modules.system.service.logger;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysLoginLogDO; 5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 7
9 import java.util.List; 8 import java.util.List;
10 9
@@ -14,13 +13,6 @@ import java.util.List; @@ -14,13 +13,6 @@ import java.util.List;
14 public interface SysLoginLogService { 13 public interface SysLoginLogService {
15 14
16 /** 15 /**
17 - * 创建登录日志  
18 - *  
19 - * @param reqVO 日志信息  
20 - */  
21 - void createLoginLog(SysLoginLogCreateReqVO reqVO);  
22 -  
23 - /**  
24 * 获得登录日志分页 16 * 获得登录日志分页
25 * 17 *
26 * @param reqVO 分页条件 18 * @param reqVO 分页条件
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/impl/SysLoginLogServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.logger.impl; 1 package cn.iocoder.yudao.adminserver.modules.system.service.logger.impl;
2 2
3 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
4 -import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;  
5 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO;  
8 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;
10 -import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysLoginLogConvert;  
11 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysLoginLogDO;  
12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysLoginLogMapper; 5 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysLoginLogMapper;
13 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService; 6 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService;
  7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
15 10
16 import javax.annotation.Resource; 11 import javax.annotation.Resource;
@@ -24,21 +19,6 @@ public class SysLoginLogServiceImpl implements SysLoginLogService { @@ -24,21 +19,6 @@ public class SysLoginLogServiceImpl implements SysLoginLogService {
24 19
25 @Resource 20 @Resource
26 private SysLoginLogMapper loginLogMapper; 21 private SysLoginLogMapper loginLogMapper;
27 - @Resource  
28 - private SysUserService userService;  
29 -  
30 - @Override  
31 - public void createLoginLog(SysLoginLogCreateReqVO reqVO) {  
32 - SysLoginLogDO loginLog = SysLoginLogConvert.INSTANCE.convert(reqVO);  
33 - // 获得用户  
34 - SysUserDO user = userService.getUserByUsername(reqVO.getUsername());  
35 - if (user != null) {  
36 - loginLog.setUserId(user.getId());  
37 - }  
38 - loginLog.setUserType(UserTypeEnum.ADMIN.getValue());  
39 - // 插入  
40 - loginLogMapper.insert(loginLog);  
41 - }  
42 22
43 @Override 23 @Override
44 public PageResult<SysLoginLogDO> getLoginLogPage(SysLoginLogPageReqVO reqVO) { 24 public PageResult<SysLoginLogDO> getLoginLogPage(SysLoginLogPageReqVO reqVO) {
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/impl/SysOperateLogServiceImpl.java
@@ -2,17 +2,17 @@ package cn.iocoder.yudao.adminserver.modules.system.service.logger.impl; @@ -2,17 +2,17 @@ package cn.iocoder.yudao.adminserver.modules.system.service.logger.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
6 -import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;  
7 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;
8 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysOperateLogConvert; 7 import cn.iocoder.yudao.adminserver.modules.system.convert.logger.SysOperateLogConvert;
10 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO;
11 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysOperateLogMapper; 9 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysOperateLogMapper;
13 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysOperateLogService; 10 import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysOperateLogService;
14 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 11 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  12 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  13 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
15 import cn.iocoder.yudao.framework.common.util.string.StrUtils; 14 import cn.iocoder.yudao.framework.common.util.string.StrUtils;
  15 +import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
16 import lombok.extern.slf4j.Slf4j; 16 import lombok.extern.slf4j.Slf4j;
17 import org.springframework.scheduling.annotation.Async; 17 import org.springframework.scheduling.annotation.Async;
18 import org.springframework.scheduling.annotation.AsyncResult; 18 import org.springframework.scheduling.annotation.AsyncResult;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsChannelService.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.service.sms;
2 2
  3 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
8 8
9 import javax.validation.Valid; 9 import javax.validation.Valid;
10 import java.util.Collection; 10 import java.util.Collection;
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsLogService.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.service.sms;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO;
6 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsLogDO;  
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 7
9 -import java.util.Date;  
10 import java.util.List; 8 import java.util.List;
11 -import java.util.Map;  
12 9
13 /** 10 /**
14 - * 短信日志 Service 实现类 11 + * 短信日志 Service 接口
15 * 12 *
16 * @author zzf 13 * @author zzf
17 * @date 13:48 2021/3/2 14 * @date 13:48 2021/3/2
@@ -19,46 +16,6 @@ import java.util.Map; @@ -19,46 +16,6 @@ import java.util.Map;
19 public interface SysSmsLogService { 16 public interface SysSmsLogService {
20 17
21 /** 18 /**
22 - * 创建短信日志  
23 - *  
24 - * @param mobile 手机号  
25 - * @param userId 用户编号  
26 - * @param userType 用户类型  
27 - * @param isSend 是否发送  
28 - * @param template 短信模板  
29 - * @param templateContent 短信内容  
30 - * @param templateParams 短信参数  
31 - * @return 发送日志编号  
32 - */  
33 - Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend,  
34 - SysSmsTemplateDO template, String templateContent, Map<String, Object> templateParams);  
35 -  
36 - /**  
37 - * 更新日志的发送结果  
38 - *  
39 - * @param id 日志编号  
40 - * @param sendCode 发送结果的编码  
41 - * @param sendMsg 发送结果的提示  
42 - * @param apiSendCode 短信 API 发送结果的编码  
43 - * @param apiSendMsg 短信 API 发送失败的提示  
44 - * @param apiRequestId 短信 API 发送返回的唯一请求 ID  
45 - * @param apiSerialNo 短信 API 发送返回的序号  
46 - */  
47 - void updateSmsSendResult(Long id, Integer sendCode, String sendMsg,  
48 - String apiSendCode, String apiSendMsg, String apiRequestId, String apiSerialNo);  
49 -  
50 - /**  
51 - * 更新日志的接收结果  
52 - *  
53 - * @param id 日志编号  
54 - * @param success 是否接收成功  
55 - * @param receiveTime 用户接收时间  
56 - * @param apiReceiveCode API 接收结果的编码  
57 - * @param apiReceiveMsg API 接收结果的说明  
58 - */  
59 - void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime, String apiReceiveCode, String apiReceiveMsg);  
60 -  
61 - /**  
62 * 获得短信日志分页 19 * 获得短信日志分页
63 * 20 *
64 * @param pageReqVO 分页查询 21 * @param pageReqVO 分页查询
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsTemplateService.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.sms; 1 package cn.iocoder.yudao.adminserver.modules.system.service.sms;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO;
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 9
10 import javax.validation.Valid; 10 import javax.validation.Valid;
11 import java.util.Collection; 11 import java.util.Collection;
12 import java.util.List; 12 import java.util.List;
13 -import java.util.Map;  
14 13
15 /** 14 /**
16 * 短信模板 Service 接口 15 * 短信模板 Service 接口
@@ -21,11 +20,6 @@ import java.util.Map; @@ -21,11 +20,6 @@ import java.util.Map;
21 public interface SysSmsTemplateService { 20 public interface SysSmsTemplateService {
22 21
23 /** 22 /**
24 - * 初始化短信模板的本地缓存  
25 - */  
26 - void initLocalCache();  
27 -  
28 - /**  
29 * 获得短信模板 23 * 获得短信模板
30 * 24 *
31 * @param code 模板编码 25 * @param code 模板编码
@@ -34,23 +28,6 @@ public interface SysSmsTemplateService { @@ -34,23 +28,6 @@ public interface SysSmsTemplateService {
34 SysSmsTemplateDO getSmsTemplateByCode(String code); 28 SysSmsTemplateDO getSmsTemplateByCode(String code);
35 29
36 /** 30 /**
37 - * 获得短信模板,从缓存中  
38 - *  
39 - * @param code 模板编码  
40 - * @return 短信模板  
41 - */  
42 - SysSmsTemplateDO getSmsTemplateByCodeFromCache(String code);  
43 -  
44 - /**  
45 - * 格式化短信内容  
46 - *  
47 - * @param content 短信模板的内容  
48 - * @param params 内容的参数  
49 - * @return 格式化后的内容  
50 - */  
51 - String formatSmsTemplateContent(String content, Map<String, Object> params);  
52 -  
53 - /**  
54 * 创建短信模板 31 * 创建短信模板
55 * 32 *
56 * @param createReqVO 创建信息 33 * @param createReqVO 创建信息
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/impl/SysSmsChannelServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.sms.impl; 1 package cn.iocoder.yudao.adminserver.modules.system.service.sms.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
6 -import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;  
7 -import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;  
8 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO;
10 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO;
11 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsChannelConvert; 7 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsChannelConvert;
12 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
13 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsChannelMapper; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsChannelMapper;
14 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer; 9 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer;
15 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsChannelService; 10 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsChannelService;
16 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsTemplateService; 11 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsTemplateService;
  12 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;
  13 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  14 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  15 +import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
  16 +import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;
17 import lombok.extern.slf4j.Slf4j; 17 import lombok.extern.slf4j.Slf4j;
18 import org.springframework.scheduling.annotation.Scheduled; 18 import org.springframework.scheduling.annotation.Scheduled;
19 import org.springframework.stereotype.Service; 19 import org.springframework.stereotype.Service;
@@ -25,9 +25,9 @@ import java.util.Comparator; @@ -25,9 +25,9 @@ import java.util.Comparator;
25 import java.util.Date; 25 import java.util.Date;
26 import java.util.List; 26 import java.util.List;
27 27
28 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
29 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN; 28 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.SMS_CHANNEL_HAS_CHILDREN;
30 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.SMS_CHANNEL_NOT_EXISTS; 29 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.SMS_CHANNEL_NOT_EXISTS;
  30 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
31 31
32 /** 32 /**
33 * 短信渠道Service实现类 33 * 短信渠道Service实现类
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/impl/SysSmsLogServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.sms.impl; 1 package cn.iocoder.yudao.adminserver.modules.system.service.sms.impl;
2 2
3 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO; 3 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogExportReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.log.SysSmsLogPageReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsLogDO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
9 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsLogMapper; 5 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsLogMapper;
10 -import cn.iocoder.yudao.adminserver.modules.system.enums.sms.SysSmsReceiveStatusEnum;  
11 -import cn.iocoder.yudao.adminserver.modules.system.enums.sms.SysSmsSendStatusEnum;  
12 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsLogService; 6 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsLogService;
  7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import lombok.extern.slf4j.Slf4j; 9 import lombok.extern.slf4j.Slf4j;
14 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
15 11
16 import javax.annotation.Resource; 12 import javax.annotation.Resource;
17 -import java.util.Date;  
18 import java.util.List; 13 import java.util.List;
19 -import java.util.Map;  
20 -import java.util.Objects;  
21 14
22 /** 15 /**
23 * 短信日志 Service 实现类 16 * 短信日志 Service 实现类
@@ -33,47 +26,6 @@ public class SysSmsLogServiceImpl implements SysSmsLogService { @@ -33,47 +26,6 @@ public class SysSmsLogServiceImpl implements SysSmsLogService {
33 private SysSmsLogMapper smsLogMapper; 26 private SysSmsLogMapper smsLogMapper;
34 27
35 @Override 28 @Override
36 - public Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend,  
37 - SysSmsTemplateDO template, String templateContent, Map<String, Object> templateParams) {  
38 - SysSmsLogDO.SysSmsLogDOBuilder logBuilder = SysSmsLogDO.builder();  
39 - // 根据是否要发送,设置状态  
40 - logBuilder.sendStatus(Objects.equals(isSend, true) ? SysSmsSendStatusEnum.INIT.getStatus()  
41 - : SysSmsSendStatusEnum.IGNORE.getStatus());  
42 - // 设置手机相关字段  
43 - logBuilder.mobile(mobile).userId(userId).userType(userType);  
44 - // 设置模板相关字段  
45 - logBuilder.templateId(template.getId()).templateCode(template.getCode()).templateType(template.getType());  
46 - logBuilder.templateContent(templateContent).templateParams(templateParams).apiTemplateId(template.getApiTemplateId());  
47 - // 设置渠道相关字段  
48 - logBuilder.channelId(template.getChannelId()).channelCode(template.getChannelCode());  
49 - // 设置接收相关字段  
50 - logBuilder.receiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus());  
51 -  
52 - // 插入数据库  
53 - SysSmsLogDO logDO = logBuilder.build();  
54 - smsLogMapper.insert(logDO);  
55 - return logDO.getId();  
56 - }  
57 -  
58 - @Override  
59 - public void updateSmsSendResult(Long id, Integer sendCode, String sendMsg,  
60 - String apiSendCode, String apiSendMsg, String apiRequestId, String apiSerialNo) {  
61 - SysSmsSendStatusEnum sendStatus = CommonResult.isSuccess(sendCode) ? SysSmsSendStatusEnum.SUCCESS  
62 - : SysSmsSendStatusEnum.FAILURE;  
63 - smsLogMapper.updateById(SysSmsLogDO.builder().id(id).sendStatus(sendStatus.getStatus()).sendTime(new Date())  
64 - .sendCode(sendCode).sendMsg(sendMsg).apiSendCode(apiSendCode).apiSendMsg(apiSendMsg)  
65 - .apiRequestId(apiRequestId).apiSerialNo(apiSerialNo).build());  
66 - }  
67 -  
68 - @Override  
69 - public void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime, String apiReceiveCode, String apiReceiveMsg) {  
70 - SysSmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ? SysSmsReceiveStatusEnum.SUCCESS  
71 - : SysSmsReceiveStatusEnum.FAILURE;  
72 - smsLogMapper.updateById(SysSmsLogDO.builder().id(id).receiveStatus(receiveStatus.getStatus()).receiveTime(receiveTime)  
73 - .apiReceiveCode(apiReceiveCode).apiReceiveMsg(apiReceiveMsg).build());  
74 - }  
75 -  
76 - @Override  
77 public PageResult<SysSmsLogDO> getSmsLogPage(SysSmsLogPageReqVO pageReqVO) { 29 public PageResult<SysSmsLogDO> getSmsLogPage(SysSmsLogPageReqVO pageReqVO) {
78 return smsLogMapper.selectPage(pageReqVO); 30 return smsLogMapper.selectPage(pageReqVO);
79 } 31 }
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/impl/SysSmsTemplateServiceImpl.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.sms.impl; 1 package cn.iocoder.yudao.adminserver.modules.system.service.sms.impl;
2 2
3 -import cn.hutool.core.collection.CollUtil;  
4 import cn.hutool.core.util.ReUtil; 3 import cn.hutool.core.util.ReUtil;
5 -import cn.hutool.core.util.StrUtil;  
6 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
9 -import cn.iocoder.yudao.framework.sms.core.client.SmsClient;  
10 -import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;  
11 -import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult;  
12 -import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO;  
13 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateCreateReqVO;
14 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateExportReqVO;
15 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplatePageReqVO;
16 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.template.SysSmsTemplateUpdateReqVO;
17 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsTemplateConvert; 8 import cn.iocoder.yudao.adminserver.modules.system.convert.sms.SysSmsTemplateConvert;
18 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
19 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
20 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsTemplateMapper; 9 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsTemplateMapper;
21 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer; 10 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer;
22 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsChannelService; 11 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsChannelService;
23 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsTemplateService; 12 import cn.iocoder.yudao.adminserver.modules.system.service.sms.SysSmsTemplateService;
  13 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;
  14 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;
  15 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  16 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  17 +import cn.iocoder.yudao.framework.sms.core.client.SmsClient;
  18 +import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
  19 +import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult;
  20 +import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO;
24 import com.google.common.annotations.VisibleForTesting; 21 import com.google.common.annotations.VisibleForTesting;
25 -import com.google.common.collect.ImmutableMap;  
26 import lombok.extern.slf4j.Slf4j; 22 import lombok.extern.slf4j.Slf4j;
27 -import org.springframework.scheduling.annotation.Scheduled;  
28 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
29 import org.springframework.util.Assert; 24 import org.springframework.util.Assert;
30 25
31 -import javax.annotation.PostConstruct;  
32 import javax.annotation.Resource; 26 import javax.annotation.Resource;
33 -import java.util.*; 27 +import java.util.Collection;
  28 +import java.util.List;
  29 +import java.util.Objects;
34 import java.util.regex.Pattern; 30 import java.util.regex.Pattern;
35 31
36 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
37 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*; 32 import static cn.iocoder.yudao.adminserver.modules.system.enums.SysErrorCodeConstants.*;
  33 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
38 34
39 /** 35 /**
40 * 短信模板Service实现类 36 * 短信模板Service实现类
@@ -51,24 +47,6 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { @@ -51,24 +47,6 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService {
51 */ 47 */
52 private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}"); 48 private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}");
53 49
54 - /**  
55 - * 定时执行 {@link #schedulePeriodicRefresh()} 的周期  
56 - * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高  
57 - */  
58 - private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;  
59 -  
60 - /**  
61 - * 短信模板缓存  
62 - * key:短信模板编码 {@link SysSmsTemplateDO#getCode()}  
63 - *  
64 - * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向  
65 - */  
66 - private volatile Map<String, SysSmsTemplateDO> smsTemplateCache;  
67 - /**  
68 - * 缓存短信模板的最大更新时间,用于后续的增量轮询,判断是否有更新  
69 - */  
70 - private volatile Date maxUpdateTime;  
71 -  
72 @Resource 50 @Resource
73 private SysSmsTemplateMapper smsTemplateMapper; 51 private SysSmsTemplateMapper smsTemplateMapper;
74 52
@@ -81,68 +59,11 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService { @@ -81,68 +59,11 @@ public class SysSmsTemplateServiceImpl implements SysSmsTemplateService {
81 @Resource 59 @Resource
82 private SysSmsProducer smsProducer; 60 private SysSmsProducer smsProducer;
83 61
84 - /**  
85 - * 初始化 {@link #smsTemplateCache} 缓存  
86 - */  
87 - @Override  
88 - @PostConstruct  
89 - public void initLocalCache() {  
90 - // 获取短信模板列表,如果有更新  
91 - List<SysSmsTemplateDO> smsTemplateList = this.loadSmsTemplateIfUpdate(maxUpdateTime);  
92 - if (CollUtil.isEmpty(smsTemplateList)) {  
93 - return;  
94 - }  
95 -  
96 - // 写入缓存  
97 - ImmutableMap.Builder<String, SysSmsTemplateDO> builder = ImmutableMap.builder();  
98 - smsTemplateList.forEach(sysSmsTemplateDO -> builder.put(sysSmsTemplateDO.getCode(), sysSmsTemplateDO));  
99 - smsTemplateCache = builder.build();  
100 - assert smsTemplateList.size() > 0; // 断言,避免告警  
101 - maxUpdateTime = smsTemplateList.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();  
102 - log.info("[initLocalCache][初始化 SmsTemplate 数量为 {}]", smsTemplateList.size());  
103 - }  
104 -  
105 - @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)  
106 - public void schedulePeriodicRefresh() {  
107 - initLocalCache();  
108 - }  
109 -  
110 - /**  
111 - * 如果短信模板发生变化,从数据库中获取最新的全量短信模板。  
112 - * 如果未发生变化,则返回空  
113 - *  
114 - * @param maxUpdateTime 当前短信模板的最大更新时间  
115 - * @return 短信模板列表  
116 - */  
117 - private List<SysSmsTemplateDO> loadSmsTemplateIfUpdate(Date maxUpdateTime) {  
118 - // 第一步,判断是否要更新。  
119 - if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据  
120 - log.info("[loadSmsTemplateIfUpdate][首次加载全量短信模板]");  
121 - } else { // 判断数据库中是否有更新的短信模板  
122 - if (smsTemplateMapper.selectExistsByUpdateTimeAfter(maxUpdateTime) == null) {  
123 - return null;  
124 - }  
125 - log.info("[loadSmsTemplateIfUpdate][增量加载全量短信模板]");  
126 - }  
127 - // 第二步,如果有更新,则从数据库加载所有短信模板  
128 - return smsTemplateMapper.selectList();  
129 - }  
130 -  
131 @Override 62 @Override
132 public SysSmsTemplateDO getSmsTemplateByCode(String code) { 63 public SysSmsTemplateDO getSmsTemplateByCode(String code) {
133 return smsTemplateMapper.selectByCode(code); 64 return smsTemplateMapper.selectByCode(code);
134 } 65 }
135 66
136 - @Override  
137 - public SysSmsTemplateDO getSmsTemplateByCodeFromCache(String code) {  
138 - return smsTemplateCache.get(code);  
139 - }  
140 -  
141 - @Override  
142 - public String formatSmsTemplateContent(String content, Map<String, Object> params) {  
143 - return StrUtil.format(content, params);  
144 - }  
145 -  
146 @VisibleForTesting 67 @VisibleForTesting
147 public List<String> parseTemplateContentParams(String content) { 68 public List<String> parseTemplateContentParams(String content) {
148 return ReUtil.findAllGroup1(PATTERN_PARAMS, content); 69 return ReUtil.findAllGroup1(PATTERN_PARAMS, content);
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/user/SysUserService.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.user; 1 package cn.iocoder.yudao.adminserver.modules.system.service.user;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVO;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserCreateReqVO;  
8 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserExportReqVO;  
9 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserImportExcelVO;  
10 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserImportRespVO;  
11 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserPageReqVO;  
12 -import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.SysUserUpdateReqVO;  
13 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO; 6 +import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;
  7 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
15 10
16 import java.io.InputStream; 11 import java.io.InputStream;
@@ -20,7 +15,7 @@ import java.util.List; @@ -20,7 +15,7 @@ import java.util.List;
20 import java.util.Map; 15 import java.util.Map;
21 16
22 /** 17 /**
23 - * 用户 Service 接口 18 + * 后台用户 Service 接口
24 * 19 *
25 * @author 芋道源码 20 * @author 芋道源码
26 */ 21 */
@@ -42,6 +37,14 @@ public interface SysUserService { @@ -42,6 +37,14 @@ public interface SysUserService {
42 void updateUser(SysUserUpdateReqVO reqVO); 37 void updateUser(SysUserUpdateReqVO reqVO);
43 38
44 /** 39 /**
  40 + * 更新用户的最后登陆信息
  41 + *
  42 + * @param id 用户编号
  43 + * @param loginIp 登陆 IP
  44 + */
  45 + void updateUserLogin(Long id, String loginIp);
  46 +
  47 + /**
45 * 修改用户个人信息 48 * 修改用户个人信息
46 * 49 *
47 * @param id 用户编号 50 * @param id 用户编号
@@ -97,14 +100,6 @@ public interface SysUserService { @@ -97,14 +100,6 @@ public interface SysUserService {
97 SysUserDO getUserByUsername(String username); 100 SysUserDO getUserByUsername(String username);
98 101
99 /** 102 /**
100 - * 通过用户 ID 查询用户  
101 - *  
102 - * @param id 用户ID  
103 - * @return 用户对象信息  
104 - */  
105 - SysUserDO getUser(Long id);  
106 -  
107 - /**  
108 * 获得用户分页列表 103 * 获得用户分页列表
109 * 104 *
110 * @param reqVO 分页条件 105 * @param reqVO 分页条件
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/system/service/user/impl/SysUserServiceImpl.java
@@ -11,12 +11,12 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*; @@ -11,12 +11,12 @@ import cn.iocoder.yudao.adminserver.modules.system.controller.user.vo.user.*;
11 import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert; 11 import cn.iocoder.yudao.adminserver.modules.system.convert.user.SysUserConvert;
12 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO; 12 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysDeptDO;
13 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO; 13 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dept.SysPostDO;
14 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
15 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user.SysUserMapper; 14 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user.SysUserMapper;
16 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService; 15 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysDeptService;
17 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService; 16 import cn.iocoder.yudao.adminserver.modules.system.service.dept.SysPostService;
18 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService; 17 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
19 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 18 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  19 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
20 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 20 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
21 import cn.iocoder.yudao.framework.common.exception.ServiceException; 21 import cn.iocoder.yudao.framework.common.exception.ServiceException;
22 import cn.iocoder.yudao.framework.common.pojo.PageResult; 22 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -85,6 +85,11 @@ public class SysUserServiceImpl implements SysUserService { @@ -85,6 +85,11 @@ public class SysUserServiceImpl implements SysUserService {
85 } 85 }
86 86
87 @Override 87 @Override
  88 + public void updateUserLogin(Long id, String loginIp) {
  89 + userMapper.updateById(new SysUserDO().setId(id).setLoginIp(loginIp).setLoginDate(new Date()));
  90 + }
  91 +
  92 + @Override
88 public void updateUserProfile(Long id, SysUserProfileUpdateReqVO reqVO) { 93 public void updateUserProfile(Long id, SysUserProfileUpdateReqVO reqVO) {
89 // 校验正确性 94 // 校验正确性
90 this.checkUserExists(id); 95 this.checkUserExists(id);
@@ -155,11 +160,6 @@ public class SysUserServiceImpl implements SysUserService { @@ -155,11 +160,6 @@ public class SysUserServiceImpl implements SysUserService {
155 } 160 }
156 161
157 @Override 162 @Override
158 - public SysUserDO getUser(Long id) {  
159 - return userMapper.selectById(id);  
160 - }  
161 -  
162 - @Override  
163 public PageResult<SysUserDO> getUserPage(SysUserPageReqVO reqVO) { 163 public PageResult<SysUserDO> getUserPage(SysUserPageReqVO reqVO) {
164 return userMapper.selectPage(reqVO, this.getDeptCondition(reqVO.getDeptId())); 164 return userMapper.selectPage(reqVO, this.getDeptCondition(reqVO.getDeptId()));
165 } 165 }
yudao-admin-server/src/main/resources/application-dev.yaml
@@ -99,7 +99,7 @@ apollo: @@ -99,7 +99,7 @@ apollo:
99 eagerLoad: 99 eagerLoad:
100 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置 100 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置
101 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址 101 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址
102 - dao: cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config.InfConfigDAOImpl 102 + dao: cn.iocoder.yudao.coreservice.modules.infra.dal.mysql.config.InfConfigCoreDAOImpl
103 url: ${spring.datasource.dynamic.datasource.master.url} 103 url: ${spring.datasource.dynamic.datasource.master.url}
104 username: ${spring.datasource.dynamic.datasource.master.username} 104 username: ${spring.datasource.dynamic.datasource.master.username}
105 password: ${spring.datasource.dynamic.datasource.master.password} 105 password: ${spring.datasource.dynamic.datasource.master.password}
yudao-admin-server/src/main/resources/application-local.yaml
@@ -99,7 +99,7 @@ apollo: @@ -99,7 +99,7 @@ apollo:
99 eagerLoad: 99 eagerLoad:
100 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置 100 enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置
101 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址 101 jdbc: # 自定义的 JDBC 配置项,用于数据库的地址
102 - dao: cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config.InfConfigDAOImpl 102 + dao: cn.iocoder.yudao.coreservice.modules.infra.dal.mysql.config.InfConfigCoreDAOImpl
103 url: ${spring.datasource.dynamic.datasource.master.url} 103 url: ${spring.datasource.dynamic.datasource.master.url}
104 username: ${spring.datasource.dynamic.datasource.master.username} 104 username: ${spring.datasource.dynamic.datasource.master.username}
105 password: ${spring.datasource.dynamic.datasource.master.password} 105 password: ${spring.datasource.dynamic.datasource.master.password}
yudao-admin-server/src/main/resources/application.yaml
@@ -31,7 +31,7 @@ mybatis-plus: @@ -31,7 +31,7 @@ mybatis-plus:
31 logic-delete-value: 1 # 逻辑已删除值(默认为 1) 31 logic-delete-value: 1 # 逻辑已删除值(默认为 1)
32 logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) 32 logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
33 mapper-locations: classpath*:mapper/*.xml 33 mapper-locations: classpath*:mapper/*.xml
34 - type-aliases-package: ${yudao.info.base-package}.modules.*.dal.dataobject 34 + type-aliases-package: ${yudao.info.base-package}.modules.*.dal.dataobject, ${yudao.core-service.base-package}.modules.*.dal.dataobject
35 35
36 --- #################### 芋道相关配置 #################### 36 --- #################### 芋道相关配置 ####################
37 37
@@ -39,6 +39,8 @@ yudao: @@ -39,6 +39,8 @@ yudao:
39 info: 39 info:
40 version: 1.0.0 40 version: 1.0.0
41 base-package: cn.iocoder.yudao.adminserver 41 base-package: cn.iocoder.yudao.adminserver
  42 + core-service:
  43 + base-package: cn.iocoder.yudao.coreservice
42 web: 44 web:
43 api-prefix: /api 45 api-prefix: /api
44 controller-package: ${yudao.info.base-package} 46 controller-package: ${yudao.info.base-package}
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/framework/redis/core/stream/RedisStreamTest.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.adminserver.BaseRedisIntegrationTest; @@ -5,7 +5,7 @@ import cn.iocoder.yudao.adminserver.BaseRedisIntegrationTest;
5 import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.mail.SysMailSendConsumer; 5 import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.mail.SysMailSendConsumer;
6 import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms.SysSmsSendConsumer; 6 import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms.SysSmsSendConsumer;
7 import cn.iocoder.yudao.adminserver.modules.system.mq.message.mail.SysMailSendMessage; 7 import cn.iocoder.yudao.adminserver.modules.system.mq.message.mail.SysMailSendMessage;
8 -import cn.iocoder.yudao.adminserver.modules.system.mq.message.sms.SysSmsSendMessage; 8 +import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;
9 import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils; 9 import cn.iocoder.yudao.framework.mq.core.util.RedisMessageUtils;
10 import org.junit.jupiter.api.Disabled; 10 import org.junit.jupiter.api.Disabled;
11 import org.junit.jupiter.api.Test; 11 import org.junit.jupiter.api.Test;
yudao-admin-server/src/test-integration/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsServiceIntegrationTest.java
@@ -7,9 +7,9 @@ import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms.SysSmsSendCon @@ -7,9 +7,9 @@ import cn.iocoder.yudao.adminserver.modules.system.mq.consumer.sms.SysSmsSendCon
7 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer; 7 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer;
8 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsChannelServiceImpl; 8 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsChannelServiceImpl;
9 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsLogServiceImpl; 9 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsLogServiceImpl;
10 -import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsServiceImpl;  
11 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsTemplateServiceImpl; 10 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsTemplateServiceImpl;
12 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 11 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  12 +import cn.iocoder.yudao.coreservice.modules.system.service.sms.impl.SysSmsCoreServiceImpl;
13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
14 import cn.iocoder.yudao.framework.sms.config.YudaoSmsAutoConfiguration; 14 import cn.iocoder.yudao.framework.sms.config.YudaoSmsAutoConfiguration;
15 import org.junit.jupiter.api.Test; 15 import org.junit.jupiter.api.Test;
@@ -20,13 +20,14 @@ import javax.annotation.Resource; @@ -20,13 +20,14 @@ import javax.annotation.Resource;
20 import java.util.Map; 20 import java.util.Map;
21 import java.util.concurrent.TimeUnit; 21 import java.util.concurrent.TimeUnit;
22 22
  23 +// TODO @芋艿:需要迁移
23 @Import({YudaoSmsAutoConfiguration.class, 24 @Import({YudaoSmsAutoConfiguration.class,
24 - SysSmsChannelServiceImpl.class, SysSmsServiceImpl.class, SysSmsTemplateServiceImpl.class, SysSmsLogServiceImpl.class, 25 + SysSmsChannelServiceImpl.class, SysSmsCoreServiceImpl.class, SysSmsTemplateServiceImpl.class, SysSmsLogServiceImpl.class,
25 SysSmsProducer.class, SysSmsSendConsumer.class}) 26 SysSmsProducer.class, SysSmsSendConsumer.class})
26 public class SysSmsServiceIntegrationTest extends BaseDbAndRedisIntegrationTest { 27 public class SysSmsServiceIntegrationTest extends BaseDbAndRedisIntegrationTest {
27 28
28 @Resource 29 @Resource
29 - private SysSmsServiceImpl smsService; 30 + private SysSmsCoreServiceImpl smsService;
30 @Resource 31 @Resource
31 private SysSmsChannelServiceImpl smsChannelService; 32 private SysSmsChannelServiceImpl smsChannelService;
32 33
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/BaseRedisUnitTest.java
@@ -24,7 +24,7 @@ public class BaseRedisUnitTest { @@ -24,7 +24,7 @@ public class BaseRedisUnitTest {
24 // Redis 配置类 24 // Redis 配置类
25 RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer 25 RedisTestConfiguration.class, // Redis 测试配置类,用于启动 RedisServer
26 RedisAutoConfiguration.class, // Spring Redis 自动配置类 26 RedisAutoConfiguration.class, // Spring Redis 自动配置类
27 - YudaoTracerAutoConfiguration.class, // 自己的 Redis 配置类 27 + YudaoRedisAutoConfiguration.class, // 自己的 Redis 配置类
28 RedissonAutoConfiguration.class, // Redisson 自动高配置类 28 RedissonAutoConfiguration.class, // Redisson 自动高配置类
29 }) 29 })
30 public static class Application { 30 public static class Application {
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/infra/service/config/InfConfigServiceTest.java
1 package cn.iocoder.yudao.adminserver.modules.infra.service.config; 1 package cn.iocoder.yudao.adminserver.modules.infra.service.config;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
  4 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.config.InfConfigDO;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO; 6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigCreateReqVO;
6 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExportReqVO; 7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigExportReqVO;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigPageReqVO; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigPageReqVO;
8 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO; 9 import cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo.InfConfigUpdateReqVO;
9 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.config.InfConfigDO;  
10 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config.InfConfigMapper; 10 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config.InfConfigMapper;
11 import cn.iocoder.yudao.adminserver.modules.infra.enums.config.InfConfigTypeEnum; 11 import cn.iocoder.yudao.adminserver.modules.infra.enums.config.InfConfigTypeEnum;
12 import cn.iocoder.yudao.adminserver.modules.infra.mq.producer.config.InfConfigProducer; 12 import cn.iocoder.yudao.adminserver.modules.infra.mq.producer.config.InfConfigProducer;
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/infra/service/file/InfFileServiceTest.java
@@ -2,14 +2,15 @@ package cn.iocoder.yudao.adminserver.modules.infra.service.file; @@ -2,14 +2,15 @@ package cn.iocoder.yudao.adminserver.modules.infra.service.file;
2 2
3 import cn.hutool.core.io.resource.ResourceUtil; 3 import cn.hutool.core.io.resource.ResourceUtil;
4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
  5 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.file.InfFileDO;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.adminserver.modules.infra.framework.file.config.FileProperties; 7 import cn.iocoder.yudao.adminserver.modules.infra.framework.file.config.FileProperties;
7 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO; 8 import cn.iocoder.yudao.adminserver.modules.infra.controller.file.vo.InfFilePageReqVO;
8 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.file.InfFileDO;  
9 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.file.InfFileMapper; 9 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.file.InfFileMapper;
10 import cn.iocoder.yudao.adminserver.modules.infra.service.file.impl.InfFileServiceImpl; 10 import cn.iocoder.yudao.adminserver.modules.infra.service.file.impl.InfFileServiceImpl;
11 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 11 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
12 import org.junit.jupiter.api.Test; 12 import org.junit.jupiter.api.Test;
  13 +import org.springframework.boot.test.mock.mockito.MockBean;
13 import org.springframework.context.annotation.Import; 14 import org.springframework.context.annotation.Import;
14 15
15 import javax.annotation.Resource; 16 import javax.annotation.Resource;
@@ -29,8 +30,9 @@ public class InfFileServiceTest extends BaseDbUnitTest { @@ -29,8 +30,9 @@ public class InfFileServiceTest extends BaseDbUnitTest {
29 @Resource 30 @Resource
30 private InfFileServiceImpl fileService; 31 private InfFileServiceImpl fileService;
31 32
32 - @Resource 33 + @MockBean
33 private FileProperties fileProperties; 34 private FileProperties fileProperties;
  35 +
34 @Resource 36 @Resource
35 private InfFileMapper fileMapper; 37 private InfFileMapper fileMapper;
36 38
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/infra/service/logger/InfApiAccessLogServiceImplTest.java
@@ -2,13 +2,13 @@ package cn.iocoder.yudao.adminserver.modules.infra.service.logger; @@ -2,13 +2,13 @@ package cn.iocoder.yudao.adminserver.modules.infra.service.logger;
2 2
3 import cn.hutool.core.util.RandomUtil; 3 import cn.hutool.core.util.RandomUtil;
4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
  5 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;
5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 6 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
6 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; 7 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiAccessLogCreateDTO; 9 import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiAccessLogCreateDTO;
9 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO; 10 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogExportReqVO;
10 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO; 11 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiaccesslog.InfApiAccessLogPageReqVO;
11 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiAccessLogDO;  
12 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiAccessLogMapper; 12 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiAccessLogMapper;
13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl.InfApiAccessLogServiceImpl; 13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl.InfApiAccessLogServiceImpl;
14 import cn.iocoder.yudao.framework.test.core.util.RandomUtils; 14 import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
@@ -39,26 +39,6 @@ public class InfApiAccessLogServiceImplTest extends BaseDbUnitTest { @@ -39,26 +39,6 @@ public class InfApiAccessLogServiceImplTest extends BaseDbUnitTest {
39 private InfApiAccessLogMapper infApiAccessLogMapper; 39 private InfApiAccessLogMapper infApiAccessLogMapper;
40 40
41 @Test 41 @Test
42 - public void testCreateApiAccessLogAsync() throws Exception {  
43 - ApiAccessLogCreateDTO createDTO = RandomUtils.randomPojo(  
44 - ApiAccessLogCreateDTO.class,  
45 - dto -> dto.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue())  
46 - );  
47 -  
48 - // 执行service方法  
49 - Future<Boolean> future = infApiAccessLogServiceImpl.createApiAccessLogAsync(createDTO);  
50 -  
51 - // 等异步执行完  
52 - future.get();  
53 -  
54 - InfApiAccessLogDO infApiAccessLogDO = infApiAccessLogMapper.selectOne(null);  
55 - // 断言  
56 - assertNotNull(infApiAccessLogDO);  
57 - // 断言,忽略基本字段  
58 - assertPojoEquals(createDTO, infApiAccessLogDO);  
59 - }  
60 -  
61 - @Test  
62 public void testGetApiAccessLogPage() { 42 public void testGetApiAccessLogPage() {
63 // 构造测试数据 43 // 构造测试数据
64 long userId = 2233L; 44 long userId = 2233L;
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/infra/service/logger/InfApiErrorLogServiceImplTest.java
@@ -2,12 +2,12 @@ package cn.iocoder.yudao.adminserver.modules.infra.service.logger; @@ -2,12 +2,12 @@ package cn.iocoder.yudao.adminserver.modules.infra.service.logger;
2 2
3 import cn.hutool.core.util.RandomUtil; 3 import cn.hutool.core.util.RandomUtil;
4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
  5 +import cn.iocoder.yudao.coreservice.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;
5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 6 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiErrorLogCreateDTO; 8 import cn.iocoder.yudao.framework.apilog.core.service.dto.ApiErrorLogCreateDTO;
8 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO; 9 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogExportReqVO;
9 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO; 10 import cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierrorlog.InfApiErrorLogPageReqVO;
10 -import cn.iocoder.yudao.adminserver.modules.infra.dal.dataobject.logger.InfApiErrorLogDO;  
11 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiErrorLogMapper; 11 import cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.logger.InfApiErrorLogMapper;
12 import cn.iocoder.yudao.adminserver.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum; 12 import cn.iocoder.yudao.adminserver.modules.infra.enums.logger.InfApiErrorLogProcessStatusEnum;
13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl.InfApiErrorLogServiceImpl; 13 import cn.iocoder.yudao.adminserver.modules.infra.service.logger.impl.InfApiErrorLogServiceImpl;
@@ -41,28 +41,6 @@ public class InfApiErrorLogServiceImplTest extends BaseDbUnitTest { @@ -41,28 +41,6 @@ public class InfApiErrorLogServiceImplTest extends BaseDbUnitTest {
41 @Resource 41 @Resource
42 private InfApiErrorLogMapper infApiErrorLogMapper; 42 private InfApiErrorLogMapper infApiErrorLogMapper;
43 43
44 -  
45 - @Test  
46 - public void testCreateApiErrorLogAsync() throws Exception {  
47 - ApiErrorLogCreateDTO createDTO = RandomUtils.randomPojo(  
48 - ApiErrorLogCreateDTO.class,  
49 - dto -> dto.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue())  
50 - );  
51 -  
52 - // 执行service方法  
53 - Future<Boolean> future = infApiErrorLogServiceImpl.createApiErrorLogAsync(createDTO);  
54 -  
55 - // 等异步执行完  
56 - future.get();  
57 -  
58 - InfApiErrorLogDO infApiErrorLogDO = infApiErrorLogMapper.selectOne(null);  
59 - // 断言  
60 - assertNotNull(infApiErrorLogDO);  
61 - // 断言,忽略基本字段  
62 - assertPojoEquals(createDTO, infApiErrorLogDO);  
63 - }  
64 -  
65 -  
66 @Test 44 @Test
67 public void testGetApiErrorLogPage() { 45 public void testGetApiErrorLogPage() {
68 // 构造测试数据 46 // 构造测试数据
@@ -204,4 +182,5 @@ public class InfApiErrorLogServiceImplTest extends BaseDbUnitTest { @@ -204,4 +182,5 @@ public class InfApiErrorLogServiceImplTest extends BaseDbUnitTest {
204 // 验证 progressUserId 是否修改成功 182 // 验证 progressUserId 是否修改成功
205 assertEquals(processUserId, secondSelect.getProcessUserId()); 183 assertEquals(processUserId, secondSelect.getProcessUserId());
206 } 184 }
  185 +
207 } 186 }
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/SysAuthServiceImplTest.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.auth; 1 package cn.iocoder.yudao.adminserver.modules.system.service.auth;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
4 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
5 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
6 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthLoginReqVO; 4 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.auth.SysAuthLoginReqVO;
7 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
8 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum; 5 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum;
9 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum; 6 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;
10 import cn.iocoder.yudao.adminserver.modules.system.service.auth.impl.SysAuthServiceImpl; 7 import cn.iocoder.yudao.adminserver.modules.system.service.auth.impl.SysAuthServiceImpl;
11 import cn.iocoder.yudao.adminserver.modules.system.service.common.SysCaptchaService; 8 import cn.iocoder.yudao.adminserver.modules.system.service.common.SysCaptchaService;
12 -import cn.iocoder.yudao.adminserver.modules.system.service.logger.SysLoginLogService;  
13 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService; 9 import cn.iocoder.yudao.adminserver.modules.system.service.permission.SysPermissionService;
  10 +import cn.iocoder.yudao.adminserver.modules.system.service.social.SysSocialService;
14 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 11 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  12 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  13 +import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;
  14 +import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;
  15 +import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;
  16 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  17 +import cn.iocoder.yudao.framework.security.core.LoginUser;
15 import cn.iocoder.yudao.framework.test.core.util.AssertUtils; 18 import cn.iocoder.yudao.framework.test.core.util.AssertUtils;
16 import org.junit.jupiter.api.Test; 19 import org.junit.jupiter.api.Test;
17 import org.springframework.boot.test.mock.mockito.MockBean; 20 import org.springframework.boot.test.mock.mockito.MockBean;
@@ -49,6 +52,8 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -49,6 +52,8 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
49 @MockBean 52 @MockBean
50 private SysUserService userService; 53 private SysUserService userService;
51 @MockBean 54 @MockBean
  55 + private SysUserCoreService userCoreService;
  56 + @MockBean
52 private SysPermissionService permissionService; 57 private SysPermissionService permissionService;
53 @MockBean 58 @MockBean
54 private AuthenticationManager authenticationManager; 59 private AuthenticationManager authenticationManager;
@@ -57,9 +62,11 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -57,9 +62,11 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
57 @MockBean 62 @MockBean
58 private SysCaptchaService captchaService; 63 private SysCaptchaService captchaService;
59 @MockBean 64 @MockBean
60 - private SysLoginLogService loginLogService; 65 + private SysLoginLogCoreService loginLogCoreService;
  66 + @MockBean
  67 + private SysUserSessionCoreService userSessionCoreService;
61 @MockBean 68 @MockBean
62 - private SysUserSessionService userSessionService; 69 + private SysSocialService socialService;
63 70
64 @Test 71 @Test
65 public void testLoadUserByUsername_success() { 72 public void testLoadUserByUsername_success() {
@@ -94,7 +101,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -94,7 +101,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
94 Long userId = randomLongId(); 101 Long userId = randomLongId();
95 // mock 方法 01 102 // mock 方法 01
96 SysUserDO user = randomPojo(SysUserDO.class, o -> o.setId(userId)); 103 SysUserDO user = randomPojo(SysUserDO.class, o -> o.setId(userId));
97 - when(userService.getUser(eq(userId))).thenReturn(user); 104 + when(userCoreService.getUser(eq(userId))).thenReturn(user);
98 // mock 方法 02 105 // mock 方法 02
99 Set<Long> roleIds = randomSet(Long.class); 106 Set<Long> roleIds = randomSet(Long.class);
100 when(permissionService.getUserRoleIds(eq(userId), eq(singleton(CommonStatusEnum.ENABLE.getStatus())))) 107 when(permissionService.getUserRoleIds(eq(userId), eq(singleton(CommonStatusEnum.ENABLE.getStatus()))))
@@ -128,7 +135,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -128,7 +135,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
128 // 调用, 并断言异常 135 // 调用, 并断言异常
129 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_NOT_FOUND); 136 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_NOT_FOUND);
130 // 校验调用参数 137 // 校验调用参数
131 - verify(loginLogService, times(1)).createLoginLog( 138 + verify(loginLogCoreService, times(1)).createLoginLog(
132 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType()) 139 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType())
133 && o.getResult().equals(SysLoginResultEnum.CAPTCHA_NOT_FOUND.getResult())) 140 && o.getResult().equals(SysLoginResultEnum.CAPTCHA_NOT_FOUND.getResult()))
134 ); 141 );
@@ -146,7 +153,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -146,7 +153,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
146 // 调用, 并断言异常 153 // 调用, 并断言异常
147 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_CODE_ERROR); 154 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_CODE_ERROR);
148 // 校验调用参数 155 // 校验调用参数
149 - verify(loginLogService, times(1)).createLoginLog( 156 + verify(loginLogCoreService, times(1)).createLoginLog(
150 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType()) 157 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType())
151 && o.getResult().equals(SysLoginResultEnum.CAPTCHA_CODE_ERROR.getResult())) 158 && o.getResult().equals(SysLoginResultEnum.CAPTCHA_CODE_ERROR.getResult()))
152 ); 159 );
@@ -167,7 +174,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -167,7 +174,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
167 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_BAD_CREDENTIALS); 174 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_BAD_CREDENTIALS);
168 // 校验调用参数 175 // 校验调用参数
169 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 176 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
170 - verify(loginLogService, times(1)).createLoginLog( 177 + verify(loginLogCoreService, times(1)).createLoginLog(
171 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType()) 178 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType())
172 && o.getResult().equals(SysLoginResultEnum.BAD_CREDENTIALS.getResult())) 179 && o.getResult().equals(SysLoginResultEnum.BAD_CREDENTIALS.getResult()))
173 ); 180 );
@@ -188,7 +195,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -188,7 +195,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
188 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_USER_DISABLED); 195 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_USER_DISABLED);
189 // 校验调用参数 196 // 校验调用参数
190 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 197 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
191 - verify(loginLogService, times(1)).createLoginLog( 198 + verify(loginLogCoreService, times(1)).createLoginLog(
192 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType()) 199 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType())
193 && o.getResult().equals(SysLoginResultEnum.USER_DISABLED.getResult())) 200 && o.getResult().equals(SysLoginResultEnum.USER_DISABLED.getResult()))
194 ); 201 );
@@ -209,7 +216,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -209,7 +216,7 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
209 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_FAIL_UNKNOWN); 216 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_FAIL_UNKNOWN);
210 // 校验调用参数 217 // 校验调用参数
211 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 218 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
212 - verify(loginLogService, times(1)).createLoginLog( 219 + verify(loginLogCoreService, times(1)).createLoginLog(
213 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType()) 220 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType())
214 && o.getResult().equals(SysLoginResultEnum.UNKNOWN_ERROR.getResult())) 221 && o.getResult().equals(SysLoginResultEnum.UNKNOWN_ERROR.getResult()))
215 ); 222 );
@@ -237,13 +244,13 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -237,13 +244,13 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
237 // mock 获得 User 拥有的角色编号数组 244 // mock 获得 User 拥有的角色编号数组
238 when(permissionService.getUserRoleIds(userId, singleton(CommonStatusEnum.ENABLE.getStatus()))).thenReturn(userRoleIds); 245 when(permissionService.getUserRoleIds(userId, singleton(CommonStatusEnum.ENABLE.getStatus()))).thenReturn(userRoleIds);
239 // mock 缓存登录用户到 Redis 246 // mock 缓存登录用户到 Redis
240 - when(userSessionService.createUserSession(loginUser, userIp, userAgent)).thenReturn(sessionId); 247 + when(userSessionCoreService.createUserSession(loginUser, userIp, userAgent)).thenReturn(sessionId);
241 // 调用, 并断言异常 248 // 调用, 并断言异常
242 String login = authService.login(reqVO, userIp, userAgent); 249 String login = authService.login(reqVO, userIp, userAgent);
243 assertEquals(sessionId, login); 250 assertEquals(sessionId, login);
244 // 校验调用参数 251 // 校验调用参数
245 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 252 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
246 - verify(loginLogService, times(1)).createLoginLog( 253 + verify(loginLogCoreService, times(1)).createLoginLog(
247 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType()) 254 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGIN_USERNAME.getType())
248 && o.getResult().equals(SysLoginResultEnum.SUCCESS.getResult())) 255 && o.getResult().equals(SysLoginResultEnum.SUCCESS.getResult()))
249 ); 256 );
@@ -255,12 +262,12 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest { @@ -255,12 +262,12 @@ public class SysAuthServiceImplTest extends BaseDbUnitTest {
255 String token = randomString(); 262 String token = randomString();
256 LoginUser loginUser = randomPojo(LoginUser.class); 263 LoginUser loginUser = randomPojo(LoginUser.class);
257 // mock 264 // mock
258 - when(userSessionService.getLoginUser(token)).thenReturn(loginUser); 265 + when(userSessionCoreService.getLoginUser(token)).thenReturn(loginUser);
259 // 调用 266 // 调用
260 authService.logout(token); 267 authService.logout(token);
261 // 校验调用参数 268 // 校验调用参数
262 - verify(userSessionService, times(1)).deleteUserSession(token);  
263 - verify(loginLogService, times(1)).createLoginLog( 269 + verify(userSessionCoreService, times(1)).deleteUserSession(token);
  270 + verify(loginLogCoreService, times(1)).createLoginLog(
264 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGOUT_SELF.getType()) 271 argThat(o -> o.getLogType().equals(SysLoginLogTypeEnum.LOGOUT_SELF.getType())
265 && o.getResult().equals(SysLoginResultEnum.SUCCESS.getResult())) 272 && o.getResult().equals(SysLoginResultEnum.SUCCESS.getResult()))
266 ); 273 );
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/auth/SysUserSessionServiceImplTest.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.auth; 1 package cn.iocoder.yudao.adminserver.modules.system.service.auth;
2 2
3 -import static cn.hutool.core.util.RandomUtil.randomEle;  
4 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
5 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomDate;  
6 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;  
7 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;  
8 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;  
9 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;  
10 -import static org.junit.jupiter.api.Assertions.assertEquals;  
11 -import static org.junit.jupiter.api.Assertions.assertNotEquals;  
12 -import static org.junit.jupiter.api.Assertions.assertNotNull;  
13 -import static org.junit.jupiter.api.Assertions.assertNull;  
14 -import static org.mockito.Mockito.when;  
15 -  
16 -import java.time.Duration;  
17 -import java.util.Date;  
18 -import java.util.List;  
19 -import java.util.stream.Collectors;  
20 -import java.util.stream.Stream;  
21 -  
22 -import javax.annotation.Resource;  
23 -  
24 -import org.junit.jupiter.api.Test;  
25 -import org.springframework.boot.test.mock.mockito.MockBean;  
26 -import org.springframework.context.annotation.Import;  
27 -  
28 import cn.hutool.core.date.DateUtil; 3 import cn.hutool.core.date.DateUtil;
29 import cn.iocoder.yudao.adminserver.BaseDbAndRedisUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbAndRedisUnitTest;
30 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
31 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
32 -import cn.iocoder.yudao.framework.security.config.SecurityProperties;  
33 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
34 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.auth.vo.session.SysUserSessionPageReqVO;
35 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.auth.SysUserSessionDO;  
36 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
37 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth.SysUserSessionMapper; 6 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.auth.SysUserSessionMapper;
38 -import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.user.SysUserMapper;  
39 -import cn.iocoder.yudao.adminserver.modules.system.dal.redis.auth.SysLoginUserRedisDAO;  
40 -import cn.iocoder.yudao.adminserver.modules.system.enums.common.SysSexEnum;  
41 import cn.iocoder.yudao.adminserver.modules.system.service.auth.impl.SysUserSessionServiceImpl; 7 import cn.iocoder.yudao.adminserver.modules.system.service.auth.impl.SysUserSessionServiceImpl;
42 -import cn.iocoder.yudao.adminserver.modules.system.service.dept.impl.SysDeptServiceImpl;  
43 -import cn.iocoder.yudao.adminserver.modules.system.service.logger.impl.SysLoginLogServiceImpl;  
44 -import cn.iocoder.yudao.adminserver.modules.system.service.user.impl.SysUserServiceImpl;  
45 -import cn.iocoder.yudao.framework.test.core.util.AssertUtils;  
46 -import cn.iocoder.yudao.framework.test.core.util.RandomUtils; 8 +import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
  9 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;
  10 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  11 +import cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth.SysLoginUserCoreRedisDAO;
  12 +import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;
  13 +import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;
  14 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  15 +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
  16 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
47 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 17 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
  18 +import cn.iocoder.yudao.framework.test.core.util.AssertUtils;
  19 +import org.junit.jupiter.api.Test;
  20 +import org.springframework.boot.test.mock.mockito.MockBean;
  21 +import org.springframework.context.annotation.Import;
  22 +
  23 +import javax.annotation.Resource;
  24 +import java.util.Date;
  25 +import java.util.List;
  26 +import java.util.stream.Collectors;
  27 +import java.util.stream.Stream;
  28 +
  29 +import static cn.hutool.core.util.RandomUtil.randomEle;
  30 +import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
  31 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
  32 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;
  33 +import static java.util.Collections.singletonList;
  34 +import static org.junit.jupiter.api.Assertions.assertEquals;
  35 +import static org.mockito.ArgumentMatchers.eq;
  36 +import static org.mockito.Mockito.when;
48 37
49 /** 38 /**
50 - * SysUserSessionServiceImpl Tester. 39 + * {@link SysUserSessionServiceImpl} 的单元测试
51 * 40 *
52 * @author Lyon 41 * @author Lyon
53 - * @version 1.0  
54 - * @since <pre>3月 8, 2021</pre>  
55 */ 42 */
56 -@Import({SysUserSessionServiceImpl.class, SysLoginUserRedisDAO.class}) 43 +@Import({SysUserSessionServiceImpl.class})
57 public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest { 44 public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest {
58 45
59 @Resource 46 @Resource
60 - private SysUserSessionServiceImpl sysUserSessionService;  
61 - @Resource  
62 - private SysUserSessionMapper sysUserSessionMapper;  
63 - @Resource  
64 - private SysLoginUserRedisDAO sysLoginUserRedisDAO; 47 + private SysUserSessionServiceImpl userSessionService;
  48 +
65 @Resource 49 @Resource
66 - private SysUserMapper sysUserMapper; 50 + private SysUserSessionMapper userSessionMapper;
67 51
68 @MockBean 52 @MockBean
69 - private SecurityProperties securityProperties; 53 + private SysUserService userService;
70 @MockBean 54 @MockBean
71 - private SysDeptServiceImpl sysDeptService; 55 + private SysLoginLogCoreService loginLogCoreService;
72 @MockBean 56 @MockBean
73 - private SysUserServiceImpl sysUserService;  
74 - @MockBean  
75 - private SysLoginLogServiceImpl sysLoginLogService;  
76 -  
77 - @Test  
78 - public void testCreateUserSession_success() {  
79 - // 准备参数  
80 - String userIp = randomString();  
81 - String userAgent = randomString();  
82 - LoginUser loginUser = randomPojo(LoginUser.class);  
83 - // mock  
84 - when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));  
85 - // 调用  
86 - String sessionId = sysUserSessionService.createUserSession(loginUser, userIp, userAgent);  
87 - // 校验记录的属性是否正确  
88 - SysUserSessionDO sysUserSessionDO = sysUserSessionMapper.selectById(sessionId);  
89 - assertEquals(sysUserSessionDO.getId(), sessionId);  
90 - assertEquals(sysUserSessionDO.getUserId(), loginUser.getId());  
91 - assertEquals(sysUserSessionDO.getUserIp(), userIp);  
92 - assertEquals(sysUserSessionDO.getUserAgent(), userAgent);  
93 - assertEquals(sysUserSessionDO.getUsername(), loginUser.getUsername());  
94 - LoginUser redisLoginUser = sysLoginUserRedisDAO.get(sessionId);  
95 - AssertUtils.assertPojoEquals(redisLoginUser, loginUser, "username","password");  
96 - }  
97 -  
98 - @Test  
99 - public void testCreateRefreshUserSession_success() {  
100 - // 准备参数  
101 - String sessionId = randomString();  
102 - String userIp = randomString();  
103 - String userAgent = randomString();  
104 - Long timeLong = randomLongId();  
105 - String userName = randomString();  
106 - Date date = randomDate();  
107 - LoginUser loginUser = randomPojo(LoginUser.class);  
108 - // mock  
109 - when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));  
110 - loginUser.setUpdateTime(date);  
111 - sysLoginUserRedisDAO.set(sessionId, loginUser);  
112 - SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)  
113 - .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent).username(userName)  
114 - .sessionTimeout(addTime(Duration.ofMillis(timeLong)))  
115 - .build();  
116 - sysUserSessionMapper.insert(userSession);  
117 - SysUserSessionDO insertDO = sysUserSessionMapper.selectById(sessionId);  
118 - // 调用  
119 - sysUserSessionService.refreshUserSession(sessionId, loginUser);  
120 - // 校验记录 redis  
121 - LoginUser redisLoginUser = sysLoginUserRedisDAO.get(sessionId);  
122 - assertNotEquals(redisLoginUser.getUpdateTime(), date);  
123 - // 校验记录 SysUserSessionDO  
124 - SysUserSessionDO updateDO = sysUserSessionMapper.selectById(sessionId);  
125 - assertEquals(updateDO.getUsername(), loginUser.getUsername());  
126 - assertNotEquals(updateDO.getUpdateTime(), insertDO.getUpdateTime());  
127 - assertNotEquals(updateDO.getSessionTimeout(), addTime(Duration.ofMillis(timeLong)));  
128 - }  
129 -  
130 - @Test  
131 - public void testDeleteUserSession_success() {  
132 - // 准备参数  
133 - String sessionId = randomString();  
134 - String userIp = randomString();  
135 - String userAgent = randomString();  
136 - Long timeLong = randomLongId();  
137 - LoginUser loginUser = randomPojo(LoginUser.class);  
138 - // mock 存入 Redis  
139 - when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));  
140 - sysLoginUserRedisDAO.set(sessionId, loginUser);  
141 - // mock 存入 db  
142 - SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)  
143 - .userId(loginUser.getId()).userIp(userIp).userAgent(userAgent).username(loginUser.getUsername())  
144 - .sessionTimeout(addTime(Duration.ofMillis(timeLong)))  
145 - .build();  
146 - sysUserSessionMapper.insert(userSession);  
147 - // 校验数据存在  
148 - assertNotNull(sysLoginUserRedisDAO.get(sessionId));  
149 - assertNotNull(sysUserSessionMapper.selectById(sessionId));  
150 - // 调用  
151 - sysUserSessionService.deleteUserSession(sessionId);  
152 - // 校验数据不存在了  
153 - assertNull(sysLoginUserRedisDAO.get(sessionId));  
154 - assertNull(sysUserSessionMapper.selectById(sessionId));  
155 - } 57 + private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO;
156 58
157 @Test 59 @Test
158 public void testGetUserSessionPage_success() { 60 public void testGetUserSessionPage_success() {
159 // mock 数据 61 // mock 数据
160 - String userIp = randomString();  
161 - SysUserDO dbUser1 = randomPojo(SysUserDO.class, o -> {  
162 - o.setUsername("testUsername1");  
163 - o.setSex(randomEle(SysSexEnum.values()).getSex());  
164 - o.setStatus(CommonStatusEnum.ENABLE.getStatus());  
165 - });  
166 - SysUserDO dbUser2 = randomPojo(SysUserDO.class, o -> {  
167 - o.setUsername("testUsername2"); 62 + SysUserDO dbUser = randomPojo(SysUserDO.class, o -> {
168 o.setSex(randomEle(SysSexEnum.values()).getSex()); 63 o.setSex(randomEle(SysSexEnum.values()).getSex());
169 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 64 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
170 }); 65 });
  66 + when(userService.getUsersByUsername(eq(dbUser.getUsername()))).thenReturn(singletonList(dbUser));
  67 + // 插入可被查询到的数据
  68 + String userIp = randomString();
171 SysUserSessionDO dbSession = randomPojo(SysUserSessionDO.class, o -> { 69 SysUserSessionDO dbSession = randomPojo(SysUserSessionDO.class, o -> {
172 - o.setUserId(dbUser1.getId()); 70 + o.setUserId(dbUser.getId());
  71 + o.setUserType(randomEle(UserTypeEnum.values()).getValue());
173 o.setUserIp(userIp); 72 o.setUserIp(userIp);
174 }); 73 });
175 - sysUserMapper.insert(dbUser1);  
176 - sysUserMapper.insert(dbUser2);  
177 - sysUserSessionMapper.insert(dbSession);  
178 - sysUserSessionMapper.insert(ObjectUtils.clone(dbSession, o -> { 74 + userSessionMapper.insert(dbSession);
  75 + // 测试 username 不匹配
  76 + userSessionMapper.insert(ObjectUtils.clone(dbSession, o -> {
179 o.setId(randomString()); 77 o.setId(randomString());
180 - o.setUserId(dbUser2.getId());  
181 - }));  
182 - // 测试 userId 不匹配  
183 - sysUserSessionMapper.insert(ObjectUtils.clone(dbSession, o -> {  
184 - o.setId(randomString());  
185 - o.setUserId(123456l); 78 + o.setUserId(123456L);
186 })); 79 }));
187 // 测试 userIp 不匹配 80 // 测试 userIp 不匹配
188 - sysUserSessionMapper.insert(ObjectUtils.clone(dbSession, o -> { 81 + userSessionMapper.insert(ObjectUtils.clone(dbSession, o -> {
189 o.setId(randomString()); 82 o.setId(randomString());
190 o.setUserIp("testUserIp"); 83 o.setUserIp("testUserIp");
191 })); 84 }));
192 // 准备参数 85 // 准备参数
193 - SysUserSessionPageReqVO reqVo = new SysUserSessionPageReqVO();  
194 - reqVo.setUserIp(userIp); 86 + SysUserSessionPageReqVO reqVO = new SysUserSessionPageReqVO();
  87 + reqVO.setUsername(dbUser.getUsername());
  88 + reqVO.setUserIp(userIp);
  89 +
195 // 调用 90 // 调用
196 - PageResult<SysUserSessionDO> pageResult = sysUserSessionService.getUserSessionPage(reqVo); 91 + PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO);
197 // 断言 92 // 断言
198 - assertEquals(3, pageResult.getTotal());  
199 - assertEquals(3, pageResult.getList().size()); 93 + assertEquals(1, pageResult.getTotal());
  94 + assertEquals(1, pageResult.getList().size());
200 assertPojoEquals(dbSession, pageResult.getList().get(0)); 95 assertPojoEquals(dbSession, pageResult.getList().get(0));
201 } 96 }
202 97
  98 + // TODO 芋艿:单测写的有问题
203 @Test 99 @Test
204 - public void testClearSessionTimeout_success() throws Exception { 100 + public void testClearSessionTimeout_success() {
205 // 准备超时数据 120 条, 在线用户 1 条 101 // 准备超时数据 120 条, 在线用户 1 条
206 int expectedTimeoutCount = 120, expectedTotal = 1; 102 int expectedTimeoutCount = 120, expectedTotal = 1;
207 103
@@ -209,17 +105,23 @@ public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest { @@ -209,17 +105,23 @@ public class SysUserSessionServiceImplTest extends BaseDbAndRedisUnitTest {
209 List<SysUserSessionDO> prepareData = Stream 105 List<SysUserSessionDO> prepareData = Stream
210 .iterate(0, i -> i) 106 .iterate(0, i -> i)
211 .limit(expectedTimeoutCount) 107 .limit(expectedTimeoutCount)
212 - .map(i -> RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetSecond(new Date(), -1)))) 108 + .map(i -> randomPojo(SysUserSessionDO.class, o -> {
  109 + o.setUserType(randomEle(UserTypeEnum.values()).getValue());
  110 + o.setSessionTimeout(DateUtil.offsetSecond(new Date(), -1));
  111 + }))
213 .collect(Collectors.toList()); 112 .collect(Collectors.toList());
214 - SysUserSessionDO sessionDO = RandomUtils.randomPojo(SysUserSessionDO.class, o -> o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30))); 113 + SysUserSessionDO sessionDO = randomPojo(SysUserSessionDO.class, o -> {
  114 + o.setUserType(randomEle(UserTypeEnum.values()).getValue());
  115 + o.setSessionTimeout(DateUtil.offsetMinute(new Date(), 30));
  116 + });
215 prepareData.add(sessionDO); 117 prepareData.add(sessionDO);
216 - prepareData.forEach(sysUserSessionMapper::insert); 118 + prepareData.forEach(userSessionMapper::insert);
217 119
218 - //清空超时数据  
219 - long actualTimeoutCount = sysUserSessionService.clearSessionTimeout();  
220 - //校验 120 + // 清空超时数据
  121 + long actualTimeoutCount = userSessionService.clearSessionTimeout();
  122 + // 校验
221 assertEquals(expectedTimeoutCount, actualTimeoutCount); 123 assertEquals(expectedTimeoutCount, actualTimeoutCount);
222 - List<SysUserSessionDO> userSessionDOS = sysUserSessionMapper.selectList(); 124 + List<SysUserSessionDO> userSessionDOS = userSessionMapper.selectList();
223 assertEquals(expectedTotal, userSessionDOS.size()); 125 assertEquals(expectedTotal, userSessionDOS.size());
224 AssertUtils.assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime"); 126 AssertUtils.assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime");
225 } 127 }
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/dict/SysDictDataServiceTest.java
1 package cn.iocoder.yudao.adminserver.modules.system.service.dict; 1 package cn.iocoder.yudao.adminserver.modules.system.service.dict;
2 2
3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 3 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
  4 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataCreateReqVO;
7 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO; 8 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataExportReqVO;
8 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO; 9 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataPageReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO; 10 import cn.iocoder.yudao.adminserver.modules.system.controller.dict.vo.data.SysDictDataUpdateReqVO;
10 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictDataDO;  
11 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTypeDO; 11 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.dict.SysDictTypeDO;
12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictDataMapper; 12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.dict.SysDictDataMapper;
13 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dict.SysDictDataProducer; 13 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.dict.SysDictDataProducer;
@@ -51,37 +51,6 @@ public class SysDictDataServiceTest extends BaseDbUnitTest { @@ -51,37 +51,6 @@ public class SysDictDataServiceTest extends BaseDbUnitTest {
51 @MockBean 51 @MockBean
52 private SysDictDataProducer dictDataProducer; 52 private SysDictDataProducer dictDataProducer;
53 53
54 - /**  
55 - * 测试加载到新的字典数据的情况  
56 - */  
57 - @Test  
58 - @SuppressWarnings("unchecked")  
59 - public void testInitLocalCache() {  
60 - // mock 数据  
61 - SysDictDataDO dictData01 = randomDictDataDO();  
62 - dictDataMapper.insert(dictData01);  
63 - SysDictDataDO dictData02 = randomDictDataDO();  
64 - dictDataMapper.insert(dictData02);  
65 -  
66 - // 调用  
67 - dictDataService.initLocalCache();  
68 - // 断言 labelDictDataCache 缓存  
69 - ImmutableTable<String, String, SysDictDataDO> labelDictDataCache =  
70 - (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "labelDictDataCache");  
71 - assertEquals(2, labelDictDataCache.size());  
72 - assertPojoEquals(dictData01, labelDictDataCache.get(dictData01.getDictType(), dictData01.getLabel()));  
73 - assertPojoEquals(dictData02, labelDictDataCache.get(dictData02.getDictType(), dictData02.getLabel()));  
74 - // 断言 valueDictDataCache 缓存  
75 - ImmutableTable<String, String, SysDictDataDO> valueDictDataCache =  
76 - (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "valueDictDataCache");  
77 - assertEquals(2, valueDictDataCache.size());  
78 - assertPojoEquals(dictData01, valueDictDataCache.get(dictData01.getDictType(), dictData01.getValue()));  
79 - assertPojoEquals(dictData02, valueDictDataCache.get(dictData02.getDictType(), dictData02.getValue()));  
80 - // 断言 maxUpdateTime 缓存  
81 - Date maxUpdateTime = (Date) getFieldValue(dictDataService, "maxUpdateTime");  
82 - assertEquals(ObjectUtils.max(dictData01.getUpdateTime(), dictData02.getUpdateTime()), maxUpdateTime);  
83 - }  
84 -  
85 @Test 54 @Test
86 public void testGetDictDataPage() { 55 public void testGetDictDataPage() {
87 // mock 数据 56 // mock 数据
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/SysLoginLogServiceImplTest.java
@@ -2,12 +2,12 @@ package cn.iocoder.yudao.adminserver.modules.system.service.logger; @@ -2,12 +2,12 @@ package cn.iocoder.yudao.adminserver.modules.system.service.logger;
2 2
3 import cn.hutool.core.util.RandomUtil; 3 import cn.hutool.core.util.RandomUtil;
4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
  5 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;
  6 +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 8 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
7 -import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogCreateReqVO;  
8 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO; 9 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogExportReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO; 10 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.loginlog.SysLoginLogPageReqVO;
10 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysLoginLogDO;  
11 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysLoginLogMapper; 11 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysLoginLogMapper;
12 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum; 12 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginLogTypeEnum;
13 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum; 13 import cn.iocoder.yudao.adminserver.modules.system.enums.logger.SysLoginResultEnum;
@@ -34,34 +34,13 @@ public class SysLoginLogServiceImplTest extends BaseDbUnitTest { @@ -34,34 +34,13 @@ public class SysLoginLogServiceImplTest extends BaseDbUnitTest {
34 private SysLoginLogMapper loginLogMapper; 34 private SysLoginLogMapper loginLogMapper;
35 35
36 @Test 36 @Test
37 - public void testCreateLoginLog() {  
38 - String traceId = TracerUtils.getTraceId();  
39 - SysLoginLogCreateReqVO reqVO = RandomUtils.randomPojo(SysLoginLogCreateReqVO.class, vo -> {  
40 - // 指定随机的范围,避免超出范围入库失败  
41 - vo.setLogType(RandomUtil.randomEle(SysLoginLogTypeEnum.values()).getType());  
42 - vo.setResult(RandomUtil.randomEle(SysLoginResultEnum.values()).getResult());  
43 - // 使用TracerUtils生成的TraceId  
44 - vo.setTraceId(traceId);  
45 - });  
46 -  
47 - // 执行service方法  
48 - sysLoginLogService.createLoginLog(reqVO);  
49 -  
50 - // 断言,忽略基本字段  
51 - SysLoginLogDO sysLoginLogDO = loginLogMapper.selectOne(null);  
52 - assertPojoEquals(reqVO, sysLoginLogDO);  
53 - }  
54 -  
55 -  
56 - @Test  
57 public void testGetLoginLogPage() { 37 public void testGetLoginLogPage() {
58 -  
59 // 构造测试数据 38 // 构造测试数据
60 -  
61 // 登录成功的 39 // 登录成功的
62 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> { 40 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> {
63 logDO.setLogType(RandomUtil.randomEle(SysLoginLogTypeEnum.values()).getType()); 41 logDO.setLogType(RandomUtil.randomEle(SysLoginLogTypeEnum.values()).getType());
64 logDO.setTraceId(TracerUtils.getTraceId()); 42 logDO.setTraceId(TracerUtils.getTraceId());
  43 + logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue());
65 44
66 logDO.setUserIp("192.168.199.16"); 45 logDO.setUserIp("192.168.199.16");
67 logDO.setUsername("wangkai"); 46 logDO.setUsername("wangkai");
@@ -100,13 +79,13 @@ public class SysLoginLogServiceImplTest extends BaseDbUnitTest { @@ -100,13 +79,13 @@ public class SysLoginLogServiceImplTest extends BaseDbUnitTest {
100 79
101 @Test 80 @Test
102 public void testGetLoginLogList() { 81 public void testGetLoginLogList() {
103 -  
104 // 构造测试数据 82 // 构造测试数据
105 83
106 // 登录成功的 84 // 登录成功的
107 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> { 85 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> {
108 logDO.setLogType(RandomUtil.randomEle(SysLoginLogTypeEnum.values()).getType()); 86 logDO.setLogType(RandomUtil.randomEle(SysLoginLogTypeEnum.values()).getType());
109 logDO.setTraceId(TracerUtils.getTraceId()); 87 logDO.setTraceId(TracerUtils.getTraceId());
  88 + logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue());
110 89
111 logDO.setUserIp("192.168.111.16"); 90 logDO.setUserIp("192.168.111.16");
112 logDO.setUsername("wangxiaokai"); 91 logDO.setUsername("wangxiaokai");
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/logger/SysOperateLogServiceImplTest.java
@@ -2,34 +2,35 @@ package cn.iocoder.yudao.adminserver.modules.system.service.logger; @@ -2,34 +2,35 @@ package cn.iocoder.yudao.adminserver.modules.system.service.logger;
2 2
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
5 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
6 -import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;  
9 -import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;  
10 -import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;  
11 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogExportReqVO;
12 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.logger.vo.operatelog.SysOperateLogPageReqVO;
13 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO; 7 import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.logger.SysOperateLogDO;
14 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.user.SysUserDO;  
15 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysOperateLogMapper; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.logger.SysOperateLogMapper;
16 -import cn.iocoder.yudao.adminserver.modules.system.enums.common.SysSexEnum;  
17 import cn.iocoder.yudao.adminserver.modules.system.service.logger.impl.SysOperateLogServiceImpl; 9 import cn.iocoder.yudao.adminserver.modules.system.service.logger.impl.SysOperateLogServiceImpl;
18 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService; 10 import cn.iocoder.yudao.adminserver.modules.system.service.user.SysUserService;
19 -import cn.iocoder.yudao.framework.test.core.util.RandomUtils; 11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;
  12 +import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;
  13 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  14 +import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
  15 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  16 +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
20 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 17 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
  18 +import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
  19 +import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
  20 +import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
21 import org.junit.jupiter.api.Test; 21 import org.junit.jupiter.api.Test;
22 import org.springframework.boot.test.mock.mockito.MockBean; 22 import org.springframework.boot.test.mock.mockito.MockBean;
23 import org.springframework.context.annotation.Import; 23 import org.springframework.context.annotation.Import;
24 24
25 import javax.annotation.Resource; 25 import javax.annotation.Resource;
26 -import java.util.*; 26 +import java.util.Collections;
  27 +import java.util.List;
27 import java.util.concurrent.ExecutionException; 28 import java.util.concurrent.ExecutionException;
28 import java.util.concurrent.Future; 29 import java.util.concurrent.Future;
29 30
  31 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
30 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; 32 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
31 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId; 33 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId;
32 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;  
33 import static org.junit.jupiter.api.Assertions.assertEquals; 34 import static org.junit.jupiter.api.Assertions.assertEquals;
34 import static org.mockito.Mockito.when; 35 import static org.mockito.Mockito.when;
35 36
yudao-admin-server/src/test/java/cn/iocoder/yudao/adminserver/modules/system/service/sms/SysSmsChannelServiceTest.java
@@ -2,18 +2,18 @@ package cn.iocoder.yudao.adminserver.modules.system.service.sms; @@ -2,18 +2,18 @@ package cn.iocoder.yudao.adminserver.modules.system.service.sms;
2 2
3 import cn.hutool.core.bean.BeanUtil; 3 import cn.hutool.core.bean.BeanUtil;
4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest; 4 import cn.iocoder.yudao.adminserver.BaseDbUnitTest;
5 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
7 -import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;  
8 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO; 5 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelCreateReqVO;
9 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO; 6 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelPageReqVO;
10 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO; 7 import cn.iocoder.yudao.adminserver.modules.system.controller.sms.vo.channel.SysSmsChannelUpdateReqVO;
11 -import cn.iocoder.yudao.adminserver.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
12 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsChannelMapper; 8 import cn.iocoder.yudao.adminserver.modules.system.dal.mysql.sms.SysSmsChannelMapper;
13 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer; 9 import cn.iocoder.yudao.adminserver.modules.system.mq.producer.sms.SysSmsProducer;
14 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsChannelServiceImpl; 10 import cn.iocoder.yudao.adminserver.modules.system.service.sms.impl.SysSmsChannelServiceImpl;
  11 +import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;
  12 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  13 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
15 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 14 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
16 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 15 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
  16 +import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
17 import org.junit.jupiter.api.Test; 17 import org.junit.jupiter.api.Test;
18 import org.springframework.boot.test.mock.mockito.MockBean; 18 import org.springframework.boot.test.mock.mockito.MockBean;
19 import org.springframework.context.annotation.Import; 19 import org.springframework.context.annotation.Import;