Commit ab6ec2f0edaf13c1338ec3235b26ad4516db8508

Authored by YunaiV
1 parent 117914d9

多模块重构 4:system 模块的创建,去除 Sys

Showing 224 changed files with 1612 additions and 2215 deletions
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/config/vo/InfConfigExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.config.vo;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -30,11 +30,11 @@ public class InfConfigExcelVO { @@ -30,11 +30,11 @@ public class InfConfigExcelVO {
30 private String value; 30 private String value;
31 31
32 @ExcelProperty(value = "参数类型", converter = DictConvert.class) 32 @ExcelProperty(value = "参数类型", converter = DictConvert.class)
33 - @DictFormat(SysDictTypeConstants.CONFIG_TYPE) 33 + @DictFormat(DictTypeConstants.CONFIG_TYPE)
34 private Integer type; 34 private Integer type;
35 35
36 @ExcelProperty(value = "是否敏感", converter = DictConvert.class) 36 @ExcelProperty(value = "是否敏感", converter = DictConvert.class)
37 - @DictFormat(SysDictTypeConstants.BOOLEAN_STRING) 37 + @DictFormat(DictTypeConstants.BOOLEAN_STRING)
38 private Boolean sensitive; 38 private Boolean sensitive;
39 39
40 @ExcelProperty("备注") 40 @ExcelProperty("备注")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apiaccesslog/InfApiAccessLogExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiacces @@ -2,7 +2,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apiacces
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -26,7 +26,7 @@ public class InfApiAccessLogExcelVO { @@ -26,7 +26,7 @@ public class InfApiAccessLogExcelVO {
26 private Long userId; 26 private Long userId;
27 27
28 @ExcelProperty(value = "用户类型", converter = DictConvert.class) 28 @ExcelProperty(value = "用户类型", converter = DictConvert.class)
29 - @DictFormat(SysDictTypeConstants.USER_TYPE) 29 + @DictFormat(DictTypeConstants.USER_TYPE)
30 private Integer userType; 30 private Integer userType;
31 31
32 @ExcelProperty("应用名") 32 @ExcelProperty("应用名")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/infra/controller/logger/vo/apierrorlog/InfApiErrorLogExcelVO.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierror @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.infra.controller.logger.vo.apierror
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants; 5 import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 6 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
7 import com.alibaba.excel.annotation.ExcelProperty; 7 import com.alibaba.excel.annotation.ExcelProperty;
8 import lombok.Data; 8 import lombok.Data;
9 9
@@ -27,7 +27,7 @@ public class InfApiErrorLogExcelVO { @@ -27,7 +27,7 @@ public class InfApiErrorLogExcelVO {
27 private Integer userId; 27 private Integer userId;
28 28
29 @ExcelProperty(value = "用户类型", converter = DictConvert.class) 29 @ExcelProperty(value = "用户类型", converter = DictConvert.class)
30 - @DictFormat(SysDictTypeConstants.USER_TYPE) 30 + @DictFormat(DictTypeConstants.USER_TYPE)
31 private Integer userType; 31 private Integer userType;
32 32
33 @ExcelProperty("应用名") 33 @ExcelProperty("应用名")
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/order/PayOrderExcelVO.java
1 package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order; 1 package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.order;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 3 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
4 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 4 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
5 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 5 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
@@ -46,11 +46,11 @@ public class PayOrderExcelVO { @@ -46,11 +46,11 @@ public class PayOrderExcelVO {
46 @ExcelProperty("渠道手续费,单位:百分比") 46 @ExcelProperty("渠道手续费,单位:百分比")
47 private String channelFeeRate; 47 private String channelFeeRate;
48 48
49 - @DictFormat(SysDictTypeConstants.PAY_ORDER_STATUS) 49 + @DictFormat(DictTypeConstants.PAY_ORDER_STATUS)
50 @ExcelProperty(value = "支付状态", converter = DictConvert.class) 50 @ExcelProperty(value = "支付状态", converter = DictConvert.class)
51 private Integer status; 51 private Integer status;
52 52
53 - @DictFormat(SysDictTypeConstants.PAY_ORDER_NOTIFY_STATUS) 53 + @DictFormat(DictTypeConstants.PAY_ORDER_NOTIFY_STATUS)
54 @ExcelProperty(value = "通知商户支付结果的回调状态", converter = DictConvert.class) 54 @ExcelProperty(value = "通知商户支付结果的回调状态", converter = DictConvert.class)
55 private Integer notifyStatus; 55 private Integer notifyStatus;
56 56
@@ -75,7 +75,7 @@ public class PayOrderExcelVO { @@ -75,7 +75,7 @@ public class PayOrderExcelVO {
75 @ExcelProperty("用户 IP") 75 @ExcelProperty("用户 IP")
76 private String userIp; 76 private String userIp;
77 77
78 - @DictFormat(SysDictTypeConstants.PAY_ORDER_REFUND_STATUS) 78 + @DictFormat(DictTypeConstants.PAY_ORDER_REFUND_STATUS)
79 @ExcelProperty(value = "退款状态", converter = DictConvert.class) 79 @ExcelProperty(value = "退款状态", converter = DictConvert.class)
80 private Integer refundStatus; 80 private Integer refundStatus;
81 81
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/pay/controller/order/vo/refund/vo/PayRefundExcelVO.java
1 package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo; 1 package cn.iocoder.yudao.adminserver.modules.pay.controller.order.vo.refund.vo;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 3 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
4 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 4 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
5 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 5 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
@@ -43,15 +43,15 @@ public class PayRefundExcelVO { @@ -43,15 +43,15 @@ public class PayRefundExcelVO {
43 @ExcelProperty("异步通知商户地址") 43 @ExcelProperty("异步通知商户地址")
44 private String notifyUrl; 44 private String notifyUrl;
45 45
46 - @DictFormat(SysDictTypeConstants.PAY_ORDER_NOTIFY_STATUS) 46 + @DictFormat(DictTypeConstants.PAY_ORDER_NOTIFY_STATUS)
47 @ExcelProperty(value = "商户退款结果回调状态", converter = DictConvert.class) 47 @ExcelProperty(value = "商户退款结果回调状态", converter = DictConvert.class)
48 private Integer notifyStatus; 48 private Integer notifyStatus;
49 49
50 - @DictFormat(SysDictTypeConstants.PAY_REFUND_ORDER_STATUS) 50 + @DictFormat(DictTypeConstants.PAY_REFUND_ORDER_STATUS)
51 @ExcelProperty(value = "退款状态", converter = DictConvert.class) 51 @ExcelProperty(value = "退款状态", converter = DictConvert.class)
52 private Integer status; 52 private Integer status;
53 53
54 - @DictFormat(SysDictTypeConstants.PAY_REFUND_ORDER_TYPE) 54 + @DictFormat(DictTypeConstants.PAY_REFUND_ORDER_TYPE)
55 @ExcelProperty(value = "退款类型", converter = DictConvert.class) 55 @ExcelProperty(value = "退款类型", converter = DictConvert.class)
56 private Integer type; 56 private Integer type;
57 57
yudao-admin-server/src/main/java/cn/iocoder/yudao/adminserver/modules/tool/controller/test/vo/ToolTestDemoExcelVO.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.tool.controller.test.vo;
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants; 5 import cn.iocoder.yudao.adminserver.modules.infra.enums.InfDictTypeConstants;
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 6 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
7 import com.alibaba.excel.annotation.ExcelProperty; 7 import com.alibaba.excel.annotation.ExcelProperty;
8 import lombok.Data; 8 import lombok.Data;
9 9
@@ -24,11 +24,11 @@ public class ToolTestDemoExcelVO { @@ -24,11 +24,11 @@ public class ToolTestDemoExcelVO {
24 private String name; 24 private String name;
25 25
26 @ExcelProperty(value = "状态", converter = DictConvert.class) 26 @ExcelProperty(value = "状态", converter = DictConvert.class)
27 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 27 + @DictFormat(DictTypeConstants.COMMON_STATUS)
28 private Integer status; 28 private Integer status;
29 29
30 @ExcelProperty(value = "类型", converter = DictConvert.class) 30 @ExcelProperty(value = "类型", converter = DictConvert.class)
31 - @DictFormat(SysDictTypeConstants.OPERATE_TYPE) 31 + @DictFormat(DictTypeConstants.OPERATE_TYPE)
32 private Integer type; 32 private Integer type;
33 33
34 @ExcelProperty(value = "分类", converter = DictConvert.class) 34 @ExcelProperty(value = "分类", converter = DictConvert.class)
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.module.system.mq.consumer.mail.SysMailSendConsumer; 5 import cn.iocoder.yudao.module.system.mq.consumer.mail.SysMailSendConsumer;
6 import cn.iocoder.yudao.module.system.mq.consumer.sms.SysSmsSendConsumer; 6 import cn.iocoder.yudao.module.system.mq.consumer.sms.SysSmsSendConsumer;
7 import cn.iocoder.yudao.module.system.mq.message.mail.SysMailSendMessage; 7 import cn.iocoder.yudao.module.system.mq.message.mail.SysMailSendMessage;
8 -import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage; 8 +import cn.iocoder.yudao.module.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
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsChannelServiceImpl; @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsChannelServiceImpl;
9 import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsLogServiceImpl; 9 import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsLogServiceImpl;
10 import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsTemplateServiceImpl; 10 import cn.iocoder.yudao.module.system.service.sms.impl.SysSmsTemplateServiceImpl;
11 import cn.iocoder.yudao.module.system.service.user.SysUserService; 11 import cn.iocoder.yudao.module.system.service.user.SysUserService;
12 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.impl.SysSmsCoreServiceImpl; 12 +import cn.iocoder.yudao.module.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;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/enums/SysErrorCodeConstants.java 0 → 100644
  1 +package cn.iocoder.yudao.coreservice.modules.infra.enums;
  2 +
  3 +import cn.iocoder.yudao.framework.common.exception.ErrorCode;
  4 +
  5 +/**
  6 + * System 错误码枚举类
  7 + *
  8 + * system 系统,使用 1-006-000-000 段
  9 + */
  10 +public interface SysErrorCodeConstants {
  11 +
  12 + // ========= 文件相关 1006001000=================
  13 + ErrorCode FILE_PATH_EXISTS = new ErrorCode(1006001000, "文件路径已存在");
  14 + ErrorCode FILE_NOT_EXISTS = new ErrorCode(1006001002, "文件不存在");
  15 +
  16 +}
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/enums/package-info.java deleted
1 -/**  
2 - * 占位类,可以无视  
3 - */  
4 -package cn.iocoder.yudao.coreservice.modules.infra.enums;  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/infra/service/file/impl/InfFileCoreServiceImpl.java
@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service; @@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
10 import javax.annotation.Resource; 10 import javax.annotation.Resource;
11 import java.io.ByteArrayInputStream; 11 import java.io.ByteArrayInputStream;
12 12
13 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.*; 13 +import static cn.iocoder.yudao.coreservice.modules.infra.enums.SysErrorCodeConstants.*;
14 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 14 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
15 15
16 /** 16 /**
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/convert/package-info.java deleted
1 -/**  
2 - * 提供 POJO 类的实体转换  
3 - *  
4 - * 目前使用 MapStruct 框架  
5 - */  
6 -package cn.iocoder.yudao.coreservice.modules.system.convert;  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/convert/《芋道 Spring Boot 对象转换 MapStruct 入门》.md deleted
1 -<http://www.iocoder.cn/Spring-Boot/MapStruct/?yudao>  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/package-info.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject;  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/dict/SysDictDataCoreMapper.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dict;  
2 -  
3 -  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;  
6 -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.util.Date;  
10 -  
11 -@Mapper  
12 -public interface SysDictDataCoreMapper extends BaseMapperX<SysDictDataDO> {  
13 -  
14 - default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) {  
15 - return selectOne(new QueryWrapper<SysDictDataDO>().select("id")  
16 - .gt("update_time", maxUpdateTime).last("LIMIT 1")) != null;  
17 - }  
18 -  
19 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/package-info.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql;  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/sms/SysSmsLogCoreMapper.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;  
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
6 -import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;  
7 -import org.apache.ibatis.annotations.Mapper;  
8 -  
9 -import java.util.List;  
10 -  
11 -@Mapper  
12 -public interface SysSmsLogCoreMapper extends BaseMapperX<SysSmsLogDO> {  
13 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/sms/SysSmsTemplateCoreMapper.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import org.apache.ibatis.annotations.Mapper;  
6 -import org.apache.ibatis.annotations.Select;  
7 -  
8 -import java.util.Date;  
9 -  
10 -@Mapper  
11 -public interface SysSmsTemplateCoreMapper extends BaseMapperX<SysSmsTemplateDO> {  
12 -  
13 - @Select("SELECT id FROM sys_sms_template WHERE update_time > #{maxUpdateTime} LIMIT 1")  
14 - Long selectExistsByUpdateTimeAfter(Date maxUpdateTime);  
15 -  
16 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/user/SysUserCoreMapper.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.user;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;  
6 -import org.apache.ibatis.annotations.Mapper;  
7 -  
8 -import java.util.Collection;  
9 -import java.util.List;  
10 -  
11 -@Mapper  
12 -public interface SysUserCoreMapper extends BaseMapperX<SysUserDO> {  
13 -  
14 - default List<SysUserDO> selectListByDeptIds(Collection<Long> deptIds) {  
15 - return selectList(SysUserDO::getDeptId, deptIds);  
16 - }  
17 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/mq/producer/package-info.java deleted
1 -/**  
2 - * 占位  
3 - */  
4 -package cn.iocoder.yudao.coreservice.modules.system.mq.producer;  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/mq/producer/sms/SysSmsCoreProducer.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.mq.producer.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;  
4 -import cn.iocoder.yudao.framework.common.core.KeyValue;  
5 -import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;  
6 -import lombok.extern.slf4j.Slf4j;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -import javax.annotation.Resource;  
10 -import java.util.List;  
11 -  
12 -/**  
13 - * Sms 短信相关消息的 Core Producer  
14 - *  
15 - * @author zzf  
16 - * @date 2021/3/9 16:35  
17 - */  
18 -@Slf4j  
19 -@Component  
20 -public class SysSmsCoreProducer {  
21 -  
22 - @Resource  
23 - private RedisMQTemplate redisMQTemplate;  
24 -  
25 - /**  
26 - * 发送 {@link SysSmsSendMessage} 消息  
27 - *  
28 - * @param logId 短信日志编号  
29 - * @param mobile 手机号  
30 - * @param channelId 渠道编号  
31 - * @param apiTemplateId 短信模板编号  
32 - * @param templateParams 短信模板参数  
33 - */  
34 - public void sendSmsSendMessage(Long logId, String mobile,  
35 - Long channelId, String apiTemplateId, List<KeyValue<String, Object>> templateParams) {  
36 - SysSmsSendMessage message = new SysSmsSendMessage().setLogId(logId).setMobile(mobile);  
37 - message.setChannelId(channelId).setApiTemplateId(apiTemplateId).setTemplateParams(templateParams);  
38 - redisMQTemplate.send(message);  
39 - }  
40 -  
41 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/package-info.java deleted
1 -/**  
2 - * system 包下,我们放通用业务,支撑上层的核心业务。  
3 - * 例如说:用户、部门、权限、数据字典等等  
4 - *  
5 - * 缩写:sys  
6 - */  
7 -package cn.iocoder.yudao.coreservice.modules.system;  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/auth/SysUserSessionCoreService.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.auth;  
2 -  
3 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
4 -  
5 -/**  
6 - * 在线用户 Session Core Service 接口  
7 - *  
8 - * @author 芋道源码  
9 - */  
10 -public interface SysUserSessionCoreService {  
11 -  
12 - /**  
13 - * 创建在线用户 Session  
14 - *  
15 - * @param loginUser 登录用户  
16 - * @param userIp 用户 IP  
17 - * @param userAgent 用户 UA  
18 - * @return Session 编号  
19 - */  
20 - String createUserSession(LoginUser loginUser, String userIp, String userAgent);  
21 -  
22 - /**  
23 - * 刷新在线用户 Session 的更新时间  
24 - *  
25 - * @param sessionId Session 编号  
26 - * @param loginUser 登录用户  
27 - */  
28 - void refreshUserSession(String sessionId, LoginUser loginUser);  
29 -  
30 - /**  
31 - * 删除在线用户 Session  
32 - *  
33 - * @param sessionId Session 编号  
34 - */  
35 - void deleteUserSession(String sessionId);  
36 -  
37 - /**  
38 - * 获得 Session 编号对应的在线用户  
39 - *  
40 - * @param sessionId Session 编号  
41 - * @return 在线用户  
42 - */  
43 - LoginUser getLoginUser(String sessionId);  
44 -  
45 - /**  
46 - * 获得 Session 超时时间,单位:毫秒  
47 - *  
48 - * @return 超时时间  
49 - */  
50 - Long getSessionTimeoutMillis();  
51 -  
52 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/auth/impl/SysUserSessionCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.auth.impl;  
2 -  
3 -import cn.hutool.core.util.IdUtil;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.auth.SysUserSessionCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth.SysLoginUserCoreRedisDAO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;  
8 -import cn.iocoder.yudao.framework.security.config.SecurityProperties;  
9 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
10 -import org.springframework.stereotype.Service;  
11 -  
12 -import javax.annotation.Resource;  
13 -import java.time.Duration;  
14 -import java.util.Date;  
15 -  
16 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;  
17 -  
18 -/**  
19 - * 在线用户 Session Core Service 实现类  
20 - *  
21 - * @author 芋道源码  
22 - */  
23 -@Service  
24 -public class SysUserSessionCoreServiceImpl implements SysUserSessionCoreService {  
25 -  
26 - @Resource  
27 - private SysUserSessionCoreMapper userSessionCoreMapper;  
28 -  
29 - @Resource  
30 - private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO;  
31 -  
32 - @Resource  
33 - private SecurityProperties securityProperties;  
34 -  
35 - @Override  
36 - public String createUserSession(LoginUser loginUser, String userIp, String userAgent) {  
37 - // 生成 Session 编号  
38 - String sessionId = generateSessionId();  
39 - // 写入 Redis 缓存  
40 - loginUser.setUpdateTime(new Date());  
41 - loginUserCoreRedisDAO.set(sessionId, loginUser);  
42 - // 写入 DB 中  
43 - SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)  
44 - .userId(loginUser.getId()).userType(loginUser.getUserType())  
45 - .userIp(userIp).userAgent(userAgent).username(loginUser.getUsername())  
46 - .sessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis())))  
47 - .build();  
48 - userSessionCoreMapper.insert(userSession);  
49 - // 返回 Session 编号  
50 - return sessionId;  
51 - }  
52 -  
53 - @Override  
54 - public void refreshUserSession(String sessionId, LoginUser loginUser) {  
55 - // 写入 Redis 缓存  
56 - loginUser.setUpdateTime(new Date());  
57 - loginUserCoreRedisDAO.set(sessionId, loginUser);  
58 - // 更新 DB 中  
59 - SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build();  
60 - updateObj.setUsername(loginUser.getUsername());  
61 - updateObj.setUpdateTime(new Date());  
62 - updateObj.setSessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis())));  
63 - userSessionCoreMapper.updateById(updateObj);  
64 - }  
65 -  
66 - @Override  
67 - public void deleteUserSession(String sessionId) {  
68 - // 删除 Redis 缓存  
69 - loginUserCoreRedisDAO.delete(sessionId);  
70 - // 删除 DB 记录  
71 - userSessionCoreMapper.deleteById(sessionId);  
72 - }  
73 -  
74 - @Override  
75 - public LoginUser getLoginUser(String sessionId) {  
76 - return loginUserCoreRedisDAO.get(sessionId);  
77 - }  
78 -  
79 - @Override  
80 - public Long getSessionTimeoutMillis() {  
81 - return securityProperties.getSessionTimeout().toMillis();  
82 - }  
83 -  
84 - /**  
85 - * 生成 Session 编号,目前采用 UUID 算法  
86 - *  
87 - * @return Session 编号  
88 - */  
89 - private static String generateSessionId() {  
90 - return IdUtil.fastSimpleUUID();  
91 - }  
92 -  
93 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dict/SysDictDataCoreService.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.dict;  
2 -  
3 -import cn.iocoder.yudao.framework.dict.core.service.DictDataFrameworkService;  
4 -  
5 -import java.util.Collection;  
6 -  
7 -/**  
8 - * 字典数据 Service 接口  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -public interface SysDictDataCoreService extends DictDataFrameworkService {  
13 -  
14 - /**  
15 - * 初始化字典数据的本地缓存  
16 - */  
17 - void initLocalCache();  
18 -  
19 - /**  
20 - * 校验字典数据们是否有效。如下情况,视为无效:  
21 - * 1. 字典数据不存在  
22 - * 2. 字典数据被禁用  
23 - *  
24 - * @param dictType 字典类型  
25 - * @param values 字典数据值的数组  
26 - */  
27 - void validDictDatas(String dictType, Collection<String> values);  
28 -  
29 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dict/impl/SysDictDataCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.dict.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.coreservice.modules.system.convert.dict.SysDictDataCoreConvert;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dict.SysDictDataCoreMapper;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.dict.SysDictDataCoreService;  
8 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
9 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
10 -import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;  
11 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
12 -import com.google.common.collect.ImmutableMap;  
13 -import com.google.common.collect.ImmutableTable;  
14 -import lombok.extern.slf4j.Slf4j;  
15 -import org.springframework.scheduling.annotation.Scheduled;  
16 -import org.springframework.stereotype.Service;  
17 -  
18 -import javax.annotation.PostConstruct;  
19 -import javax.annotation.Resource;  
20 -import java.util.*;  
21 -  
22 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DICT_DATA_NOT_ENABLE;  
23 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DICT_DATA_NOT_EXISTS;  
24 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
25 -  
26 -/**  
27 - * 字典数据 Service 实现类  
28 - *  
29 - * @author 芋道源码  
30 - */  
31 -@Service  
32 -@Slf4j  
33 -public class SysDictDataCoreServiceImpl implements SysDictDataCoreService {  
34 -  
35 - /**  
36 - * 定时执行 {@link #schedulePeriodicRefresh()} 的周期  
37 - * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高  
38 - */  
39 - private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;  
40 -  
41 - /**  
42 - * 字典数据缓存,第二个 key 使用 label  
43 - *  
44 - * key1:字典类型 dictType  
45 - * key2:字典标签 label  
46 - */  
47 - private ImmutableTable<String, String, SysDictDataDO> labelDictDataCache;  
48 - /**  
49 - * 字典数据缓存,第二个 key 使用 value  
50 - *  
51 - * key1:字典类型 dictType  
52 - * key2:字典值 value  
53 - */  
54 - private ImmutableTable<String, String, SysDictDataDO> valueDictDataCache;  
55 - /**  
56 - * 缓存字典数据的最大更新时间,用于后续的增量轮询,判断是否有更新  
57 - */  
58 - private volatile Date maxUpdateTime;  
59 -  
60 - @Resource  
61 - private SysDictDataCoreMapper dictDataCoreMapper;  
62 -  
63 - @Override  
64 - @PostConstruct  
65 - public synchronized void initLocalCache() {  
66 - // 获取字典数据列表,如果有更新  
67 - List<SysDictDataDO> dataList = this.loadDictDataIfUpdate(maxUpdateTime);  
68 - if (CollUtil.isEmpty(dataList)) {  
69 - return;  
70 - }  
71 -  
72 - // 构建缓存  
73 - ImmutableTable.Builder<String, String, SysDictDataDO> labelDictDataBuilder = ImmutableTable.builder();  
74 - ImmutableTable.Builder<String, String, SysDictDataDO> valueDictDataBuilder = ImmutableTable.builder();  
75 - dataList.forEach(dictData -> {  
76 - labelDictDataBuilder.put(dictData.getDictType(), dictData.getLabel(), dictData);  
77 - valueDictDataBuilder.put(dictData.getDictType(), dictData.getValue(), dictData);  
78 - });  
79 - labelDictDataCache = labelDictDataBuilder.build();  
80 - valueDictDataCache = valueDictDataBuilder.build();  
81 - assert dataList.size() > 0; // 断言,避免告警  
82 - maxUpdateTime = dataList.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();  
83 - log.info("[initLocalCache][缓存字典数据,数量为:{}]", dataList.size());  
84 - }  
85 -  
86 - @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)  
87 - public void schedulePeriodicRefresh() {  
88 - initLocalCache();  
89 - }  
90 -  
91 - /**  
92 - * 如果字典数据发生变化,从数据库中获取最新的全量字典数据。  
93 - * 如果未发生变化,则返回空  
94 - *  
95 - * @param maxUpdateTime 当前字典数据的最大更新时间  
96 - * @return 字典数据列表  
97 - */  
98 - private List<SysDictDataDO> loadDictDataIfUpdate(Date maxUpdateTime) {  
99 - // 第一步,判断是否要更新。  
100 - if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据  
101 - log.info("[loadDictDataIfUpdate][首次加载全量字典数据]");  
102 - } else { // 判断数据库中是否有更新的字典数据  
103 - if (!dictDataCoreMapper.selectExistsByUpdateTimeAfter(maxUpdateTime)) {  
104 - return null;  
105 - }  
106 - log.info("[loadDictDataIfUpdate][增量加载全量字典数据]");  
107 - }  
108 - // 第二步,如果有更新,则从数据库加载所有字典数据  
109 - return dictDataCoreMapper.selectList();  
110 - }  
111 -  
112 - @Override  
113 - public DictDataRespDTO getDictDataFromCache(String type, String value) {  
114 - return SysDictDataCoreConvert.INSTANCE.convert02(valueDictDataCache.get(type, value));  
115 - }  
116 -  
117 - @Override  
118 - public DictDataRespDTO parseDictDataFromCache(String type, String label) {  
119 - return SysDictDataCoreConvert.INSTANCE.convert02(labelDictDataCache.get(type, label));  
120 - }  
121 -  
122 - @Override  
123 - public List<DictDataRespDTO> listDictDatasFromCache(String type) {  
124 - return SysDictDataCoreConvert.INSTANCE.convertList03(labelDictDataCache.row(type).values());  
125 - }  
126 -  
127 - @Override  
128 - public void validDictDatas(String dictType, Collection<String> values) {  
129 - if (CollUtil.isEmpty(values)) {  
130 - return;  
131 - }  
132 - ImmutableMap<String, SysDictDataDO> dictDataMap = valueDictDataCache.row(dictType);  
133 - // 校验  
134 - values.forEach(value -> {  
135 - SysDictDataDO dictData = dictDataMap.get(value);  
136 - if (dictData == null) {  
137 - throw exception(DICT_DATA_NOT_EXISTS);  
138 - }  
139 - if (!CommonStatusEnum.ENABLE.getStatus().equals(dictData.getStatus())) {  
140 - throw exception(DICT_DATA_NOT_ENABLE, dictData.getLabel());  
141 - }  
142 - });  
143 - }  
144 -  
145 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/logger/SysLoginLogCoreService.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.logger;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;  
4 -  
5 -/**  
6 - * 登录日志 Core Service 接口  
7 - */  
8 -public interface SysLoginLogCoreService {  
9 -  
10 - /**  
11 - * 创建登录日志  
12 - *  
13 - * @param reqDTO 日志信息  
14 - */  
15 - void createLoginLog(SysLoginLogCreateReqDTO reqDTO);  
16 -  
17 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/logger/impl/SysLoginLogCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.logger.impl;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.convert.logger.SysLoginLogCoreConvert;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.logger.SysLoginLogCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;  
8 -import org.springframework.stereotype.Service;  
9 -  
10 -import javax.annotation.Resource;  
11 -  
12 -/**  
13 - * 登录日志 Service Core 实现  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Service  
18 -public class SysLoginLogCoreServiceImpl implements SysLoginLogCoreService {  
19 -  
20 - @Resource  
21 - private SysLoginLogCoreMapper loginLogMapper;  
22 -  
23 - @Override  
24 - public void createLoginLog(SysLoginLogCreateReqDTO reqDTO) {  
25 - SysLoginLogDO loginLog = SysLoginLogCoreConvert.INSTANCE.convert(reqDTO);  
26 - // 插入  
27 - loginLogMapper.insert(loginLog);  
28 - }  
29 -  
30 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/SysSmsLogCoreService.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
4 -  
5 -import java.util.Date;  
6 -import java.util.Map;  
7 -  
8 -/**  
9 - * 短信日志 Core Service 接口  
10 - *  
11 - * @author zzf  
12 - * @date 13:48 2021/3/2  
13 - */  
14 -public interface SysSmsLogCoreService {  
15 -  
16 - /**  
17 - * 创建短信日志  
18 - *  
19 - * @param mobile 手机号  
20 - * @param userId 用户编号  
21 - * @param userType 用户类型  
22 - * @param isSend 是否发送  
23 - * @param template 短信模板  
24 - * @param templateContent 短信内容  
25 - * @param templateParams 短信参数  
26 - * @return 发送日志编号  
27 - */  
28 - Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend,  
29 - SysSmsTemplateDO template, String templateContent, Map<String, Object> templateParams);  
30 -  
31 - /**  
32 - * 更新日志的发送结果  
33 - *  
34 - * @param id 日志编号  
35 - * @param sendCode 发送结果的编码  
36 - * @param sendMsg 发送结果的提示  
37 - * @param apiSendCode 短信 API 发送结果的编码  
38 - * @param apiSendMsg 短信 API 发送失败的提示  
39 - * @param apiRequestId 短信 API 发送返回的唯一请求 ID  
40 - * @param apiSerialNo 短信 API 发送返回的序号  
41 - */  
42 - void updateSmsSendResult(Long id, Integer sendCode, String sendMsg,  
43 - String apiSendCode, String apiSendMsg, String apiRequestId, String apiSerialNo);  
44 -  
45 - /**  
46 - * 更新日志的接收结果  
47 - *  
48 - * @param id 日志编号  
49 - * @param success 是否接收成功  
50 - * @param receiveTime 用户接收时间  
51 - * @param apiReceiveCode API 接收结果的编码  
52 - * @param apiReceiveMsg API 接收结果的说明  
53 - */  
54 - void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime, String apiReceiveCode, String apiReceiveMsg);  
55 -  
56 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/SysSmsTemplateCoreService.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
4 -  
5 -import java.util.Map;  
6 -  
7 -/**  
8 - * 短信模板 Core Service 接口  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -public interface SysSmsTemplateCoreService {  
13 -  
14 - /**  
15 - * 初始化短信模板的本地缓存  
16 - */  
17 - void initLocalCache();  
18 -  
19 - /**  
20 - * 获得短信模板,从缓存中  
21 - *  
22 - * @param code 模板编码  
23 - * @return 短信模板  
24 - */  
25 - SysSmsTemplateDO getSmsTemplateByCodeFromCache(String code);  
26 -  
27 - /**  
28 - * 格式化短信内容  
29 - *  
30 - * @param content 短信模板的内容  
31 - * @param params 内容的参数  
32 - * @return 格式化后的内容  
33 - */  
34 - String formatSmsTemplateContent(String content, Map<String, Object> params);  
35 -  
36 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/impl/SysSmsLogCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms.impl;  
2 -  
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.sms.SysSmsLogCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsReceiveStatusEnum;  
7 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsSendStatusEnum;  
8 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsLogCoreService;  
9 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
10 -import lombok.extern.slf4j.Slf4j;  
11 -import org.springframework.stereotype.Service;  
12 -  
13 -import javax.annotation.Resource;  
14 -import java.util.Date;  
15 -import java.util.Map;  
16 -import java.util.Objects;  
17 -  
18 -/**  
19 - * 短信日志 Core Service 实现类  
20 - *  
21 - * @author zzf  
22 - * @date 2021/1/25 9:25  
23 - */  
24 -@Slf4j  
25 -@Service  
26 -public class SysSmsLogCoreServiceImpl implements SysSmsLogCoreService {  
27 -  
28 - @Resource  
29 - private SysSmsLogCoreMapper smsLogCoreMapper;  
30 -  
31 - @Override  
32 - public Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend,  
33 - SysSmsTemplateDO template, String templateContent, Map<String, Object> templateParams) {  
34 - SysSmsLogDO.SysSmsLogDOBuilder logBuilder = SysSmsLogDO.builder();  
35 - // 根据是否要发送,设置状态  
36 - logBuilder.sendStatus(Objects.equals(isSend, true) ? SysSmsSendStatusEnum.INIT.getStatus()  
37 - : SysSmsSendStatusEnum.IGNORE.getStatus());  
38 - // 设置手机相关字段  
39 - logBuilder.mobile(mobile).userId(userId).userType(userType);  
40 - // 设置模板相关字段  
41 - logBuilder.templateId(template.getId()).templateCode(template.getCode()).templateType(template.getType());  
42 - logBuilder.templateContent(templateContent).templateParams(templateParams).apiTemplateId(template.getApiTemplateId());  
43 - // 设置渠道相关字段  
44 - logBuilder.channelId(template.getChannelId()).channelCode(template.getChannelCode());  
45 - // 设置接收相关字段  
46 - logBuilder.receiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus());  
47 -  
48 - // 插入数据库  
49 - SysSmsLogDO logDO = logBuilder.build();  
50 - smsLogCoreMapper.insert(logDO);  
51 - return logDO.getId();  
52 - }  
53 -  
54 - @Override  
55 - public void updateSmsSendResult(Long id, Integer sendCode, String sendMsg,  
56 - String apiSendCode, String apiSendMsg, String apiRequestId, String apiSerialNo) {  
57 - SysSmsSendStatusEnum sendStatus = CommonResult.isSuccess(sendCode) ? SysSmsSendStatusEnum.SUCCESS  
58 - : SysSmsSendStatusEnum.FAILURE;  
59 - smsLogCoreMapper.updateById(SysSmsLogDO.builder().id(id).sendStatus(sendStatus.getStatus()).sendTime(new Date())  
60 - .sendCode(sendCode).sendMsg(sendMsg).apiSendCode(apiSendCode).apiSendMsg(apiSendMsg)  
61 - .apiRequestId(apiRequestId).apiSerialNo(apiSerialNo).build());  
62 - }  
63 -  
64 - @Override  
65 - public void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime, String apiReceiveCode, String apiReceiveMsg) {  
66 - SysSmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ? SysSmsReceiveStatusEnum.SUCCESS  
67 - : SysSmsReceiveStatusEnum.FAILURE;  
68 - smsLogCoreMapper.updateById(SysSmsLogDO.builder().id(id).receiveStatus(receiveStatus.getStatus()).receiveTime(receiveTime)  
69 - .apiReceiveCode(apiReceiveCode).apiReceiveMsg(apiReceiveMsg).build());  
70 - }  
71 -  
72 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/impl/SysSmsTemplateCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.hutool.core.util.StrUtil;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.sms.SysSmsTemplateCoreMapper;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsTemplateCoreService;  
8 -import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;  
9 -import com.google.common.collect.ImmutableMap;  
10 -import lombok.extern.slf4j.Slf4j;  
11 -import org.springframework.scheduling.annotation.Scheduled;  
12 -import org.springframework.stereotype.Service;  
13 -  
14 -import javax.annotation.PostConstruct;  
15 -import javax.annotation.Resource;  
16 -import java.util.Comparator;  
17 -import java.util.Date;  
18 -import java.util.List;  
19 -import java.util.Map;  
20 -  
21 -/**  
22 - * 短信模板 Core Service 接口  
23 - *  
24 - * @author 芋道源码  
25 - */  
26 -@Service  
27 -@Slf4j  
28 -public class SysSmsTemplateCoreServiceImpl implements SysSmsTemplateCoreService {  
29 -  
30 - /**  
31 - * 定时执行 {@link #schedulePeriodicRefresh()} 的周期  
32 - * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高  
33 - */  
34 - private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;  
35 -  
36 - /**  
37 - * 短信模板缓存  
38 - * key:短信模板编码 {@link SysSmsTemplateDO#getCode()}  
39 - *  
40 - * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向  
41 - */  
42 - private volatile Map<String, SysSmsTemplateDO> smsTemplateCache;  
43 - /**  
44 - * 缓存短信模板的最大更新时间,用于后续的增量轮询,判断是否有更新  
45 - */  
46 - private volatile Date maxUpdateTime;  
47 -  
48 - @Resource  
49 - private SysSmsTemplateCoreMapper smsTemplateCoreMapper;  
50 -  
51 - @Override  
52 - @PostConstruct  
53 - public void initLocalCache() {  
54 - // 获取短信模板列表,如果有更新  
55 - List<SysSmsTemplateDO> smsTemplateList = this.loadSmsTemplateIfUpdate(maxUpdateTime);  
56 - if (CollUtil.isEmpty(smsTemplateList)) {  
57 - return;  
58 - }  
59 -  
60 - // 写入缓存  
61 - ImmutableMap.Builder<String, SysSmsTemplateDO> builder = ImmutableMap.builder();  
62 - smsTemplateList.forEach(sysSmsTemplateDO -> builder.put(sysSmsTemplateDO.getCode(), sysSmsTemplateDO));  
63 - smsTemplateCache = builder.build();  
64 - assert smsTemplateList.size() > 0; // 断言,避免告警  
65 - maxUpdateTime = smsTemplateList.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();  
66 - log.info("[initLocalCache][初始化 SmsTemplate 数量为 {}]", smsTemplateList.size());  
67 - }  
68 -  
69 - /**  
70 - * 如果短信模板发生变化,从数据库中获取最新的全量短信模板。  
71 - * 如果未发生变化,则返回空  
72 - *  
73 - * @param maxUpdateTime 当前短信模板的最大更新时间  
74 - * @return 短信模板列表  
75 - */  
76 - private List<SysSmsTemplateDO> loadSmsTemplateIfUpdate(Date maxUpdateTime) {  
77 - // 第一步,判断是否要更新。  
78 - if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据  
79 - log.info("[loadSmsTemplateIfUpdate][首次加载全量短信模板]");  
80 - } else { // 判断数据库中是否有更新的短信模板  
81 - if (smsTemplateCoreMapper.selectExistsByUpdateTimeAfter(maxUpdateTime) == null) {  
82 - return null;  
83 - }  
84 - log.info("[loadSmsTemplateIfUpdate][增量加载全量短信模板]");  
85 - }  
86 - // 第二步,如果有更新,则从数据库加载所有短信模板  
87 - return smsTemplateCoreMapper.selectList();  
88 - }  
89 -  
90 - @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)  
91 - public void schedulePeriodicRefresh() {  
92 - initLocalCache();  
93 - }  
94 -  
95 - @Override  
96 - public SysSmsTemplateDO getSmsTemplateByCodeFromCache(String code) {  
97 - return smsTemplateCache.get(code);  
98 - }  
99 -  
100 - @Override  
101 - public String formatSmsTemplateContent(String content, Map<String, Object> params) {  
102 - return StrUtil.format(content, params);  
103 - }  
104 -  
105 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/user/SysUserCoreService.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.user;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
5 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
6 -  
7 -import java.util.*;  
8 -  
9 -/**  
10 - * 后台用户 Service Core 接口  
11 - *  
12 - * @author 芋道源码  
13 - */  
14 -public interface SysUserCoreService {  
15 -  
16 - /**  
17 - * 通过用户 ID 查询用户  
18 - *  
19 - * @param id 用户ID  
20 - * @return 用户对象信息  
21 - */  
22 - SysUserDO getUser(Long id);  
23 -  
24 - /**  
25 - * 获得指定部门的用户数组  
26 - *  
27 - * @param deptIds 部门数组  
28 - * @return 用户数组  
29 - */  
30 - List<SysUserDO> getUsersByDeptIds(Collection<Long> deptIds);  
31 -  
32 - /**  
33 - * 获得指定岗位的用户数组  
34 - *  
35 - * @param postIds 岗位数组  
36 - * @return 用户数组  
37 - */  
38 - List<SysUserDO> getUsersByPostIds(Collection<Long> postIds);  
39 -  
40 - /**  
41 - * 获得用户列表  
42 - *  
43 - * @param ids 用户编号数组  
44 - * @return 用户列表  
45 - */  
46 - List<SysUserDO> getUsers(Collection<Long> ids);  
47 -  
48 - /**  
49 - * 校验用户们是否有效。如下情况,视为无效:  
50 - * 1. 用户编号不存在  
51 - * 2. 用户被禁用  
52 - *  
53 - * @param ids 用户编号数组  
54 - */  
55 - void validUsers(Set<Long> ids);  
56 -  
57 - /**  
58 - * 获得用户 Map  
59 - *  
60 - * @param ids 用户编号数组  
61 - * @return 用户 Map  
62 - */  
63 - default Map<Long, SysUserDO> getUserMap(Collection<Long> ids) {  
64 - if (CollUtil.isEmpty(ids)) {  
65 - return new HashMap<>();  
66 - }  
67 - return CollectionUtils.convertMap(getUsers(ids), SysUserDO::getId);  
68 - }  
69 -  
70 -}  
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/user/impl/SysUserCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.user.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.user.SysUserCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;  
7 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
8 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
9 -import org.springframework.stereotype.Service;  
10 -  
11 -import javax.annotation.Resource;  
12 -import java.util.*;  
13 -  
14 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.USER_IS_DISABLE;  
15 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.USER_NOT_EXISTS;  
16 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
17 -  
18 -/**  
19 - * 后台用户 Service Core 实现  
20 - *  
21 - * @author 芋道源码  
22 - */  
23 -@Service  
24 -public class SysUserCoreServiceImpl implements SysUserCoreService {  
25 -  
26 - @Resource  
27 - private SysUserCoreMapper userCoreMapper;  
28 -  
29 - @Override  
30 - public SysUserDO getUser(Long id) {  
31 - return userCoreMapper.selectById(id);  
32 - }  
33 -  
34 - @Override  
35 - public List<SysUserDO> getUsersByDeptIds(Collection<Long> deptIds) {  
36 - if (CollUtil.isEmpty(deptIds)) {  
37 - return Collections.emptyList();  
38 - }  
39 - return userCoreMapper.selectListByDeptIds(deptIds);  
40 - }  
41 -  
42 - @Override  
43 - public List<SysUserDO> getUsersByPostIds(Collection<Long> postIds) {  
44 - if (CollUtil.isEmpty(postIds)) {  
45 - return Collections.emptyList();  
46 - }  
47 - // 过滤不符合条件的  
48 - // TODO 芋艿:暂时只能内存过滤。解决方案:1、新建一个关联表;2、基于 where + 函数;3、json 字段,适合 mysql 8+ 版本  
49 - List<SysUserDO> users = userCoreMapper.selectList();  
50 - users.removeIf(user -> !CollUtil.containsAny(user.getPostIds(), postIds));  
51 - return users;  
52 - }  
53 -  
54 - @Override  
55 - public List<SysUserDO> getUsers(Collection<Long> ids) {  
56 - if (CollUtil.isEmpty(ids)) {  
57 - return Collections.emptyList();  
58 - }  
59 - return userCoreMapper.selectBatchIds(ids);  
60 - }  
61 -  
62 - @Override  
63 - public void validUsers(Set<Long> ids) {  
64 - if (CollUtil.isEmpty(ids)) {  
65 - return;  
66 - }  
67 - // 获得岗位信息  
68 - List<SysUserDO> users = userCoreMapper.selectBatchIds(ids);  
69 - Map<Long, SysUserDO> userMap = CollectionUtils.convertMap(users, SysUserDO::getId);  
70 - // 校验  
71 - ids.forEach(id -> {  
72 - SysUserDO user = userMap.get(id);  
73 - if (user == null) {  
74 - throw exception(USER_NOT_EXISTS);  
75 - }  
76 - if (!CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus())) {  
77 - throw exception(USER_IS_DISABLE, user.getNickname());  
78 - }  
79 - });  
80 - }  
81 -  
82 -}  
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/infra/service/file/InfFileCoreServiceTest.java
@@ -12,8 +12,7 @@ import org.springframework.context.annotation.Import; @@ -12,8 +12,7 @@ import org.springframework.context.annotation.Import;
12 12
13 import javax.annotation.Resource; 13 import javax.annotation.Resource;
14 14
15 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.FILE_NOT_EXISTS;  
16 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.FILE_PATH_EXISTS; 15 +import static cn.iocoder.yudao.coreservice.modules.infra.enums.SysErrorCodeConstants.*;
17 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; 16 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
18 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; 17 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
19 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; 18 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString;
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/auth/SysUserSessionCoreServiceTest.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.auth;  
2 -  
3 -import cn.iocoder.yudao.coreservice.BaseDbAndRedisUnitTest;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.auth.SysUserSessionCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth.SysLoginUserCoreRedisDAO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.auth.impl.SysUserSessionCoreServiceImpl;  
8 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
9 -import cn.iocoder.yudao.framework.security.config.SecurityProperties;  
10 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
11 -import org.junit.jupiter.api.Test;  
12 -import org.springframework.boot.test.mock.mockito.MockBean;  
13 -import org.springframework.context.annotation.Import;  
14 -  
15 -import javax.annotation.Resource;  
16 -import java.time.Duration;  
17 -import java.util.Date;  
18 -  
19 -import static cn.hutool.core.util.RandomUtil.randomEle;  
20 -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;  
21 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
22 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;  
23 -import static org.junit.jupiter.api.Assertions.*;  
24 -import static org.mockito.Mockito.when;  
25 -  
26 -@Import({SysUserSessionCoreServiceImpl.class, SysLoginUserCoreRedisDAO.class})  
27 -public class SysUserSessionCoreServiceTest extends BaseDbAndRedisUnitTest {  
28 -  
29 - @Resource  
30 - private SysUserSessionCoreServiceImpl userSessionCoreService;  
31 -  
32 - @Resource  
33 - private SysUserSessionCoreMapper userSessionCoreMapper;  
34 - @Resource  
35 - private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO;  
36 -  
37 - @MockBean  
38 - private SecurityProperties securityProperties;  
39 -  
40 - @Test  
41 - public void testCreateUserSession_success() {  
42 - // 准备参数  
43 - String userIp = randomString();  
44 - String userAgent = randomString();  
45 - LoginUser loginUser = randomPojo(LoginUser.class, o -> {  
46 - o.setUserType(randomEle(UserTypeEnum.values()).getValue());  
47 - o.setTenantId(0L); // 租户设置为 0,因为暂未启用多租户组件  
48 - });  
49 - // mock 方法  
50 - when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));  
51 -  
52 - // 调用  
53 - String sessionId = userSessionCoreService.createUserSession(loginUser, userIp, userAgent);  
54 - // 校验 SysUserSessionDO 记录  
55 - SysUserSessionDO userSessionDO = userSessionCoreMapper.selectById(sessionId);  
56 - assertPojoEquals(loginUser, userSessionDO, "id", "updateTime");  
57 - assertEquals(sessionId, userSessionDO.getId());  
58 - assertEquals(userIp, userSessionDO.getUserIp());  
59 - assertEquals(userAgent, userSessionDO.getUserAgent());  
60 - // 校验 LoginUser 缓存  
61 - LoginUser redisLoginUser = loginUserCoreRedisDAO.get(sessionId);  
62 - assertPojoEquals(loginUser, redisLoginUser, "username", "password");  
63 - }  
64 -  
65 - @Test  
66 - public void testCreateRefreshUserSession_success() {  
67 - // 准备参数  
68 - String sessionId = randomString();  
69 - String userIp = randomString();  
70 - String userAgent = randomString();  
71 - long timeLong = randomLongId();  
72 - String userName = randomString();  
73 - Date date = randomDate();  
74 - LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setUserType(randomEle(UserTypeEnum.values()).getValue()));  
75 - // mock 方法  
76 - when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));  
77 - // mock 数据  
78 - loginUser.setUpdateTime(date);  
79 - loginUserCoreRedisDAO.set(sessionId, loginUser);  
80 - SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)  
81 - .userId(loginUser.getId()).userType(loginUser.getUserType())  
82 - .userIp(userIp).userAgent(userAgent).username(userName)  
83 - .sessionTimeout(addTime(Duration.ofMillis(timeLong)))  
84 - .build();  
85 - userSessionCoreMapper.insert(userSession);  
86 -  
87 - // 调用  
88 - userSessionCoreService.refreshUserSession(sessionId, loginUser);  
89 - // 校验 LoginUser 缓存  
90 - LoginUser redisLoginUser = loginUserCoreRedisDAO.get(sessionId);  
91 - assertNotEquals(redisLoginUser.getUpdateTime(), date);  
92 - // 校验 SysUserSessionDO 记录  
93 - SysUserSessionDO updateDO = userSessionCoreMapper.selectById(sessionId);  
94 - assertEquals(updateDO.getUsername(), loginUser.getUsername());  
95 - assertNotEquals(updateDO.getUpdateTime(), userSession.getUpdateTime());  
96 - assertNotEquals(updateDO.getSessionTimeout(), addTime(Duration.ofMillis(timeLong)));  
97 - }  
98 -  
99 - @Test  
100 - public void testDeleteUserSession_success() {  
101 - // 准备参数  
102 - String sessionId = randomString();  
103 - String userIp = randomString();  
104 - String userAgent = randomString();  
105 - Long timeLong = randomLongId();  
106 - LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setUserType(randomEle(UserTypeEnum.values()).getValue()));  
107 - // mock 存入 Redis  
108 - when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));  
109 - // mock 数据  
110 - loginUserCoreRedisDAO.set(sessionId, loginUser);  
111 - SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)  
112 - .userId(loginUser.getId()).userType(loginUser.getUserType())  
113 - .userIp(userIp).userAgent(userAgent).username(loginUser.getUsername())  
114 - .sessionTimeout(addTime(Duration.ofMillis(timeLong)))  
115 - .build();  
116 - userSessionCoreMapper.insert(userSession);  
117 -  
118 - // 调用  
119 - userSessionCoreService.deleteUserSession(sessionId);  
120 - // 校验数据不存在了  
121 - assertNull(loginUserCoreRedisDAO.get(sessionId));  
122 - assertNull(userSessionCoreMapper.selectById(sessionId));  
123 - }  
124 -  
125 -}  
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/dict/SysDictDataCoreServiceTest.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.dict;  
2 -  
3 -import cn.iocoder.yudao.coreservice.BaseDbUnitTest;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dict.SysDictDataCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.service.dict.impl.SysDictDataCoreServiceImpl;  
7 -import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;  
8 -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;  
9 -import com.google.common.collect.ImmutableTable;  
10 -import org.junit.jupiter.api.Test;  
11 -import org.springframework.context.annotation.Import;  
12 -  
13 -import javax.annotation.Resource;  
14 -import java.util.Date;  
15 -import java.util.function.Consumer;  
16 -  
17 -import static cn.hutool.core.bean.BeanUtil.getFieldValue;  
18 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
19 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomCommonStatus;  
20 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;  
21 -import static org.junit.jupiter.api.Assertions.assertEquals;  
22 -  
23 -/**  
24 -* {@link SysDictDataCoreServiceImpl} 的单元测试类  
25 -*  
26 -* @author 芋道源码  
27 -*/  
28 -@Import(SysDictDataCoreServiceImpl.class)  
29 -public class SysDictDataCoreServiceTest extends BaseDbUnitTest {  
30 -  
31 - @Resource  
32 - private SysDictDataCoreServiceImpl dictDataCoreService;  
33 -  
34 - @Resource  
35 - private SysDictDataCoreMapper dictDataMapper;  
36 -  
37 - /**  
38 - * 测试加载到新的字典数据的情况  
39 - */  
40 - @Test  
41 - @SuppressWarnings("unchecked")  
42 - public void testInitLocalCache() {  
43 - // mock 数据  
44 - SysDictDataDO dictData01 = randomDictDataDO();  
45 - dictDataMapper.insert(dictData01);  
46 - SysDictDataDO dictData02 = randomDictDataDO();  
47 - dictDataMapper.insert(dictData02);  
48 -  
49 - // 调用  
50 - dictDataCoreService.initLocalCache();  
51 - // 断言 labelDictDataCache 缓存  
52 - ImmutableTable<String, String, SysDictDataDO> labelDictDataCache =  
53 - (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataCoreService, "labelDictDataCache");  
54 - assertEquals(2, labelDictDataCache.size());  
55 - assertPojoEquals(dictData01, labelDictDataCache.get(dictData01.getDictType(), dictData01.getLabel()));  
56 - assertPojoEquals(dictData02, labelDictDataCache.get(dictData02.getDictType(), dictData02.getLabel()));  
57 - // 断言 valueDictDataCache 缓存  
58 - ImmutableTable<String, String, SysDictDataDO> valueDictDataCache =  
59 - (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataCoreService, "valueDictDataCache");  
60 - assertEquals(2, valueDictDataCache.size());  
61 - assertPojoEquals(dictData01, valueDictDataCache.get(dictData01.getDictType(), dictData01.getValue()));  
62 - assertPojoEquals(dictData02, valueDictDataCache.get(dictData02.getDictType(), dictData02.getValue()));  
63 - // 断言 maxUpdateTime 缓存  
64 - Date maxUpdateTime = (Date) getFieldValue(dictDataCoreService, "maxUpdateTime");  
65 - assertEquals(ObjectUtils.max(dictData01.getUpdateTime(), dictData02.getUpdateTime()), maxUpdateTime);  
66 - }  
67 -  
68 - // ========== 随机对象 ==========  
69 -  
70 - @SafeVarargs  
71 - private static SysDictDataDO randomDictDataDO(Consumer<SysDictDataDO>... consumers) {  
72 - Consumer<SysDictDataDO> consumer = (o) -> {  
73 - o.setStatus(randomCommonStatus()); // 保证 status 的范围  
74 - };  
75 - return randomPojo(SysDictDataDO.class, ArrayUtils.append(consumer, consumers));  
76 - }  
77 -  
78 -}  
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/logger/SysLoginLogServiceImplTest.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.logger;  
2 -  
3 -import cn.iocoder.yudao.coreservice.BaseDbUnitTest;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.logger.SysLoginLogCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginLogTypeEnum;  
7 -import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginResultEnum;  
8 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.impl.SysLoginLogCoreServiceImpl;  
10 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
11 -import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;  
12 -import cn.iocoder.yudao.framework.test.core.util.RandomUtils;  
13 -import org.junit.jupiter.api.Test;  
14 -import org.springframework.context.annotation.Import;  
15 -  
16 -import javax.annotation.Resource;  
17 -  
18 -import static cn.hutool.core.util.RandomUtil.randomEle;  
19 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
20 -  
21 -@Import(SysLoginLogCoreServiceImpl.class)  
22 -public class SysLoginLogServiceImplTest extends BaseDbUnitTest {  
23 -  
24 - @Resource  
25 - private SysLoginLogCoreServiceImpl loginLogCoreService;  
26 -  
27 - @Resource  
28 - private SysLoginLogCoreMapper loginLogCoreMapper;  
29 -  
30 - @Test  
31 - public void testCreateLoginLog() {  
32 - SysLoginLogCreateReqDTO reqDTO = RandomUtils.randomPojo(SysLoginLogCreateReqDTO.class, vo -> {  
33 - // 指定随机的范围,避免超出范围入库失败  
34 - vo.setUserType(randomEle(UserTypeEnum.values()).getValue());  
35 - vo.setLogType(randomEle(SysLoginLogTypeEnum.values()).getType());  
36 - vo.setResult(randomEle(SysLoginResultEnum.values()).getResult());  
37 - vo.setTraceId(TracerUtils.getTraceId());  
38 - });  
39 -  
40 - // 调用  
41 - loginLogCoreService.createLoginLog(reqDTO);  
42 - // 断言,忽略基本字段  
43 - SysLoginLogDO sysLoginLogDO = loginLogCoreMapper.selectOne(null);  
44 - assertPojoEquals(reqDTO, sysLoginLogDO);  
45 - }  
46 -  
47 -}  
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/package-info.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service;  
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/SysSmsLogCoreServiceTest.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms;  
2 -  
3 -import cn.hutool.core.map.MapUtil;  
4 -import cn.iocoder.yudao.coreservice.BaseDbUnitTest;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.sms.SysSmsLogCoreMapper;  
8 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsReceiveStatusEnum;  
9 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsSendStatusEnum;  
10 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsTemplateTypeEnum;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.impl.SysSmsLogCoreServiceImpl;  
12 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
13 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
14 -import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;  
15 -import org.junit.jupiter.api.Test;  
16 -import org.springframework.context.annotation.Import;  
17 -  
18 -import javax.annotation.Resource;  
19 -import java.util.Date;  
20 -import java.util.Map;  
21 -import java.util.function.Consumer;  
22 -  
23 -import static cn.hutool.core.util.RandomUtil.randomBoolean;  
24 -import static cn.hutool.core.util.RandomUtil.randomEle;  
25 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;  
26 -import static org.junit.jupiter.api.Assertions.assertEquals;  
27 -import static org.junit.jupiter.api.Assertions.assertNotNull;  
28 -  
29 -/**  
30 -* {@link SysSmsLogCoreServiceImpl} 的单元测试类  
31 -*  
32 -* @author 芋道源码  
33 -*/  
34 -@Import(SysSmsLogCoreServiceImpl.class)  
35 -public class SysSmsLogCoreServiceTest extends BaseDbUnitTest {  
36 -  
37 - @Resource  
38 - private SysSmsLogCoreServiceImpl smsLogCoreService;  
39 -  
40 - @Resource  
41 - private SysSmsLogCoreMapper smsLogCoreMapper;  
42 -  
43 - @Test  
44 - public void testCreateSmsLog() {  
45 - // 准备参数  
46 - String mobile = randomString();  
47 - Long userId = randomLongId();  
48 - Integer userType = randomEle(UserTypeEnum.values()).getValue();  
49 - Boolean isSend = randomBoolean();  
50 - SysSmsTemplateDO templateDO = randomPojo(SysSmsTemplateDO.class,  
51 - o -> o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()));  
52 - String templateContent = randomString();  
53 - Map<String, Object> templateParams = randomTemplateParams();  
54 - // mock 方法  
55 -  
56 - // 调用  
57 - Long logId = smsLogCoreService.createSmsLog(mobile, userId, userType, isSend,  
58 - templateDO, templateContent, templateParams);  
59 - // 断言  
60 - SysSmsLogDO logDO = smsLogCoreMapper.selectById(logId);  
61 - assertEquals(isSend ? SysSmsSendStatusEnum.INIT.getStatus() : SysSmsSendStatusEnum.IGNORE.getStatus(),  
62 - logDO.getSendStatus());  
63 - assertEquals(mobile, logDO.getMobile());  
64 - assertEquals(userType, logDO.getUserType());  
65 - assertEquals(userId, logDO.getUserId());  
66 - assertEquals(templateDO.getId(), logDO.getTemplateId());  
67 - assertEquals(templateDO.getCode(), logDO.getTemplateCode());  
68 - assertEquals(templateDO.getType(), logDO.getTemplateType());  
69 - assertEquals(templateDO.getChannelId(), logDO.getChannelId());  
70 - assertEquals(templateDO.getChannelCode(), logDO.getChannelCode());  
71 - assertEquals(templateContent, logDO.getTemplateContent());  
72 - assertEquals(templateParams, logDO.getTemplateParams());  
73 - assertEquals(SysSmsReceiveStatusEnum.INIT.getStatus(), logDO.getReceiveStatus());  
74 - }  
75 -  
76 - @Test  
77 - public void testUpdateSmsSendResult() {  
78 - // mock 数据  
79 - SysSmsLogDO dbSmsLog = randomSmsLogDO(  
80 - o -> o.setSendStatus(SysSmsSendStatusEnum.IGNORE.getStatus()));  
81 - smsLogCoreMapper.insert(dbSmsLog);  
82 - // 准备参数  
83 - Long id = dbSmsLog.getId();  
84 - Integer sendCode = randomInteger();  
85 - String sendMsg = randomString();  
86 - String apiSendCode = randomString();  
87 - String apiSendMsg = randomString();  
88 - String apiRequestId = randomString();  
89 - String apiSerialNo = randomString();  
90 -  
91 - // 调用  
92 - smsLogCoreService.updateSmsSendResult(id, sendCode, sendMsg,  
93 - apiSendCode, apiSendMsg, apiRequestId, apiSerialNo);  
94 - // 断言  
95 - dbSmsLog = smsLogCoreMapper.selectById(id);  
96 - assertEquals(CommonResult.isSuccess(sendCode) ? SysSmsSendStatusEnum.SUCCESS.getStatus()  
97 - : SysSmsSendStatusEnum.FAILURE.getStatus(), dbSmsLog.getSendStatus());  
98 - assertNotNull(dbSmsLog.getSendTime());  
99 - assertEquals(sendMsg, dbSmsLog.getSendMsg());  
100 - assertEquals(apiSendCode, dbSmsLog.getApiSendCode());  
101 - assertEquals(apiSendMsg, dbSmsLog.getApiSendMsg());  
102 - assertEquals(apiRequestId, dbSmsLog.getApiRequestId());  
103 - assertEquals(apiSerialNo, dbSmsLog.getApiSerialNo());  
104 - }  
105 -  
106 - @Test  
107 - public void testUpdateSmsReceiveResult() {  
108 - // mock 数据  
109 - SysSmsLogDO dbSmsLog = randomSmsLogDO(  
110 - o -> o.setReceiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus()));  
111 - smsLogCoreMapper.insert(dbSmsLog);  
112 - // 准备参数  
113 - Long id = dbSmsLog.getId();  
114 - Boolean success = randomBoolean();  
115 - Date receiveTime = randomDate();  
116 - String apiReceiveCode = randomString();  
117 - String apiReceiveMsg = randomString();  
118 -  
119 - // 调用  
120 - smsLogCoreService.updateSmsReceiveResult(id, success, receiveTime, apiReceiveCode, apiReceiveMsg);  
121 - // 断言  
122 - dbSmsLog = smsLogCoreMapper.selectById(id);  
123 - assertEquals(success ? SysSmsReceiveStatusEnum.SUCCESS.getStatus()  
124 - : SysSmsReceiveStatusEnum.FAILURE.getStatus(), dbSmsLog.getReceiveStatus());  
125 - assertEquals(receiveTime, dbSmsLog.getReceiveTime());  
126 - assertEquals(apiReceiveCode, dbSmsLog.getApiReceiveCode());  
127 - assertEquals(apiReceiveMsg, dbSmsLog.getApiReceiveMsg());  
128 - }  
129 -  
130 - // ========== 随机对象 ==========  
131 -  
132 - @SafeVarargs  
133 - private static SysSmsLogDO randomSmsLogDO(Consumer<SysSmsLogDO>... consumers) {  
134 - Consumer<SysSmsLogDO> consumer = (o) -> {  
135 - o.setTemplateParams(randomTemplateParams());  
136 - o.setTemplateType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 templateType 的范围  
137 - o.setUserType(randomEle(UserTypeEnum.values()).getValue()); // 保证 userType 的范围  
138 - o.setSendStatus(randomEle(SysSmsSendStatusEnum.values()).getStatus()); // 保证 sendStatus 的范围  
139 - o.setReceiveStatus(randomEle(SysSmsReceiveStatusEnum.values()).getStatus()); // 保证 receiveStatus 的范围  
140 - };  
141 - return randomPojo(SysSmsLogDO.class, ArrayUtils.append(consumer, consumers));  
142 - }  
143 -  
144 -  
145 - private static Map<String, Object> randomTemplateParams() {  
146 - return MapUtil.<String, Object>builder().put(randomString(), randomString())  
147 - .put(randomString(), randomString()).build();  
148 - }  
149 -}  
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/SysSmsTemplateServiceTest.java deleted
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms;  
2 -  
3 -import cn.iocoder.yudao.coreservice.BaseDbUnitTest;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.sms.SysSmsTemplateCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsTemplateTypeEnum;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.impl.SysSmsTemplateCoreServiceImpl;  
8 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
9 -import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;  
10 -import org.junit.jupiter.api.Test;  
11 -import org.springframework.context.annotation.Import;  
12 -  
13 -import javax.annotation.Resource;  
14 -import java.util.Date;  
15 -import java.util.Map;  
16 -import java.util.function.Consumer;  
17 -  
18 -import static cn.hutool.core.bean.BeanUtil.getFieldValue;  
19 -import static cn.hutool.core.util.RandomUtil.randomEle;  
20 -import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max;  
21 -import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;  
22 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;  
23 -import static org.junit.jupiter.api.Assertions.assertEquals;  
24 -  
25 -/**  
26 -* {@link SysSmsTemplateCoreServiceImpl} 的单元测试类  
27 -*  
28 -* @author 芋道源码  
29 -*/  
30 -@Import(SysSmsTemplateCoreServiceImpl.class)  
31 -public class SysSmsTemplateServiceTest extends BaseDbUnitTest {  
32 -  
33 - @Resource  
34 - private SysSmsTemplateCoreServiceImpl smsTemplateCoreService;  
35 -  
36 - @Resource  
37 - private SysSmsTemplateCoreMapper smsTemplateCoreMapper;  
38 -  
39 - @Test  
40 - @SuppressWarnings("unchecked")  
41 - void testInitLocalCache() {  
42 - // mock 数据  
43 - SysSmsTemplateDO smsTemplate01 = randomSmsTemplateDO();  
44 - smsTemplateCoreMapper.insert(smsTemplate01);  
45 - SysSmsTemplateDO smsTemplate02 = randomSmsTemplateDO();  
46 - smsTemplateCoreMapper.insert(smsTemplate02);  
47 -  
48 - // 调用  
49 - smsTemplateCoreService.initLocalCache();  
50 - // 断言 deptCache 缓存  
51 - Map<String, SysSmsTemplateDO> smsTemplateCache = (Map<String, SysSmsTemplateDO>) getFieldValue(smsTemplateCoreService, "smsTemplateCache");  
52 - assertEquals(2, smsTemplateCache.size());  
53 - assertPojoEquals(smsTemplate01, smsTemplateCache.get(smsTemplate01.getCode()));  
54 - assertPojoEquals(smsTemplate02, smsTemplateCache.get(smsTemplate02.getCode()));  
55 - // 断言 maxUpdateTime 缓存  
56 - Date maxUpdateTime = (Date) getFieldValue(smsTemplateCoreService, "maxUpdateTime");  
57 - assertEquals(max(smsTemplate01.getUpdateTime(), smsTemplate02.getUpdateTime()), maxUpdateTime);  
58 - }  
59 -  
60 - // ========== 随机对象 ==========  
61 -  
62 - @SafeVarargs  
63 - private static SysSmsTemplateDO randomSmsTemplateDO(Consumer<SysSmsTemplateDO>... consumers) {  
64 - Consumer<SysSmsTemplateDO> consumer = (o) -> {  
65 - o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围  
66 - o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()); // 保证 type 的 范围  
67 - };  
68 - return randomPojo(SysSmsTemplateDO.class, ArrayUtils.append(consumer, consumers));  
69 - }  
70 -  
71 -}  
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/message/BpmMessageConvert.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.message; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.adminserver.modules.bpm.convert.message;
3 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO; 3 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
4 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
5 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
7 import org.activiti.api.task.model.Task; 7 import org.activiti.api.task.model.Task;
8 import org.activiti.engine.runtime.ProcessInstance; 8 import org.activiti.engine.runtime.ProcessInstance;
9 import org.mapstruct.Mapper; 9 import org.mapstruct.Mapper;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmProcessInstanceConvert.java
@@ -5,8 +5,8 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmP @@ -5,8 +5,8 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.instance.BpmP
5 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO; 5 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.definition.BpmProcessDefinitionExtDO;
6 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO; 6 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmProcessInstanceExtDO;
7 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent; 7 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.event.BpmProcessInstanceResultEvent;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 import org.activiti.engine.history.HistoricProcessInstance; 11 import org.activiti.engine.history.HistoricProcessInstance;
12 import org.activiti.engine.repository.ProcessDefinition; 12 import org.activiti.engine.repository.ProcessDefinition;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/convert/task/BpmTaskConvert.java
@@ -4,8 +4,8 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskD @@ -4,8 +4,8 @@ import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskD
4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskRespVO; 4 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskRespVO;
5 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskTodoPageItemRespVO; 5 import cn.iocoder.yudao.adminserver.modules.bpm.controller.task.vo.task.BpmTaskTodoPageItemRespVO;
6 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO; 6 import cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.task.BpmTaskExtDO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  8 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
10 import cn.iocoder.yudao.framework.common.util.number.NumberUtils; 10 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
11 import org.activiti.engine.history.HistoricProcessInstance; 11 import org.activiti.engine.history.HistoricProcessInstance;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/dal/dataobject/leave/BpmOALeaveDO.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave; 1 package cn.iocoder.yudao.adminserver.modules.bpm.dal.dataobject.leave;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
4 import lombok.*; 4 import lombok.*;
5 import java.util.*; 5 import java.util.*;
6 import com.baomidou.mybatisplus.annotation.*; 6 import com.baomidou.mybatisplus.annotation.*;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/enums/message/BpmMessageEnum.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.enums.message; 1 package cn.iocoder.yudao.adminserver.modules.bpm.enums.message;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
4 import lombok.AllArgsConstructor; 4 import lombok.AllArgsConstructor;
5 import lombok.Getter; 5 import lombok.Getter;
6 6
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/config/BpmActivitiConfiguration.java
@@ -7,9 +7,9 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.identity @@ -7,9 +7,9 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.identity
7 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener.BpmTackActivitiEventListener; 7 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.listener.BpmTackActivitiEventListener;
8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
9 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; 9 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
10 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;  
12 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 10 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  11 +import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
  12 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
13 import org.activiti.api.runtime.shared.identity.UserGroupManager; 13 import org.activiti.api.runtime.shared.identity.UserGroupManager;
14 import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer; 14 import org.activiti.spring.boot.ProcessEngineConfigurationConfigurer;
15 import org.springframework.context.ApplicationEventPublisher; 15 import org.springframework.context.ApplicationEventPublisher;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmActivityBehaviorFactory.java
@@ -3,9 +3,9 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio @@ -3,9 +3,9 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio
3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; 3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
4 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; 4 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
5 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; 5 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
6 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;  
8 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 6 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  7 +import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
  8 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
9 import lombok.Data; 9 import lombok.Data;
10 import lombok.EqualsAndHashCode; 10 import lombok.EqualsAndHashCode;
11 import lombok.Setter; 11 import lombok.Setter;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehavior.java
@@ -9,11 +9,11 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior @@ -9,11 +9,11 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior
9 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; 9 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
10 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; 10 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
11 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO; 11 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO;
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
13 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
14 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
15 -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;  
16 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 12 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  13 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  14 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  15 +import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
  16 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
17 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 17 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
18 import com.google.common.annotations.VisibleForTesting; 18 import com.google.common.annotations.VisibleForTesting;
19 import lombok.Setter; 19 import lombok.Setter;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignLeaderAbstractScript.java
@@ -2,17 +2,16 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio @@ -2,17 +2,16 @@ package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavio
2 2
3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript; 3 import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.BpmTaskAssignScript;
4 4
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
8 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  6 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  7 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  8 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
9 import org.activiti.engine.impl.persistence.entity.TaskEntity; 9 import org.activiti.engine.impl.persistence.entity.TaskEntity;
10 import org.springframework.util.Assert; 10 import org.springframework.util.Assert;
11 11
12 import javax.annotation.Resource; 12 import javax.annotation.Resource;
13 import java.util.Set; 13 import java.util.Set;
14 14
15 -import static cn.iocoder.yudao.framework.common.util.collection.SetUtils.asSet;  
16 import static java.util.Collections.emptySet; 15 import static java.util.Collections.emptySet;
17 16
18 /** 17 /**
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/definition/impl/BpmTaskAssignRuleServiceImpl.java
@@ -14,12 +14,12 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelServi @@ -14,12 +14,12 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmModelServi
14 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService; 14 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmProcessDefinitionService;
15 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; 15 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
16 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; 16 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
17 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants;  
18 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
19 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysPostCoreService;  
20 -import cn.iocoder.yudao.coreservice.modules.system.service.dict.SysDictDataCoreService;  
21 -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysRoleCoreService;  
22 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 17 +import cn.iocoder.yudao.module.system.enums.SysDictTypeConstants;
  18 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  19 +import cn.iocoder.yudao.module.system.service.dept.SysPostCoreService;
  20 +import cn.iocoder.yudao.module.system.service.dict.DictDataCoreService;
  21 +import cn.iocoder.yudao.module.system.service.permission.SysRoleCoreService;
  22 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
23 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils; 23 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
24 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 24 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
25 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 25 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
@@ -64,7 +64,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService { @@ -64,7 +64,7 @@ public class BpmTaskAssignRuleServiceImpl implements BpmTaskAssignRuleService {
64 @Resource 64 @Resource
65 private BpmUserGroupServiceApi userGroupServiceApi; 65 private BpmUserGroupServiceApi userGroupServiceApi;
66 @Resource 66 @Resource
67 - private SysDictDataCoreService dictDataCoreService; 67 + private DictDataCoreService dictDataCoreService;
68 68
69 @Override 69 @Override
70 public List<BpmTaskAssignRuleDO> getTaskAssignRuleListByProcessDefinitionId(String processDefinitionId, 70 public List<BpmTaskAssignRuleDO> getTaskAssignRuleListByProcessDefinitionId(String processDefinitionId,
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/message/impl/BpmMessageServiceImpl.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.message.BpmMessageServic @@ -5,7 +5,7 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.message.BpmMessageServic
5 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO; 5 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceApproveReqDTO;
6 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO; 6 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenProcessInstanceRejectReqDTO;
7 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO; 7 import cn.iocoder.yudao.adminserver.modules.bpm.service.message.dto.BpmMessageSendWhenTaskCreatedReqDTO;
8 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService; 8 +import cn.iocoder.yudao.module.system.service.sms.SysSmsCoreService;
9 import lombok.extern.slf4j.Slf4j; 9 import lombok.extern.slf4j.Slf4j;
10 import org.springframework.beans.factory.annotation.Value; 10 import org.springframework.beans.factory.annotation.Value;
11 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmProcessInstanceServiceImpl.java
@@ -18,10 +18,10 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.message.BpmMessageServic @@ -18,10 +18,10 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.message.BpmMessageServic
18 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; 18 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
19 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService; 19 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService;
20 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO; 20 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.dto.BpmProcessInstanceCreateReqDTO;
21 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
22 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
23 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
24 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 21 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  22 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  23 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  24 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
25 import cn.iocoder.yudao.framework.common.pojo.PageResult; 25 import cn.iocoder.yudao.framework.common.pojo.PageResult;
26 import cn.iocoder.yudao.framework.common.util.number.NumberUtils; 26 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
27 import lombok.extern.slf4j.Slf4j; 27 import lombok.extern.slf4j.Slf4j;
yudao-module-bpm/yudao-module-bpm-activiti/src/main/java/cn/iocoder/yudao/adminserver/modules/bpm/service/task/impl/BpmTaskServiceImpl.java
@@ -12,10 +12,10 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.message.BpmMessageServic @@ -12,10 +12,10 @@ import cn.iocoder.yudao.adminserver.modules.bpm.service.message.BpmMessageServic
12 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService; 12 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmProcessInstanceService;
13 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService; 13 import cn.iocoder.yudao.adminserver.modules.bpm.service.task.BpmTaskService;
14 14
15 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
16 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
17 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
18 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 15 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  16 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  17 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  18 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
19 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils; 19 import cn.iocoder.yudao.framework.activiti.core.util.ActivitiUtils;
20 import cn.iocoder.yudao.framework.common.pojo.PageResult; 20 import cn.iocoder.yudao.framework.common.pojo.PageResult;
21 import cn.iocoder.yudao.framework.common.util.number.NumberUtils; 21 import cn.iocoder.yudao.framework.common.util.number.NumberUtils;
yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/BpmUserTaskActivitiBehaviorTest.java
@@ -8,11 +8,11 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior @@ -8,11 +8,11 @@ import cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior
8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService; 8 import cn.iocoder.yudao.adminserver.modules.bpm.service.definition.BpmTaskAssignRuleService;
9 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi; 9 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.BpmUserGroupServiceApi;
10 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO; 10 import cn.iocoder.yudao.coreservice.modules.bpm.api.group.dto.BpmUserGroupDTO;
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
13 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
14 -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService;  
15 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 11 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  12 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  13 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  14 +import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
  15 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
16 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 16 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
17 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 17 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
18 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; 18 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
yudao-module-bpm/yudao-module-bpm-activiti/src/test/java/cn/iocoder/yudao/adminserver/modules/bpm/framework/activiti/core/behavior/script/impl/BpmTaskAssignLeaderX2ScriptTest.java
1 package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.impl; 1 package cn.iocoder.yudao.adminserver.modules.bpm.framework.activiti.core.behavior.script.impl;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
6 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  4 +import cn.iocoder.yudao.module.system.dal.dataobject.user.SysUserDO;
  5 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  6 +import cn.iocoder.yudao.module.system.service.user.SysUserCoreService;
7 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest; 7 import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
8 import org.activiti.engine.impl.persistence.entity.ExecutionEntityImpl; 8 import org.activiti.engine.impl.persistence.entity.ExecutionEntityImpl;
9 import org.activiti.engine.impl.persistence.entity.TaskEntity; 9 import org.activiti.engine.impl.persistence.entity.TaskEntity;
yudao-module-member/yudao-module-member-impl/pom.xml
@@ -24,6 +24,12 @@ @@ -24,6 +24,12 @@
24 <version>${revision}</version> 24 <version>${revision}</version>
25 </dependency> 25 </dependency>
26 26
  27 + <dependency>
  28 + <groupId>cn.iocoder.boot</groupId>
  29 + <artifactId>yudao-module-system-api</artifactId>
  30 + <version>${revision}</version>
  31 + </dependency>
  32 +
27 <!-- 业务组件 --> 33 <!-- 业务组件 -->
28 <dependency> 34 <dependency>
29 <groupId>cn.iocoder.boot</groupId> 35 <groupId>cn.iocoder.boot</groupId>
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/AppAuthController.java
1 package cn.iocoder.yudao.module.member.controller.app.auth; 1 package cn.iocoder.yudao.module.member.controller.app.auth;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;  
4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 5 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
7 import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; 6 import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
8 -import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;  
9 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; 7 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*;
10 import cn.iocoder.yudao.module.member.service.auth.AuthService; 8 import cn.iocoder.yudao.module.member.service.auth.AuthService;
11 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService; 9 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService;
@@ -15,7 +13,6 @@ import io.swagger.annotations.ApiImplicitParams; @@ -15,7 +13,6 @@ import io.swagger.annotations.ApiImplicitParams;
15 import io.swagger.annotations.ApiOperation; 13 import io.swagger.annotations.ApiOperation;
16 import lombok.extern.slf4j.Slf4j; 14 import lombok.extern.slf4j.Slf4j;
17 import org.springframework.beans.factory.annotation.Autowired; 15 import org.springframework.beans.factory.annotation.Autowired;
18 -import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;  
19 import org.springframework.validation.annotation.Validated; 16 import org.springframework.validation.annotation.Validated;
20 import org.springframework.web.bind.annotation.*; 17 import org.springframework.web.bind.annotation.*;
21 18
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialBindReqVO.java
1 package cn.iocoder.yudao.module.member.controller.app.auth.vo; 1 package cn.iocoder.yudao.module.member.controller.app.auth.vo;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
5 import io.swagger.annotations.ApiModel; 4 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 5 import io.swagger.annotations.ApiModelProperty;
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialLogin2ReqVO.java
1 package cn.iocoder.yudao.module.member.controller.app.auth.vo; 1 package cn.iocoder.yudao.module.member.controller.app.auth.vo;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
@@ -22,7 +22,7 @@ import javax.validation.constraints.Pattern; @@ -22,7 +22,7 @@ import javax.validation.constraints.Pattern;
22 public class AppAuthSocialLogin2ReqVO { 22 public class AppAuthSocialLogin2ReqVO {
23 23
24 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 24 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
25 - @InEnum(SysSocialTypeEnum.class) 25 + @InEnum(SocialTypeEnum.class)
26 @NotNull(message = "社交平台的类型不能为空") 26 @NotNull(message = "社交平台的类型不能为空")
27 private Integer type; 27 private Integer type;
28 28
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java
1 package cn.iocoder.yudao.module.member.controller.app.auth.vo; 1 package cn.iocoder.yudao.module.member.controller.app.auth.vo;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
@@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull; @@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull;
20 public class AppAuthSocialLoginReqVO { 20 public class AppAuthSocialLoginReqVO {
21 21
22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
23 - @InEnum(SysSocialTypeEnum.class) 23 + @InEnum(SocialTypeEnum.class)
24 @NotNull(message = "社交平台的类型不能为空") 24 @NotNull(message = "社交平台的类型不能为空")
25 private Integer type; 25 private Integer type;
26 26
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialUnbindReqVO.java
1 package cn.iocoder.yudao.module.member.controller.app.auth.vo; 1 package cn.iocoder.yudao.module.member.controller.app.auth.vo;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
@@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull; @@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull;
20 public class AppAuthSocialUnbindReqVO { 20 public class AppAuthSocialUnbindReqVO {
21 21
22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
23 - @InEnum(SysSocialTypeEnum.class) 23 + @InEnum(SocialTypeEnum.class)
24 @NotNull(message = "社交平台的类型不能为空") 24 @NotNull(message = "社交平台的类型不能为空")
25 private Integer type; 25 private Integer type;
26 26
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/AuthServiceImpl.java
@@ -2,13 +2,13 @@ package cn.iocoder.yudao.module.member.service.auth; @@ -2,13 +2,13 @@ package cn.iocoder.yudao.module.member.service.auth;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.lang.Assert; 4 import cn.hutool.core.lang.Assert;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;  
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginLogTypeEnum;  
7 -import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginResultEnum;  
8 -import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;  
9 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;  
10 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
  6 +import cn.iocoder.yudao.module.system.enums.logger.SysLoginLogTypeEnum;
  7 +import cn.iocoder.yudao.module.system.enums.logger.SysLoginResultEnum;
  8 +import cn.iocoder.yudao.module.system.service.auth.SysUserSessionCoreService;
  9 +import cn.iocoder.yudao.module.system.service.logger.SysLoginLogCoreService;
  10 +import cn.iocoder.yudao.module.system.service.logger.dto.SysLoginLogCreateReqDTO;
  11 +import cn.iocoder.yudao.module.system.service.social.SysSocialCoreService;
12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
14 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 14 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
@@ -29,7 +29,6 @@ import org.springframework.context.annotation.Lazy; @@ -29,7 +29,6 @@ import org.springframework.context.annotation.Lazy;
29 import org.springframework.security.authentication.AuthenticationManager; 29 import org.springframework.security.authentication.AuthenticationManager;
30 import org.springframework.security.authentication.BadCredentialsException; 30 import org.springframework.security.authentication.BadCredentialsException;
31 import org.springframework.security.authentication.DisabledException; 31 import org.springframework.security.authentication.DisabledException;
32 -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;  
33 import org.springframework.security.core.Authentication; 32 import org.springframework.security.core.Authentication;
34 import org.springframework.security.core.AuthenticationException; 33 import org.springframework.security.core.AuthenticationException;
35 import org.springframework.security.core.userdetails.UserDetails; 34 import org.springframework.security.core.userdetails.UserDetails;
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/sms/SysSmsCodeServiceImpl.java
1 package cn.iocoder.yudao.module.member.service.sms; 1 package cn.iocoder.yudao.module.member.service.sms;
2 2
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService; 4 +import cn.iocoder.yudao.module.system.service.sms.SysSmsCoreService;
5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
6 import cn.iocoder.yudao.module.member.dal.dataobject.sms.SysSmsCodeDO; 6 import cn.iocoder.yudao.module.member.dal.dataobject.sms.SysSmsCodeDO;
7 import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO; 7 import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;
yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/auth/SysAuthServiceTest.java
1 package cn.iocoder.yudao.module.member.service.auth; 1 package cn.iocoder.yudao.module.member.service.auth;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;  
4 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;  
5 -import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService; 3 +import cn.iocoder.yudao.module.system.service.auth.SysUserSessionCoreService;
  4 +import cn.iocoder.yudao.module.system.service.logger.SysLoginLogCoreService;
  5 +import cn.iocoder.yudao.module.system.service.social.SysSocialCoreService;
6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
7 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 7 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
8 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; 8 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/SysErrorCodeConstants.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/SysErrorCodeConstants.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums; 1 +package cn.iocoder.yudao.module.system.enums;
2 2
3 import cn.iocoder.yudao.framework.common.exception.ErrorCode; 3 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
4 4
@@ -14,10 +14,6 @@ public interface SysErrorCodeConstants { @@ -14,10 +14,6 @@ public interface SysErrorCodeConstants {
14 ErrorCode SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS = new ErrorCode(1006000001, "模板参数({})缺失"); 14 ErrorCode SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS = new ErrorCode(1006000001, "模板参数({})缺失");
15 ErrorCode SMS_SEND_TEMPLATE_NOT_EXISTS = new ErrorCode(1006000000, "短信模板不存在"); 15 ErrorCode SMS_SEND_TEMPLATE_NOT_EXISTS = new ErrorCode(1006000000, "短信模板不存在");
16 16
17 - // ========= 文件相关 1006001000=================  
18 - ErrorCode FILE_PATH_EXISTS = new ErrorCode(1006001000, "文件路径已存在");  
19 - ErrorCode FILE_NOT_EXISTS = new ErrorCode(1006001002, "文件不存在");  
20 -  
21 // ========== 社交模块 1006002000 ========== 17 // ========== 社交模块 1006002000 ==========
22 ErrorCode SOCIAL_AUTH_FAILURE = new ErrorCode(1006002000, "社交授权失败,原因是:{}"); 18 ErrorCode SOCIAL_AUTH_FAILURE = new ErrorCode(1006002000, "社交授权失败,原因是:{}");
23 ErrorCode SOCIAL_UNBIND_NOT_SELF = new ErrorCode(1006002001, "社交解绑失败,非当前用户绑定"); 19 ErrorCode SOCIAL_UNBIND_NOT_SELF = new ErrorCode(1006002001, "社交解绑失败,非当前用户绑定");
@@ -34,10 +30,6 @@ public interface SysErrorCodeConstants { @@ -34,10 +30,6 @@ public interface SysErrorCodeConstants {
34 ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1006005000, "角色不存在"); 30 ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1006005000, "角色不存在");
35 ErrorCode ROLE_IS_DISABLE = new ErrorCode(1006005001, "名字为【{}】的角色已被禁用"); 31 ErrorCode ROLE_IS_DISABLE = new ErrorCode(1006005001, "名字为【{}】的角色已被禁用");
36 32
37 - // ========== 字典类型 1006006000 ==========  
38 - ErrorCode DICT_DATA_NOT_EXISTS = new ErrorCode(1006006000, "当前字典数据不存在");  
39 - ErrorCode DICT_DATA_NOT_ENABLE = new ErrorCode(1006006001, "字典数据({})不处于开启状态,不允许选择");  
40 -  
41 // ========== 岗位模块 1006007000 ========== 33 // ========== 岗位模块 1006007000 ==========
42 ErrorCode POST_NOT_FOUND = new ErrorCode(1006007000, "当前岗位不存在"); 34 ErrorCode POST_NOT_FOUND = new ErrorCode(1006007000, "当前岗位不存在");
43 ErrorCode POST_NOT_ENABLE = new ErrorCode(1006007001, "岗位({}) 不处于开启状态,不允许选择"); 35 ErrorCode POST_NOT_ENABLE = new ErrorCode(1006007001, "岗位({}) 不处于开启状态,不允许选择");
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/social/SysSocialTypeEnum.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/social/SocialTypeEnum.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums.social; 1 +package cn.iocoder.yudao.module.system.enums.social;
2 2
3 import cn.hutool.core.collection.ListUtil; 3 import cn.hutool.core.collection.ListUtil;
4 import cn.hutool.core.util.ArrayUtil; 4 import cn.hutool.core.util.ArrayUtil;
@@ -16,7 +16,7 @@ import java.util.List; @@ -16,7 +16,7 @@ import java.util.List;
16 */ 16 */
17 @Getter 17 @Getter
18 @AllArgsConstructor 18 @AllArgsConstructor
19 -public enum SysSocialTypeEnum implements IntArrayValuable { 19 +public enum SocialTypeEnum implements IntArrayValuable {
20 20
21 /** 21 /**
22 * Gitee 22 * Gitee
@@ -51,7 +51,7 @@ public enum SysSocialTypeEnum implements IntArrayValuable { @@ -51,7 +51,7 @@ public enum SysSocialTypeEnum implements IntArrayValuable {
51 WECHAT_MINI_PROGRAM(33, "WECHAT_MINI_PROGRAM"), 51 WECHAT_MINI_PROGRAM(33, "WECHAT_MINI_PROGRAM"),
52 ; 52 ;
53 53
54 - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SysSocialTypeEnum::getType).toArray(); 54 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SocialTypeEnum::getType).toArray();
55 55
56 public static final List<Integer> WECHAT_ALL = ListUtil.toList(WECHAT_ENTERPRISE.type, WECHAT_MP.type, WECHAT_OPEN.type, 56 public static final List<Integer> WECHAT_ALL = ListUtil.toList(WECHAT_ENTERPRISE.type, WECHAT_MP.type, WECHAT_OPEN.type,
57 WECHAT_MINI_PROGRAM.type); 57 WECHAT_MINI_PROGRAM.type);
@@ -70,7 +70,7 @@ public enum SysSocialTypeEnum implements IntArrayValuable { @@ -70,7 +70,7 @@ public enum SysSocialTypeEnum implements IntArrayValuable {
70 return ARRAYS; 70 return ARRAYS;
71 } 71 }
72 72
73 - public static SysSocialTypeEnum valueOfType(Integer type) { 73 + public static SocialTypeEnum valueOfType(Integer type) {
74 return ArrayUtil.firstMatch(o -> o.getType().equals(type), values()); 74 return ArrayUtil.firstMatch(o -> o.getType().equals(type), values());
75 } 75 }
76 76
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java
@@ -3,19 +3,19 @@ package cn.iocoder.yudao.module.system.controller.admin.auth; @@ -3,19 +3,19 @@ package cn.iocoder.yudao.module.system.controller.admin.auth;
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; 3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*;
4 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; 4 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
5 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
7 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; 7 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
8 import cn.iocoder.yudao.module.system.service.auth.AuthService; 8 import cn.iocoder.yudao.module.system.service.auth.AuthService;
9 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 9 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
10 import cn.iocoder.yudao.module.system.service.permission.RoleService; 10 import cn.iocoder.yudao.module.system.service.permission.RoleService;
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
12 -import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;  
13 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 11 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  12 +import cn.iocoder.yudao.module.system.service.social.SocialUserService;
14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 13 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
15 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 14 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
16 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 15 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
17 import cn.iocoder.yudao.framework.common.util.collection.SetUtils; 16 import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
18 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 17 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
  18 +import cn.iocoder.yudao.module.system.service.user.UserService;
19 import io.swagger.annotations.Api; 19 import io.swagger.annotations.Api;
20 import io.swagger.annotations.ApiImplicitParam; 20 import io.swagger.annotations.ApiImplicitParam;
21 import io.swagger.annotations.ApiImplicitParams; 21 import io.swagger.annotations.ApiImplicitParams;
@@ -45,14 +45,15 @@ public class AuthController { @@ -45,14 +45,15 @@ public class AuthController {
45 @Autowired 45 @Autowired
46 @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // AuthService 存在重名 46 @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // AuthService 存在重名
47 private AuthService authService; 47 private AuthService authService;
48 - @Resource  
49 - private SysUserCoreService userCoreService; 48 + @Autowired
  49 + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
  50 + private UserService userService;
50 @Resource 51 @Resource
51 private RoleService roleService; 52 private RoleService roleService;
52 @Resource 53 @Resource
53 private PermissionService permissionService; 54 private PermissionService permissionService;
54 @Resource 55 @Resource
55 - private SysSocialCoreService socialCoreService; 56 + private SocialUserService socialCoreService;
56 57
57 @PostMapping("/login") 58 @PostMapping("/login")
58 @ApiOperation("使用账号密码登录") 59 @ApiOperation("使用账号密码登录")
@@ -67,7 +68,7 @@ public class AuthController { @@ -67,7 +68,7 @@ public class AuthController {
67 @ApiOperation("获取登录用户的权限信息") 68 @ApiOperation("获取登录用户的权限信息")
68 public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo() { 69 public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo() {
69 // 获得用户信息 70 // 获得用户信息
70 - SysUserDO user = userCoreService.getUser(getLoginUserId()); 71 + UserDO user = userService.getUser(getLoginUserId());
71 if (user == null) { 72 if (user == null) {
72 return null; 73 return null;
73 } 74 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/UserSessionController.java
@@ -3,19 +3,19 @@ package cn.iocoder.yudao.module.system.controller.admin.auth; @@ -3,19 +3,19 @@ package cn.iocoder.yudao.module.system.controller.admin.auth;
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageItemRespVO; 3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageItemRespVO;
4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO;
5 import cn.iocoder.yudao.module.system.convert.auth.UserSessionConvert; 5 import cn.iocoder.yudao.module.system.convert.auth.UserSessionConvert;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 import cn.iocoder.yudao.module.system.service.auth.UserSessionService; 7 import cn.iocoder.yudao.module.system.service.auth.UserSessionService;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
10 -import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
12 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  10 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
13 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 11 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
14 import cn.iocoder.yudao.framework.common.pojo.PageResult; 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
15 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 13 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
  14 +import cn.iocoder.yudao.module.system.service.user.UserService;
16 import io.swagger.annotations.Api; 15 import io.swagger.annotations.Api;
17 import io.swagger.annotations.ApiImplicitParam; 16 import io.swagger.annotations.ApiImplicitParam;
18 import io.swagger.annotations.ApiOperation; 17 import io.swagger.annotations.ApiOperation;
  18 +import org.springframework.beans.factory.annotation.Autowired;
19 import org.springframework.security.access.prepost.PreAuthorize; 19 import org.springframework.security.access.prepost.PreAuthorize;
20 import org.springframework.validation.annotation.Validated; 20 import org.springframework.validation.annotation.Validated;
21 import org.springframework.web.bind.annotation.*; 21 import org.springframework.web.bind.annotation.*;
@@ -35,10 +35,9 @@ public class UserSessionController { @@ -35,10 +35,9 @@ public class UserSessionController {
35 35
36 @Resource 36 @Resource
37 private UserSessionService userSessionService; 37 private UserSessionService userSessionService;
38 - @Resource  
39 - private SysUserSessionCoreService userSessionCoreService;  
40 - @Resource  
41 - private SysUserCoreService userCoreService; 38 + @Autowired
  39 + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
  40 + private UserService userService;
42 41
43 @Resource 42 @Resource
44 private SysDeptCoreService deptCoreService; 43 private SysDeptCoreService deptCoreService;
@@ -51,10 +50,10 @@ public class UserSessionController { @@ -51,10 +50,10 @@ public class UserSessionController {
51 PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO); 50 PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO);
52 51
53 // 获得拼接需要的数据 52 // 获得拼接需要的数据
54 - Map<Long, SysUserDO> userMap = userCoreService.getUserMap( 53 + Map<Long, UserDO> userMap = userService.getUserMap(
55 convertList(pageResult.getList(), SysUserSessionDO::getUserId)); 54 convertList(pageResult.getList(), SysUserSessionDO::getUserId));
56 Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap( 55 Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(
57 - convertList(userMap.values(), SysUserDO::getDeptId)); 56 + convertList(userMap.values(), UserDO::getDeptId));
58 // 拼接结果返回 57 // 拼接结果返回
59 List<UserSessionPageItemRespVO> sessionList = new ArrayList<>(pageResult.getList().size()); 58 List<UserSessionPageItemRespVO> sessionList = new ArrayList<>(pageResult.getList().size());
60 pageResult.getList().forEach(session -> { 59 pageResult.getList().forEach(session -> {
@@ -76,7 +75,7 @@ public class UserSessionController { @@ -76,7 +75,7 @@ public class UserSessionController {
76 example = "fe50b9f6-d177-44b1-8da9-72ea34f63db7") 75 example = "fe50b9f6-d177-44b1-8da9-72ea34f63db7")
77 @PreAuthorize("@ss.hasPermission('system:user-session:delete')") 76 @PreAuthorize("@ss.hasPermission('system:user-session:delete')")
78 public CommonResult<Boolean> deleteUserSession(@RequestParam("id") String id) { 77 public CommonResult<Boolean> deleteUserSession(@RequestParam("id") String id) {
79 - userSessionCoreService.deleteUserSession(id); 78 + userSessionService.deleteUserSession(id);
80 return success(true); 79 return success(true);
81 } 80 }
82 81
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSocialBindReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum; 3 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 4 import cn.iocoder.yudao.framework.common.validation.InEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
@@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull; @@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull;
20 public class AuthSocialBindReqVO { 20 public class AuthSocialBindReqVO {
21 21
22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
23 - @InEnum(SysSocialTypeEnum.class) 23 + @InEnum(SocialTypeEnum.class)
24 @NotNull(message = "社交平台的类型不能为空") 24 @NotNull(message = "社交平台的类型不能为空")
25 private Integer type; 25 private Integer type;
26 26
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSocialLogin2ReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
@@ -22,7 +22,7 @@ import javax.validation.constraints.Pattern; @@ -22,7 +22,7 @@ import javax.validation.constraints.Pattern;
22 public class AuthSocialLogin2ReqVO { 22 public class AuthSocialLogin2ReqVO {
23 23
24 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 24 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
25 - @InEnum(SysSocialTypeEnum.class) 25 + @InEnum(SocialTypeEnum.class)
26 @NotNull(message = "社交平台的类型不能为空") 26 @NotNull(message = "社交平台的类型不能为空")
27 private Integer type; 27 private Integer type;
28 28
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSocialLoginReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum; 3 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 4 import cn.iocoder.yudao.framework.common.validation.InEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
@@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull; @@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull;
20 public class AuthSocialLoginReqVO { 20 public class AuthSocialLoginReqVO {
21 21
22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
23 - @InEnum(SysSocialTypeEnum.class) 23 + @InEnum(SocialTypeEnum.class)
24 @NotNull(message = "社交平台的类型不能为空") 24 @NotNull(message = "社交平台的类型不能为空")
25 private Integer type; 25 private Integer type;
26 26
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/auth/AuthSocialUnbindReqVO.java
1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth; 1 package cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
4 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
5 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
6 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
@@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull; @@ -20,7 +20,7 @@ import javax.validation.constraints.NotNull;
20 public class AuthSocialUnbindReqVO { 20 public class AuthSocialUnbindReqVO {
21 21
22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
23 - @InEnum(SysSocialTypeEnum.class) 23 + @InEnum(SocialTypeEnum.class)
24 @NotNull(message = "社交平台的类型不能为空") 24 @NotNull(message = "社交平台的类型不能为空")
25 private Integer type; 25 private Integer type;
26 26
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java
1 package cn.iocoder.yudao.module.system.controller.admin.dept; 1 package cn.iocoder.yudao.module.system.controller.admin.dept;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; 3 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 5 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.*; 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.*;
7 import cn.iocoder.yudao.module.system.convert.dept.DeptConvert; 7 import cn.iocoder.yudao.module.system.convert.dept.DeptConvert;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
9 import cn.iocoder.yudao.module.system.service.dept.DeptService; 9 import cn.iocoder.yudao.module.system.service.dept.DeptService;
10 import io.swagger.annotations.Api; 10 import io.swagger.annotations.Api;
11 import io.swagger.annotations.ApiImplicitParam; 11 import io.swagger.annotations.ApiImplicitParam;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/PostController.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.*; 8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.*;
9 import cn.iocoder.yudao.module.system.convert.dept.PostConvert; 9 import cn.iocoder.yudao.module.system.convert.dept.PostConvert;
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
11 import cn.iocoder.yudao.module.system.service.dept.PostService; 11 import cn.iocoder.yudao.module.system.service.dept.PostService;
12 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
13 import io.swagger.annotations.ApiImplicitParam; 13 import io.swagger.annotations.ApiImplicitParam;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/vo/post/PostExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.dept.vo.post;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -25,7 +25,7 @@ public class PostExcelVO { @@ -25,7 +25,7 @@ public class PostExcelVO {
25 private Integer sort; 25 private Integer sort;
26 26
27 @ExcelProperty(value = "状态", converter = DictConvert.class) 27 @ExcelProperty(value = "状态", converter = DictConvert.class)
28 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 28 + @DictFormat(DictTypeConstants.COMMON_STATUS)
29 private String status; 29 private String status;
30 30
31 } 31 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/DictDataController.java
1 package cn.iocoder.yudao.module.system.controller.admin.dict; 1 package cn.iocoder.yudao.module.system.controller.admin.dict;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/data/DictDataExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.dict.vo.data;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -28,7 +28,7 @@ public class DictDataExcelVO { @@ -28,7 +28,7 @@ public class DictDataExcelVO {
28 private String dictType; 28 private String dictType;
29 29
30 @ExcelProperty(value = "状态", converter = DictConvert.class) 30 @ExcelProperty(value = "状态", converter = DictConvert.class)
31 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 31 + @DictFormat(DictTypeConstants.COMMON_STATUS)
32 private Integer status; 32 private Integer status;
33 33
34 } 34 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dict/vo/type/DictTypeExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.dict.vo.type;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -22,7 +22,7 @@ public class DictTypeExcelVO { @@ -22,7 +22,7 @@ public class DictTypeExcelVO {
22 private String type; 22 private String type;
23 23
24 @ExcelProperty(value = "状态", converter = DictConvert.class) 24 @ExcelProperty(value = "状态", converter = DictConvert.class)
25 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 25 + @DictFormat(DictTypeConstants.COMMON_STATUS)
26 private Integer status; 26 private Integer status;
27 27
28 } 28 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/LoginLogController.java
1 package cn.iocoder.yudao.module.system.controller.admin.logger; 1 package cn.iocoder.yudao.module.system.controller.admin.logger;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 6 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.java
@@ -7,16 +7,17 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper @@ -7,16 +7,17 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper
7 import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; 7 import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert;
8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
9 import cn.iocoder.yudao.module.system.service.logger.OperateLogService; 9 import cn.iocoder.yudao.module.system.service.logger.OperateLogService;
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
12 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 11 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
13 import cn.iocoder.yudao.framework.common.pojo.PageResult; 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
14 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 13 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
15 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 14 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
16 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 15 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
17 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 16 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
  17 +import cn.iocoder.yudao.module.system.service.user.UserService;
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.beans.factory.annotation.Autowired;
20 import org.springframework.security.access.prepost.PreAuthorize; 21 import org.springframework.security.access.prepost.PreAuthorize;
21 import org.springframework.validation.annotation.Validated; 22 import org.springframework.validation.annotation.Validated;
22 import org.springframework.web.bind.annotation.GetMapping; 23 import org.springframework.web.bind.annotation.GetMapping;
@@ -43,8 +44,9 @@ public class OperateLogController { @@ -43,8 +44,9 @@ public class OperateLogController {
43 44
44 @Resource 45 @Resource
45 private OperateLogService operateLogService; 46 private OperateLogService operateLogService;
46 - @Resource  
47 - private SysUserCoreService userCoreService; 47 + @Autowired
  48 + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
  49 + private UserService userService;
48 50
49 @GetMapping("/page") 51 @GetMapping("/page")
50 @ApiOperation("查看操作日志分页列表") 52 @ApiOperation("查看操作日志分页列表")
@@ -54,7 +56,7 @@ public class OperateLogController { @@ -54,7 +56,7 @@ public class OperateLogController {
54 56
55 // 获得拼接需要的数据 57 // 获得拼接需要的数据
56 Collection<Long> userIds = CollectionUtils.convertList(pageResult.getList(), OperateLogDO::getUserId); 58 Collection<Long> userIds = CollectionUtils.convertList(pageResult.getList(), OperateLogDO::getUserId);
57 - Map<Long, SysUserDO> userMap = userCoreService.getUserMap(userIds); 59 + Map<Long, UserDO> userMap = userService.getUserMap(userIds);
58 // 拼接数据 60 // 拼接数据
59 List<OperateLogRespVO> list = new ArrayList<>(pageResult.getList().size()); 61 List<OperateLogRespVO> list = new ArrayList<>(pageResult.getList().size());
60 pageResult.getList().forEach(operateLog -> { 62 pageResult.getList().forEach(operateLog -> {
@@ -75,7 +77,7 @@ public class OperateLogController { @@ -75,7 +77,7 @@ public class OperateLogController {
75 77
76 // 获得拼接需要的数据 78 // 获得拼接需要的数据
77 Collection<Long> userIds = CollectionUtils.convertList(list, OperateLogDO::getUserId); 79 Collection<Long> userIds = CollectionUtils.convertList(list, OperateLogDO::getUserId);
78 - Map<Long, SysUserDO> userMap = userCoreService.getUserMap(userIds); 80 + Map<Long, UserDO> userMap = userService.getUserMap(userIds);
79 // 拼接数据 81 // 拼接数据
80 List<OperateLogExcelVO> excelDataList = OperateLogConvert.INSTANCE.convertList(list, userMap); 82 List<OperateLogExcelVO> excelDataList = OperateLogConvert.INSTANCE.convertList(list, userMap);
81 // 输出 83 // 输出
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/loginlog/LoginLogExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -21,11 +21,11 @@ public class LoginLogExcelVO { @@ -21,11 +21,11 @@ public class LoginLogExcelVO {
21 private String username; 21 private String username;
22 22
23 @ExcelProperty(value = "日志类型", converter = DictConvert.class) 23 @ExcelProperty(value = "日志类型", converter = DictConvert.class)
24 - @DictFormat(SysDictTypeConstants.LOGIN_TYPE) 24 + @DictFormat(DictTypeConstants.LOGIN_TYPE)
25 private Integer logType; 25 private Integer logType;
26 26
27 @ExcelProperty(value = "登录结果", converter = DictConvert.class) 27 @ExcelProperty(value = "登录结果", converter = DictConvert.class)
28 - @DictFormat(SysDictTypeConstants.LOGIN_RESULT) 28 + @DictFormat(DictTypeConstants.LOGIN_RESULT)
29 private Integer result; 29 private Integer result;
30 30
31 @ExcelProperty("登录 IP") 31 @ExcelProperty("登录 IP")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/vo/operatelog/OperateLogExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -24,7 +24,7 @@ public class OperateLogExcelVO { @@ -24,7 +24,7 @@ public class OperateLogExcelVO {
24 private String name; 24 private String name;
25 25
26 @ExcelProperty(value = "操作类型", converter = DictConvert.class) 26 @ExcelProperty(value = "操作类型", converter = DictConvert.class)
27 - @DictFormat(SysDictTypeConstants.OPERATE_TYPE) 27 + @DictFormat(DictTypeConstants.OPERATE_TYPE)
28 private String type; 28 private String type;
29 29
30 @ExcelProperty("操作人") 30 @ExcelProperty("操作人")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*; 8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*;
9 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert; 9 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert;
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
11 import cn.iocoder.yudao.module.system.service.permission.RoleService; 11 import cn.iocoder.yudao.module.system.service.permission.RoleService;
12 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
13 import io.swagger.annotations.ApiImplicitParam; 13 import io.swagger.annotations.ApiImplicitParam;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.permission.vo.role;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -28,7 +28,7 @@ public class RoleExcelVO { @@ -28,7 +28,7 @@ public class RoleExcelVO {
28 private Integer dataScope; 28 private Integer dataScope;
29 29
30 @ExcelProperty(value = "角色状态", converter = DictConvert.class) 30 @ExcelProperty(value = "角色状态", converter = DictConvert.class)
31 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 31 + @DictFormat(DictTypeConstants.COMMON_STATUS)
32 private String status; 32 private String status;
33 33
34 } 34 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.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.module.system.service.sms.SysSmsSendService;
6 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum; 8 import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
@@ -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 SysSmsCoreService smsCoreService; 28 + private SysSmsSendService 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 文档")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsChannelController.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms;
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.*; 3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.*;
4 import cn.iocoder.yudao.module.system.convert.sms.SmsChannelConvert; 4 import cn.iocoder.yudao.module.system.convert.sms.SmsChannelConvert;
5 import cn.iocoder.yudao.module.system.service.sms.SmsChannelService; 5 import cn.iocoder.yudao.module.system.service.sms.SmsChannelService;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
7 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 7 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import io.swagger.annotations.Api; 9 import io.swagger.annotations.Api;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsLogController.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqV @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqV
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SysSmsLogRespVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SysSmsLogRespVO;
7 import cn.iocoder.yudao.module.system.convert.sms.SmsLogConvert; 7 import cn.iocoder.yudao.module.system.convert.sms.SmsLogConvert;
8 import cn.iocoder.yudao.module.system.service.sms.SmsLogService; 8 import cn.iocoder.yudao.module.system.service.sms.SmsLogService;
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
10 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 10 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
11 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
12 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 12 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java
@@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.system.controller.admin.sms; @@ -3,8 +3,8 @@ package cn.iocoder.yudao.module.system.controller.admin.sms;
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.*; 3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.*;
4 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert; 4 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert;
5 import cn.iocoder.yudao.module.system.service.sms.SmsTemplateService; 5 import cn.iocoder.yudao.module.system.service.sms.SmsTemplateService;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
  7 +import cn.iocoder.yudao.module.system.service.sms.SysSmsSendService;
8 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 8 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
9 import cn.iocoder.yudao.framework.common.pojo.PageResult; 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
10 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 10 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -32,7 +32,7 @@ public class SmsTemplateController { @@ -32,7 +32,7 @@ public class SmsTemplateController {
32 @Resource 32 @Resource
33 private SmsTemplateService smsTemplateService; 33 private SmsTemplateService smsTemplateService;
34 @Resource 34 @Resource
35 - private SysSmsCoreService smsCoreService; 35 + private SysSmsSendService smsCoreService;
36 36
37 @PostMapping("/create") 37 @PostMapping("/create")
38 @ApiOperation("创建短信模板") 38 @ApiOperation("创建短信模板")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/log/SmsLogExcelVO.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms.vo.log; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms.vo.log;
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 import cn.iocoder.yudao.framework.excel.core.convert.JsonConvert; 5 import cn.iocoder.yudao.framework.excel.core.convert.JsonConvert;
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 6 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
7 import com.alibaba.excel.annotation.ExcelProperty; 7 import com.alibaba.excel.annotation.ExcelProperty;
8 import lombok.Data; 8 import lombok.Data;
9 9
@@ -34,7 +34,7 @@ public class SmsLogExcelVO { @@ -34,7 +34,7 @@ public class SmsLogExcelVO {
34 private String templateCode; 34 private String templateCode;
35 35
36 @ExcelProperty(value = "短信类型", converter = DictConvert.class) 36 @ExcelProperty(value = "短信类型", converter = DictConvert.class)
37 - @DictFormat(SysDictTypeConstants.SMS_TEMPLATE_TYPE) 37 + @DictFormat(DictTypeConstants.SMS_TEMPLATE_TYPE)
38 private Integer templateType; 38 private Integer templateType;
39 39
40 @ExcelProperty("短信内容") 40 @ExcelProperty("短信内容")
@@ -53,11 +53,11 @@ public class SmsLogExcelVO { @@ -53,11 +53,11 @@ public class SmsLogExcelVO {
53 private Long userId; 53 private Long userId;
54 54
55 @ExcelProperty(value = "用户类型", converter = DictConvert.class) 55 @ExcelProperty(value = "用户类型", converter = DictConvert.class)
56 - @DictFormat(SysDictTypeConstants.USER_TYPE) 56 + @DictFormat(DictTypeConstants.USER_TYPE)
57 private Integer userType; 57 private Integer userType;
58 58
59 @ExcelProperty(value = "发送状态", converter = DictConvert.class) 59 @ExcelProperty(value = "发送状态", converter = DictConvert.class)
60 - @DictFormat(SysDictTypeConstants.SMS_SEND_STATUS) 60 + @DictFormat(DictTypeConstants.SMS_SEND_STATUS)
61 private Integer sendStatus; 61 private Integer sendStatus;
62 62
63 @ExcelProperty("发送时间") 63 @ExcelProperty("发送时间")
@@ -82,7 +82,7 @@ public class SmsLogExcelVO { @@ -82,7 +82,7 @@ public class SmsLogExcelVO {
82 private String apiSerialNo; 82 private String apiSerialNo;
83 83
84 @ExcelProperty(value = "接收状态", converter = DictConvert.class) 84 @ExcelProperty(value = "接收状态", converter = DictConvert.class)
85 - @DictFormat(SysDictTypeConstants.SMS_RECEIVE_STATUS) 85 + @DictFormat(DictTypeConstants.SMS_RECEIVE_STATUS)
86 private Integer receiveStatus; 86 private Integer receiveStatus;
87 87
88 @ExcelProperty("接收时间") 88 @ExcelProperty("接收时间")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/vo/template/SmsTemplateExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms.vo.template; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms.vo.template;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -20,11 +20,11 @@ public class SmsTemplateExcelVO { @@ -20,11 +20,11 @@ public class SmsTemplateExcelVO {
20 private Long id; 20 private Long id;
21 21
22 @ExcelProperty(value = "短信签名", converter = DictConvert.class) 22 @ExcelProperty(value = "短信签名", converter = DictConvert.class)
23 - @DictFormat(SysDictTypeConstants.SMS_TEMPLATE_TYPE) 23 + @DictFormat(DictTypeConstants.SMS_TEMPLATE_TYPE)
24 private Integer type; 24 private Integer type;
25 25
26 @ExcelProperty(value = "开启状态", converter = DictConvert.class) 26 @ExcelProperty(value = "开启状态", converter = DictConvert.class)
27 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 27 + @DictFormat(DictTypeConstants.COMMON_STATUS)
28 private Integer status; 28 private Integer status;
29 29
30 @ExcelProperty("模板编码") 30 @ExcelProperty("模板编码")
@@ -46,7 +46,7 @@ public class SmsTemplateExcelVO { @@ -46,7 +46,7 @@ public class SmsTemplateExcelVO {
46 private Long channelId; 46 private Long channelId;
47 47
48 @ExcelProperty(value = "短信渠道编码", converter = DictConvert.class) 48 @ExcelProperty(value = "短信渠道编码", converter = DictConvert.class)
49 - @DictFormat(SysDictTypeConstants.SMS_CHANNEL_CODE) 49 + @DictFormat(DictTypeConstants.SMS_CHANNEL_CODE)
50 private String channelCode; 50 private String channelCode;
51 51
52 @ExcelProperty("创建时间") 52 @ExcelProperty("创建时间")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/TenantController.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.tenant; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.controller.admin.tenant;
3 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.*; 3 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.*;
4 import cn.iocoder.yudao.module.system.convert.tenant.TenantConvert; 4 import cn.iocoder.yudao.module.system.convert.tenant.TenantConvert;
5 import cn.iocoder.yudao.module.system.service.tenant.TenantService; 5 import cn.iocoder.yudao.module.system.service.tenant.TenantService;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
7 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 7 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 9 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java
@@ -3,12 +3,11 @@ package cn.iocoder.yudao.module.system.controller.admin.user; @@ -3,12 +3,11 @@ package cn.iocoder.yudao.module.system.controller.admin.user;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
5 import cn.iocoder.yudao.module.system.convert.user.UserConvert; 5 import cn.iocoder.yudao.module.system.convert.user.UserConvert;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 import cn.iocoder.yudao.module.system.service.user.UserService; 7 import cn.iocoder.yudao.module.system.service.user.UserService;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;  
10 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  9 +import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
  10 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 11 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
13 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 12 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
14 import cn.iocoder.yudao.framework.common.pojo.PageResult; 13 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -19,6 +18,7 @@ import io.swagger.annotations.Api; @@ -19,6 +18,7 @@ import io.swagger.annotations.Api;
19 import io.swagger.annotations.ApiImplicitParam; 18 import io.swagger.annotations.ApiImplicitParam;
20 import io.swagger.annotations.ApiImplicitParams; 19 import io.swagger.annotations.ApiImplicitParams;
21 import io.swagger.annotations.ApiOperation; 20 import io.swagger.annotations.ApiOperation;
  21 +import org.springframework.beans.factory.annotation.Autowired;
22 import org.springframework.security.access.prepost.PreAuthorize; 22 import org.springframework.security.access.prepost.PreAuthorize;
23 import org.springframework.validation.annotation.Validated; 23 import org.springframework.validation.annotation.Validated;
24 import org.springframework.web.bind.annotation.*; 24 import org.springframework.web.bind.annotation.*;
@@ -41,11 +41,10 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E @@ -41,11 +41,10 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E
41 @Validated 41 @Validated
42 public class UserController { 42 public class UserController {
43 43
44 - @Resource 44 + @Autowired
  45 + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
45 private UserService userService; 46 private UserService userService;
46 @Resource 47 @Resource
47 - private SysUserCoreService userCoreService;  
48 - @Resource  
49 private SysDeptCoreService deptCoreService; 48 private SysDeptCoreService deptCoreService;
50 49
51 @PostMapping("/create") 50 @PostMapping("/create")
@@ -94,13 +93,13 @@ public class UserController { @@ -94,13 +93,13 @@ public class UserController {
94 @PreAuthorize("@ss.hasPermission('system:user:list')") 93 @PreAuthorize("@ss.hasPermission('system:user:list')")
95 public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) { 94 public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) {
96 // 获得用户分页列表 95 // 获得用户分页列表
97 - PageResult<SysUserDO> pageResult = userService.getUserPage(reqVO); 96 + PageResult<UserDO> pageResult = userService.getUserPage(reqVO);
98 if (CollUtil.isEmpty(pageResult.getList())) { 97 if (CollUtil.isEmpty(pageResult.getList())) {
99 return success(new PageResult<>(pageResult.getTotal())); // 返回空 98 return success(new PageResult<>(pageResult.getTotal())); // 返回空
100 } 99 }
101 100
102 // 获得拼接需要的数据 101 // 获得拼接需要的数据
103 - Collection<Long> deptIds = convertList(pageResult.getList(), SysUserDO::getDeptId); 102 + Collection<Long> deptIds = convertList(pageResult.getList(), UserDO::getDeptId);
104 Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds); 103 Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds);
105 // 拼接结果返回 104 // 拼接结果返回
106 List<UserPageItemRespVO> userList = new ArrayList<>(pageResult.getList().size()); 105 List<UserPageItemRespVO> userList = new ArrayList<>(pageResult.getList().size());
@@ -116,7 +115,7 @@ public class UserController { @@ -116,7 +115,7 @@ public class UserController {
116 @ApiOperation(value = "获取用户精简信息列表", notes = "只包含被开启的用户,主要用于前端的下拉选项") 115 @ApiOperation(value = "获取用户精简信息列表", notes = "只包含被开启的用户,主要用于前端的下拉选项")
117 public CommonResult<List<UserSimpleRespVO>> getSimpleUsers() { 116 public CommonResult<List<UserSimpleRespVO>> getSimpleUsers() {
118 // 获用户门列表,只要开启状态的 117 // 获用户门列表,只要开启状态的
119 - List<SysUserDO> list = userService.getUsersByStatus(CommonStatusEnum.ENABLE.getStatus()); 118 + List<UserDO> list = userService.getUsersByStatus(CommonStatusEnum.ENABLE.getStatus());
120 // 排序后,返回给前端 119 // 排序后,返回给前端
121 return success(UserConvert.INSTANCE.convertList04(list)); 120 return success(UserConvert.INSTANCE.convertList04(list));
122 } 121 }
@@ -126,7 +125,7 @@ public class UserController { @@ -126,7 +125,7 @@ public class UserController {
126 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) 125 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
127 @PreAuthorize("@ss.hasPermission('system:user:query')") 126 @PreAuthorize("@ss.hasPermission('system:user:query')")
128 public CommonResult<UserRespVO> getInfo(@RequestParam("id") Long id) { 127 public CommonResult<UserRespVO> getInfo(@RequestParam("id") Long id) {
129 - return success(UserConvert.INSTANCE.convert(userCoreService.getUser(id))); 128 + return success(UserConvert.INSTANCE.convert(userService.getUser(id)));
130 } 129 }
131 130
132 @GetMapping("/export") 131 @GetMapping("/export")
@@ -136,12 +135,13 @@ public class UserController { @@ -136,12 +135,13 @@ public class UserController {
136 public void exportUsers(@Validated UserExportReqVO reqVO, 135 public void exportUsers(@Validated UserExportReqVO reqVO,
137 HttpServletResponse response) throws IOException { 136 HttpServletResponse response) throws IOException {
138 // 获得用户列表 137 // 获得用户列表
139 - List<SysUserDO> users = userService.getUsers(reqVO); 138 + List<UserDO> users = userService.getUsers(reqVO);
140 139
141 // 获得拼接需要的数据 140 // 获得拼接需要的数据
142 - Collection<Long> deptIds = convertList(users, SysUserDO::getDeptId); 141 + Collection<Long> deptIds = convertList(users, UserDO::getDeptId);
143 Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds); 142 Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds);
144 - Map<Long, SysUserDO> deptLeaderUserMap = userCoreService.getUserMap(convertSet(deptMap.values(), SysDeptDO::getLeaderUserId)); 143 + Map<Long, UserDO> deptLeaderUserMap = userService.getUserMap(
  144 + convertSet(deptMap.values(), SysDeptDO::getLeaderUserId));
145 // 拼接数据 145 // 拼接数据
146 List<UserExcelVO> excelUsers = new ArrayList<>(users.size()); 146 List<UserExcelVO> excelUsers = new ArrayList<>(users.size());
147 users.forEach(user -> { 147 users.forEach(user -> {
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java
@@ -9,20 +9,20 @@ import cn.iocoder.yudao.module.system.service.dept.PostService; @@ -9,20 +9,20 @@ import cn.iocoder.yudao.module.system.service.dept.PostService;
9 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 9 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
10 import cn.iocoder.yudao.module.system.service.permission.RoleService; 10 import cn.iocoder.yudao.module.system.service.permission.RoleService;
11 import cn.iocoder.yudao.module.system.service.user.UserService; 11 import cn.iocoder.yudao.module.system.service.user.UserService;
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
13 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;  
14 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;  
15 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;  
16 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
17 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
18 -import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;  
19 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 12 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  13 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
  14 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
  15 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
  16 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  17 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
  18 +import cn.iocoder.yudao.module.system.service.social.SocialUserService;
20 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 19 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
21 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 20 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
22 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 21 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
23 import io.swagger.annotations.Api; 22 import io.swagger.annotations.Api;
24 import io.swagger.annotations.ApiOperation; 23 import io.swagger.annotations.ApiOperation;
25 import lombok.extern.slf4j.Slf4j; 24 import lombok.extern.slf4j.Slf4j;
  25 +import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.validation.annotation.Validated; 26 import org.springframework.validation.annotation.Validated;
27 import org.springframework.web.bind.annotation.*; 27 import org.springframework.web.bind.annotation.*;
28 import org.springframework.web.multipart.MultipartFile; 28 import org.springframework.web.multipart.MultipartFile;
@@ -43,11 +43,10 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @@ -43,11 +43,10 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
43 @Slf4j 43 @Slf4j
44 public class UserProfileController { 44 public class UserProfileController {
45 45
46 - @Resource 46 + @Autowired
  47 + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
47 private UserService userService; 48 private UserService userService;
48 @Resource 49 @Resource
49 - private SysUserCoreService userCoreService;  
50 - @Resource  
51 private SysDeptCoreService deptCoreService; 50 private SysDeptCoreService deptCoreService;
52 51
53 @Resource 52 @Resource
@@ -57,13 +56,13 @@ public class UserProfileController { @@ -57,13 +56,13 @@ public class UserProfileController {
57 @Resource 56 @Resource
58 private RoleService roleService; 57 private RoleService roleService;
59 @Resource 58 @Resource
60 - private SysSocialCoreService socialService; 59 + private SocialUserService socialService;
61 60
62 @GetMapping("/get") 61 @GetMapping("/get")
63 @ApiOperation("获得登录用户信息") 62 @ApiOperation("获得登录用户信息")
64 public CommonResult<UserProfileRespVO> profile() { 63 public CommonResult<UserProfileRespVO> profile() {
65 // 获得用户基本信息 64 // 获得用户基本信息
66 - SysUserDO user = userCoreService.getUser(getLoginUserId()); 65 + UserDO user = userService.getUser(getLoginUserId());
67 UserProfileRespVO resp = UserConvert.INSTANCE.convert03(user); 66 UserProfileRespVO resp = UserConvert.INSTANCE.convert03(user);
68 // 获得用户角色 67 // 获得用户角色
69 List<SysRoleDO> userRoles = roleService.getRolesFromCache(permissionService.getUserRoleIdListByUserId(user.getId())); 68 List<SysRoleDO> userRoles = roleService.getRolesFromCache(permissionService.getUserRoleIdListByUserId(user.getId()));
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.user.vo.user;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.Data; 7 import lombok.Data;
8 8
@@ -30,11 +30,11 @@ public class UserExcelVO { @@ -30,11 +30,11 @@ public class UserExcelVO {
30 private String mobile; 30 private String mobile;
31 31
32 @ExcelProperty(value = "用户性别", converter = DictConvert.class) 32 @ExcelProperty(value = "用户性别", converter = DictConvert.class)
33 - @DictFormat(SysDictTypeConstants.USER_SEX) 33 + @DictFormat(DictTypeConstants.USER_SEX)
34 private Integer sex; 34 private Integer sex;
35 35
36 @ExcelProperty(value = "帐号状态", converter = DictConvert.class) 36 @ExcelProperty(value = "帐号状态", converter = DictConvert.class)
37 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 37 + @DictFormat(DictTypeConstants.COMMON_STATUS)
38 private Integer status; 38 private Integer status;
39 39
40 @ExcelProperty("最后登录IP") 40 @ExcelProperty("最后登录IP")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserImportExcelVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.user.vo.user; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.user.vo.user;
2 2
3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; 3 import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; 4 import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.SysDictTypeConstants; 5 +import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
6 import com.alibaba.excel.annotation.ExcelProperty; 6 import com.alibaba.excel.annotation.ExcelProperty;
7 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
8 import lombok.Builder; 8 import lombok.Builder;
@@ -36,11 +36,11 @@ public class UserImportExcelVO { @@ -36,11 +36,11 @@ public class UserImportExcelVO {
36 private String mobile; 36 private String mobile;
37 37
38 @ExcelProperty(value = "用户性别", converter = DictConvert.class) 38 @ExcelProperty(value = "用户性别", converter = DictConvert.class)
39 - @DictFormat(SysDictTypeConstants.USER_SEX) 39 + @DictFormat(DictTypeConstants.USER_SEX)
40 private Integer sex; 40 private Integer sex;
41 41
42 @ExcelProperty(value = "账号状态", converter = DictConvert.class) 42 @ExcelProperty(value = "账号状态", converter = DictConvert.class)
43 - @DictFormat(SysDictTypeConstants.COMMON_STATUS) 43 + @DictFormat(DictTypeConstants.COMMON_STATUS)
44 private Integer status; 44 private Integer status;
45 45
46 } 46 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.java
@@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.system.convert.auth; @@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.system.convert.auth;
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthMenuRespVO; 3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthMenuRespVO;
4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthPermissionInfoRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthPermissionInfoRespVO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
7 import cn.iocoder.yudao.module.system.enums.permission.MenuIdEnum; 7 import cn.iocoder.yudao.module.system.enums.permission.MenuIdEnum;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
11 import cn.iocoder.yudao.framework.security.core.LoginUser; 11 import cn.iocoder.yudao.framework.security.core.LoginUser;
@@ -22,14 +22,14 @@ public interface AuthConvert { @@ -22,14 +22,14 @@ public interface AuthConvert {
22 AuthConvert INSTANCE = Mappers.getMapper(AuthConvert.class); 22 AuthConvert INSTANCE = Mappers.getMapper(AuthConvert.class);
23 23
24 @Mapping(source = "updateTime", target = "updateTime", ignore = true) // 字段相同,但是含义不同,忽略 24 @Mapping(source = "updateTime", target = "updateTime", ignore = true) // 字段相同,但是含义不同,忽略
25 - LoginUser convert0(SysUserDO bean); 25 + LoginUser convert0(UserDO bean);
26 26
27 - default LoginUser convert(SysUserDO bean) { 27 + default LoginUser convert(UserDO bean) {
28 // 目的,为了设置 UserTypeEnum.ADMIN.getValue() 28 // 目的,为了设置 UserTypeEnum.ADMIN.getValue()
29 return convert0(bean).setUserType(UserTypeEnum.ADMIN.getValue()); 29 return convert0(bean).setUserType(UserTypeEnum.ADMIN.getValue());
30 } 30 }
31 31
32 - default AuthPermissionInfoRespVO convert(SysUserDO user, List<SysRoleDO> roleList, List<MenuDO> menuList) { 32 + default AuthPermissionInfoRespVO convert(UserDO user, List<SysRoleDO> roleList, List<MenuDO> menuList) {
33 return AuthPermissionInfoRespVO.builder() 33 return AuthPermissionInfoRespVO.builder()
34 .user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).build()) 34 .user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).build())
35 .roles(CollectionUtils.convertSet(roleList, SysRoleDO::getCode)) 35 .roles(CollectionUtils.convertSet(roleList, SysRoleDO::getCode))
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/auth/UserSessionConvert.java
1 package cn.iocoder.yudao.module.system.convert.auth; 1 package cn.iocoder.yudao.module.system.convert.auth;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageItemRespVO; 3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageItemRespVO;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO; 4 +import cn.iocoder.yudao.module.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-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/dept/DeptConvert.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateRe @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateRe
4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptRespVO;
5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO; 5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptSimpleRespVO;
6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
8 import org.mapstruct.Mapper; 8 import org.mapstruct.Mapper;
9 import org.mapstruct.factory.Mappers; 9 import org.mapstruct.factory.Mappers;
10 10
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/dept/PostConvert.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.convert.dept; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.convert.dept;
2 2
3 import cn.iocoder.yudao.framework.common.pojo.PageResult; 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.*; 4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.*;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
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-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/dict/DictDataConvert.java
1 package cn.iocoder.yudao.module.system.convert.dict; 1 package cn.iocoder.yudao.module.system.convert.dict;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.*; 3 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.*;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO; 6 import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;
7 import org.mapstruct.Mapper; 7 import org.mapstruct.Mapper;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/convert/dict/SysDictDataCoreConvert.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/dict/SysDictDataCoreConvert.java
1 -package cn.iocoder.yudao.coreservice.modules.system.convert.dict; 1 +package cn.iocoder.yudao.module.system.convert.dict;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO;
4 import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO; 4 import cn.iocoder.yudao.framework.dict.core.dto.DictDataRespDTO;
5 import org.mapstruct.Mapper; 5 import org.mapstruct.Mapper;
6 import org.mapstruct.factory.Mappers; 6 import org.mapstruct.factory.Mappers;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/LoginLogConvert.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.convert.logger; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.convert.logger;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExcelVO; 3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExcelVO;
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogRespVO;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 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;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.convert.logger; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.convert.logger;
3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExcelVO; 3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExcelVO;
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 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; 9 import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
@@ -27,7 +27,7 @@ public interface OperateLogConvert { @@ -27,7 +27,7 @@ public interface OperateLogConvert {
27 27
28 OperateLogRespVO convert(OperateLogDO bean); 28 OperateLogRespVO convert(OperateLogDO bean);
29 29
30 - default List<OperateLogExcelVO> convertList(List<OperateLogDO> list, Map<Long, SysUserDO> userMap) { 30 + default List<OperateLogExcelVO> convertList(List<OperateLogDO> list, Map<Long, UserDO> userMap) {
31 return list.stream().map(operateLog -> { 31 return list.stream().map(operateLog -> {
32 OperateLogExcelVO excelVO = convert02(operateLog); 32 OperateLogExcelVO excelVO = convert02(operateLog);
33 MapUtils.findAndThen(userMap, operateLog.getId(), user -> excelVO.setUserNickname(user.getNickname())); 33 MapUtils.findAndThen(userMap, operateLog.getId(), user -> excelVO.setUserNickname(user.getNickname()));
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/convert/logger/SysLoginLogCoreConvert.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/SysLoginLogCoreConvert.java
1 -package cn.iocoder.yudao.coreservice.modules.system.convert.logger; 1 +package cn.iocoder.yudao.module.system.convert.logger;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
  4 +import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO;
5 import org.mapstruct.Mapper; 5 import org.mapstruct.Mapper;
6 import org.mapstruct.factory.Mappers; 6 import org.mapstruct.factory.Mappers;
7 7
@@ -10,6 +10,6 @@ public interface SysLoginLogCoreConvert { @@ -10,6 +10,6 @@ public interface SysLoginLogCoreConvert {
10 10
11 SysLoginLogCoreConvert INSTANCE = Mappers.getMapper(SysLoginLogCoreConvert.class); 11 SysLoginLogCoreConvert INSTANCE = Mappers.getMapper(SysLoginLogCoreConvert.class);
12 12
13 - SysLoginLogDO convert(SysLoginLogCreateReqDTO bean); 13 + SysLoginLogDO convert(LoginLogCreateReqDTO bean);
14 14
15 } 15 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/permission/RoleConvert.java
1 package cn.iocoder.yudao.module.system.convert.permission; 1 package cn.iocoder.yudao.module.system.convert.permission;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*; 3 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
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-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/sms/SmsChannelConvert.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelRespVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelSimpleRespVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelSimpleRespVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties; 9 import cn.iocoder.yudao.framework.sms.core.property.SmsChannelProperties;
10 import org.mapstruct.Mapper; 10 import org.mapstruct.Mapper;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/sms/SmsLogConvert.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.convert.sms; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.convert.sms;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExcelVO; 3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExcelVO;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SysSmsLogRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SysSmsLogRespVO;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 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;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/sms/SmsTemplateConvert.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExcelVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExcelVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateRespVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateRespVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 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;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/tenant/TenantConvert.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantCreateReq @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantCreateReq
4 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExcelVO; 4 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExcelVO;
5 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantRespVO; 5 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantRespVO;
6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 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;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.java
@@ -4,11 +4,11 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi @@ -4,11 +4,11 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi
4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;  
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;  
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  8 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
  10 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
  11 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
12 import org.mapstruct.Mapper; 12 import org.mapstruct.Mapper;
13 import org.mapstruct.factory.Mappers; 13 import org.mapstruct.factory.Mappers;
14 14
@@ -19,31 +19,31 @@ public interface UserConvert { @@ -19,31 +19,31 @@ public interface UserConvert {
19 19
20 UserConvert INSTANCE = Mappers.getMapper(UserConvert.class); 20 UserConvert INSTANCE = Mappers.getMapper(UserConvert.class);
21 21
22 - UserPageItemRespVO convert(SysUserDO bean); 22 + UserPageItemRespVO convert(UserDO bean);
23 23
24 UserPageItemRespVO.Dept convert(SysDeptDO bean); 24 UserPageItemRespVO.Dept convert(SysDeptDO bean);
25 25
26 - SysUserDO convert(UserCreateReqVO bean); 26 + UserDO convert(UserCreateReqVO bean);
27 27
28 - SysUserDO convert(UserUpdateReqVO bean); 28 + UserDO convert(UserUpdateReqVO bean);
29 29
30 - UserExcelVO convert02(SysUserDO bean); 30 + UserExcelVO convert02(UserDO bean);
31 31
32 - SysUserDO convert(UserImportExcelVO bean); 32 + UserDO convert(UserImportExcelVO bean);
33 33
34 - UserProfileRespVO convert03(SysUserDO bean); 34 + UserProfileRespVO convert03(UserDO bean);
35 35
36 List<UserProfileRespVO.Role> convertList(List<SysRoleDO> list); 36 List<UserProfileRespVO.Role> convertList(List<SysRoleDO> list);
37 37
38 UserProfileRespVO.Dept convert02(SysDeptDO bean); 38 UserProfileRespVO.Dept convert02(SysDeptDO bean);
39 39
40 - SysUserDO convert(UserProfileUpdateReqVO bean); 40 + UserDO convert(UserProfileUpdateReqVO bean);
41 41
42 - SysUserDO convert(UserProfileUpdatePasswordReqVO bean); 42 + UserDO convert(UserProfileUpdatePasswordReqVO bean);
43 43
44 List<UserProfileRespVO.Post> convertList02(List<SysPostDO> list); 44 List<UserProfileRespVO.Post> convertList02(List<SysPostDO> list);
45 45
46 List<UserProfileRespVO.SocialUser> convertList03(List<SysSocialUserDO> list); 46 List<UserProfileRespVO.SocialUser> convertList03(List<SysSocialUserDO> list);
47 47
48 - List<UserSimpleRespVO> convertList04(List<SysUserDO> list); 48 + List<UserSimpleRespVO> convertList04(List<UserDO> list);
49 } 49 }
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/auth/SysUserSessionDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/auth/SysUserSessionDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.auth;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.security.core.LoginUser; 4 import cn.iocoder.yudao.framework.security.core.LoginUser;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/dept/SysDeptDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/SysDeptDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.dept;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; 5 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
6 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
@@ -41,7 +41,7 @@ public class SysDeptDO extends TenantBaseDO { @@ -41,7 +41,7 @@ public class SysDeptDO extends TenantBaseDO {
41 /** 41 /**
42 * 负责人 42 * 负责人
43 * 43 *
44 - * 关联 {@link SysUserDO#getId()} 44 + * 关联 {@link UserDO#getId()}
45 */ 45 */
46 private Long leaderUserId; 46 private Long leaderUserId;
47 /** 47 /**
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/dept/SysPostDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/SysPostDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.dept;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; 4 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/dict/SysDictDataDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/SysDictDataDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.dict;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
1 package cn.iocoder.yudao.module.system.dal.dataobject.logger; 1 package cn.iocoder.yudao.module.system.dal.dataobject.logger;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; 5 import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
6 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; 6 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
@@ -48,7 +48,7 @@ public class OperateLogDO extends TenantBaseDO { @@ -48,7 +48,7 @@ public class OperateLogDO extends TenantBaseDO {
48 /** 48 /**
49 * 用户编号 49 * 用户编号
50 * 50 *
51 - * {@link SysUserDO#getId()} 51 + * {@link UserDO#getId()}
52 */ 52 */
53 private Long userId; 53 private Long userId;
54 /** 54 /**
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/logger/SysLoginLogDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/SysLoginLogDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.logger;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginLogTypeEnum;  
6 -import cn.iocoder.yudao.coreservice.modules.system.enums.logger.SysLoginResultEnum; 5 +import cn.iocoder.yudao.module.system.enums.logger.SysLoginLogTypeEnum;
  6 +import cn.iocoder.yudao.module.system.enums.logger.SysLoginResultEnum;
7 import com.baomidou.mybatisplus.annotation.TableName; 7 import com.baomidou.mybatisplus.annotation.TableName;
8 import lombok.Data; 8 import lombok.Data;
9 import lombok.EqualsAndHashCode; 9 import lombok.EqualsAndHashCode;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.dataobject;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/permission/SysRoleDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/SysRoleDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.permission;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/permission/SysUserRoleDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/SysUserRoleDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.permission;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import com.baomidou.mybatisplus.annotation.TableId; 4 import com.baomidou.mybatisplus.annotation.TableId;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/sms/SysSmsChannelDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SysSmsChannelDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/sms/SysSmsLogDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SysSmsLogDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsReceiveStatusEnum;  
4 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsSendStatusEnum; 3 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum;
  4 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsSendStatusEnum;
5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7 import cn.iocoder.yudao.framework.sms.core.enums.SmsFrameworkErrorCodeConstants; 7 import cn.iocoder.yudao.framework.sms.core.enums.SmsFrameworkErrorCodeConstants;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/sms/SysSmsTemplateDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SysSmsTemplateDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsTemplateTypeEnum; 3 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsTemplateTypeEnum;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
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.TableField; 6 import com.baomidou.mybatisplus.annotation.TableField;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/social/SysSocialUserDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SysSocialUserDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.social;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
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;
@@ -9,7 +9,7 @@ import lombok.*; @@ -9,7 +9,7 @@ import lombok.*;
9 9
10 /** 10 /**
11 * 社交用户 11 * 社交用户
12 - * 通过 {@link SysSocialUserDO#getUserId()} 关联到对应的 {@link SysUserDO} 12 + * 通过 {@link SysSocialUserDO#getUserId()} 关联到对应的 {@link UserDO}
13 * 13 *
14 * @author weir 14 * @author weir
15 */ 15 */
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/tenant/SysTenantDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/SysTenantDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.tenant;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/dataobject/user/SysUserDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/UserDO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.user;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum; 3 +import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; 5 import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler;
6 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; 6 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
@@ -24,7 +24,7 @@ import java.util.Set; @@ -24,7 +24,7 @@ import java.util.Set;
24 @Builder 24 @Builder
25 @NoArgsConstructor 25 @NoArgsConstructor
26 @AllArgsConstructor 26 @AllArgsConstructor
27 -public class SysUserDO extends TenantBaseDO { 27 +public class UserDO extends TenantBaseDO {
28 28
29 /** 29 /**
30 * 用户ID 30 * 用户ID
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/auth/SysUserSessionCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/auth/SysUserSessionCoreMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.auth; 1 +package cn.iocoder.yudao.module.system.dal.mysql.auth;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/auth/SysUserSessionMapper.java
1 package cn.iocoder.yudao.module.system.dal.mysql.auth; 1 package cn.iocoder.yudao.module.system.dal.mysql.auth;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
7 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/dept/SysDeptCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/SysDeptCoreMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept; 1 +package cn.iocoder.yudao.module.system.dal.mysql.dept;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/SysDeptMapper.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants; @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
8 import com.baomidou.mybatisplus.annotation.InterceptorIgnore; 8 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
9 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 9 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
10 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/dept/SysPostCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/SysPostCoreMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept; 1 +package cn.iocoder.yudao.module.system.dal.mysql.dept;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dept/SysPostMapper.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
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-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/dict/SysDictDataMapper.java
@@ -3,11 +3,12 @@ package cn.iocoder.yudao.module.system.dal.mysql.dict; @@ -3,11 +3,12 @@ package cn.iocoder.yudao.module.system.dal.mysql.dict;
3 import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants; 3 import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants;
4 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
9 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 9 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
10 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 10 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  11 +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
11 import org.apache.ibatis.annotations.Mapper; 12 import org.apache.ibatis.annotations.Mapper;
12 13
13 import java.util.Arrays; 14 import java.util.Arrays;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/LoginLogMapper.java
1 package cn.iocoder.yudao.module.system.dal.mysql.logger; 1 package cn.iocoder.yudao.module.system.dal.mysql.logger;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/logger/SysLoginLogCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/SysLoginLogCoreMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.logger; 1 +package cn.iocoder.yudao.module.system.dal.mysql.logger;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.mysql;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/permission/SysRoleCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysRoleCoreMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission; 1 +package cn.iocoder.yudao.module.system.dal.mysql.permission;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysRoleMapper.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
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 import org.springframework.lang.Nullable; 11 import org.springframework.lang.Nullable;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/permission/SysUserRoleCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysUserRoleCoreMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission; 1 +package cn.iocoder.yudao.module.system.dal.mysql.permission;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysUserRoleMapper.java
1 package cn.iocoder.yudao.module.system.dal.mysql.permission; 1 package cn.iocoder.yudao.module.system.dal.mysql.permission;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;
5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Mapper;
7 7
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SysSmsChannelMapper.java
1 package cn.iocoder.yudao.module.system.dal.mysql.sms; 1 package cn.iocoder.yudao.module.system.dal.mysql.sms;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 6 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
7 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SysSmsLogMapper.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.sms; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.sms;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SysSmsTemplateMapper.java
1 package cn.iocoder.yudao.module.system.dal.mysql.sms; 1 package cn.iocoder.yudao.module.system.dal.mysql.sms;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  4 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
6 -import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
9 import org.apache.ibatis.annotations.Mapper; 9 import org.apache.ibatis.annotations.Mapper;
  10 +import org.apache.ibatis.annotations.Select;
10 11
  12 +import java.util.Date;
11 import java.util.List; 13 import java.util.List;
12 14
13 @Mapper 15 @Mapper
14 public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> { 16 public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> {
15 17
  18 + @Select("SELECT id FROM sys_sms_template WHERE update_time > #{maxUpdateTime} LIMIT 1")
  19 + Long selectExistsByUpdateTimeAfter(Date maxUpdateTime);
  20 +
16 default SysSmsTemplateDO selectByCode(String code) { 21 default SysSmsTemplateDO selectByCode(String code) {
17 return selectOne(SysSmsTemplateDO::getCode, code); 22 return selectOne(SysSmsTemplateDO::getCode, code);
18 } 23 }
19 24
20 - // TODO 这种参数都一样的得想办法封装一下  
21 default PageResult<SysSmsTemplateDO> selectPage(SmsTemplatePageReqVO reqVO) { 25 default PageResult<SysSmsTemplateDO> selectPage(SmsTemplatePageReqVO reqVO) {
22 return selectPage(reqVO, new LambdaQueryWrapperX<SysSmsTemplateDO>() 26 return selectPage(reqVO, new LambdaQueryWrapperX<SysSmsTemplateDO>()
23 .eqIfPresent(SysSmsTemplateDO::getType, reqVO.getType()) 27 .eqIfPresent(SysSmsTemplateDO::getType, reqVO.getType())
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/social/SysSocialUserCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/social/SysSocialUserMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.social; 1 +package cn.iocoder.yudao.module.system.dal.mysql.social;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Mapper;
@@ -9,7 +9,7 @@ import java.util.Collection; @@ -9,7 +9,7 @@ import java.util.Collection;
9 import java.util.List; 9 import java.util.List;
10 10
11 @Mapper 11 @Mapper
12 -public interface SysSocialUserCoreMapper extends BaseMapperX<SysSocialUserDO> { 12 +public interface SysSocialUserMapper extends BaseMapperX<SysSocialUserDO> {
13 13
14 default List<SysSocialUserDO> selectListByTypeAndUnionId(Integer userType, Collection<Integer> types, String unionId) { 14 default List<SysSocialUserDO> selectListByTypeAndUnionId(Integer userType, Collection<Integer> types, String unionId) {
15 return selectList(new QueryWrapper<SysSocialUserDO>().eq("user_type", userType) 15 return selectList(new QueryWrapper<SysSocialUserDO>().eq("user_type", userType)
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/mysql/tenant/SysTenantCoreMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/SysTenantCoreMapper.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.mysql.tenant; 1 +package cn.iocoder.yudao.module.system.dal.mysql.tenant;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/tenant/SysTenantMapper.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.tenant; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.dal.mysql.tenant;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExportReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; 8 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/SysUserMapper.java deleted
1 -package cn.iocoder.yudao.module.system.dal.mysql.user;  
2 -  
3 -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserExportReqVO;  
4 -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
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.mapper.BaseMapperX;  
9 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
10 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
11 -import jodd.util.StringPool;  
12 -import org.apache.ibatis.annotations.Mapper;  
13 -  
14 -import java.util.Collection;  
15 -import java.util.List;  
16 -import java.util.Optional;  
17 -  
18 -@Mapper  
19 -public interface SysUserMapper extends BaseMapperX<SysUserDO> {  
20 -  
21 - default SysUserDO selectByUsername(String username) {  
22 - return selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getUsername, username));  
23 - }  
24 -  
25 - default SysUserDO selectByEmail(String email) {  
26 - return selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getEmail, email));  
27 - }  
28 -  
29 - default SysUserDO selectByMobile(String mobile) {  
30 - return selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getMobile, mobile));  
31 - }  
32 -  
33 - default PageResult<SysUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) {  
34 - return selectPage(reqVO, new LambdaQueryWrapperX<SysUserDO>()  
35 - .likeIfPresent(SysUserDO::getUsername, reqVO.getUsername())  
36 - .likeIfPresent(SysUserDO::getMobile, reqVO.getMobile())  
37 - .eqIfPresent(SysUserDO::getStatus, reqVO.getStatus())  
38 - .betweenIfPresent(SysUserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())  
39 - .inIfPresent(SysUserDO::getDeptId, deptIds));  
40 - }  
41 -  
42 - default List<SysUserDO> selectList(UserExportReqVO reqVO, Collection<Long> deptIds) {  
43 - return selectList(new LambdaQueryWrapperX<SysUserDO>()  
44 - .likeIfPresent(SysUserDO::getUsername, reqVO.getUsername())  
45 - .likeIfPresent(SysUserDO::getMobile, reqVO.getMobile())  
46 - .eqIfPresent(SysUserDO::getStatus, reqVO.getStatus())  
47 - .betweenIfPresent(SysUserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())  
48 - .inIfPresent(SysUserDO::getDeptId, deptIds));  
49 - }  
50 -  
51 - default List<SysUserDO> selectListByNickname(String nickname) {  
52 - return selectList(new LambdaQueryWrapperX<SysUserDO>().like(SysUserDO::getNickname, nickname));  
53 - }  
54 -  
55 - default List<SysUserDO> selectListByUsername(String username) {  
56 - return selectList(new LambdaQueryWrapperX<SysUserDO>().like(SysUserDO::getUsername, username));  
57 - }  
58 -  
59 - // TODO 芋艿:可废弃该方法  
60 - default List<SysUserDO> selectListByDepartIdAndPostId(Long departId, Long postId) {  
61 - return selectList(new LambdaQueryWrapperX<SysUserDO>()  
62 - .eq(SysUserDO::getStatus, CommonStatusEnum.ENABLE.getStatus())  
63 - .eq(SysUserDO::getDeptId, departId)  
64 - // TODO @jason: 封装一个 StringUtils .toString 。如果空的时候,设置为 null。会更简洁  
65 - .likeIfPresent(SysUserDO::getPostIds, Optional.ofNullable(postId).map(t -> String.valueOf(postId)).orElse(StringPool.EMPTY)));  
66 - }  
67 -  
68 - default List<SysUserDO> selectListByStatus(Integer status) {  
69 - return selectList(SysUserDO::getStatus, status);  
70 - }  
71 -  
72 - default List<SysUserDO> selectListByDeptIds(Collection<Long> deptIds) {  
73 - return selectList(SysUserDO::getDeptId, deptIds);  
74 - }  
75 -  
76 -}  
77 -  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/UserMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.mysql.user;
  2 +
  3 +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserExportReqVO;
  4 +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
  5 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  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.mapper.BaseMapperX;
  9 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  10 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  11 +import jodd.util.StringPool;
  12 +import org.apache.ibatis.annotations.Mapper;
  13 +
  14 +import java.util.Collection;
  15 +import java.util.List;
  16 +import java.util.Optional;
  17 +
  18 +@Mapper
  19 +public interface UserMapper extends BaseMapperX<UserDO> {
  20 +
  21 + default UserDO selectByUsername(String username) {
  22 + return selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getUsername, username));
  23 + }
  24 +
  25 + default UserDO selectByEmail(String email) {
  26 + return selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getEmail, email));
  27 + }
  28 +
  29 + default UserDO selectByMobile(String mobile) {
  30 + return selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getMobile, mobile));
  31 + }
  32 +
  33 + default PageResult<UserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) {
  34 + return selectPage(reqVO, new LambdaQueryWrapperX<UserDO>()
  35 + .likeIfPresent(UserDO::getUsername, reqVO.getUsername())
  36 + .likeIfPresent(UserDO::getMobile, reqVO.getMobile())
  37 + .eqIfPresent(UserDO::getStatus, reqVO.getStatus())
  38 + .betweenIfPresent(UserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())
  39 + .inIfPresent(UserDO::getDeptId, deptIds));
  40 + }
  41 +
  42 + default List<UserDO> selectList(UserExportReqVO reqVO, Collection<Long> deptIds) {
  43 + return selectList(new LambdaQueryWrapperX<UserDO>()
  44 + .likeIfPresent(UserDO::getUsername, reqVO.getUsername())
  45 + .likeIfPresent(UserDO::getMobile, reqVO.getMobile())
  46 + .eqIfPresent(UserDO::getStatus, reqVO.getStatus())
  47 + .betweenIfPresent(UserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())
  48 + .inIfPresent(UserDO::getDeptId, deptIds));
  49 + }
  50 +
  51 + default List<UserDO> selectListByNickname(String nickname) {
  52 + return selectList(new LambdaQueryWrapperX<UserDO>().like(UserDO::getNickname, nickname));
  53 + }
  54 +
  55 + default List<UserDO> selectListByUsername(String username) {
  56 + return selectList(new LambdaQueryWrapperX<UserDO>().like(UserDO::getUsername, username));
  57 + }
  58 +
  59 + default List<UserDO> selectListByStatus(Integer status) {
  60 + return selectList(UserDO::getStatus, status);
  61 + }
  62 +
  63 + default List<UserDO> selectListByDeptIds(Collection<Long> deptIds) {
  64 + return selectList(UserDO::getDeptId, deptIds);
  65 + }
  66 +
  67 +}
  68 +
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/SysRedisKeyConstants.java
1 package cn.iocoder.yudao.module.system.dal.redis; 1 package cn.iocoder.yudao.module.system.dal.redis;
2 2
3 import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine; 3 import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine;
  4 +import cn.iocoder.yudao.framework.security.core.LoginUser;
  5 +import me.zhyd.oauth.model.AuthUser;
  6 +
  7 +import java.time.Duration;
4 8
5 import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.STRING; 9 import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.STRING;
6 10
@@ -14,5 +18,17 @@ public interface SysRedisKeyConstants { @@ -14,5 +18,17 @@ public interface SysRedisKeyConstants {
14 RedisKeyDefine CAPTCHA_CODE = new RedisKeyDefine("验证码的缓存", 18 RedisKeyDefine CAPTCHA_CODE = new RedisKeyDefine("验证码的缓存",
15 "captcha_code:%s", // 参数为 uuid 19 "captcha_code:%s", // 参数为 uuid
16 STRING, String.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC); 20 STRING, String.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
  21 +
  22 + RedisKeyDefine LOGIN_USER = new RedisKeyDefine("登录用户的缓存",
  23 + "login_user:%s", // 参数为 sessionId
  24 + STRING, LoginUser.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);
  25 +
  26 + RedisKeyDefine SOCIAL_AUTH_USER = new RedisKeyDefine("社交登陆的授权用户",
  27 + "social_auth_user:%d:%s", // 参数为 type,code
  28 + STRING, AuthUser.class, Duration.ofDays(1));
  29 +
  30 + RedisKeyDefine SOCIAL_AUTH_STATE = new RedisKeyDefine("社交登陆的 state",
  31 + "social_auth_state:%s", // 参数为 state
  32 + STRING, String.class, Duration.ofHours(24)); // 值为 state
17 33
18 } 34 }
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/redis/SysRedisKeyCoreConstants.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/SysRedisKeyCoreConstants.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.redis; 1 +package cn.iocoder.yudao.module.system.dal.redis;
2 2
3 import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine; 3 import cn.iocoder.yudao.framework.redis.core.RedisKeyDefine;
4 import cn.iocoder.yudao.framework.security.core.LoginUser; 4 import cn.iocoder.yudao.framework.security.core.LoginUser;
@@ -15,15 +15,4 @@ import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.S @@ -15,15 +15,4 @@ import static cn.iocoder.yudao.framework.redis.core.RedisKeyDefine.KeyTypeEnum.S
15 */ 15 */
16 public interface SysRedisKeyCoreConstants { 16 public interface SysRedisKeyCoreConstants {
17 17
18 - RedisKeyDefine LOGIN_USER = new RedisKeyDefine("登录用户的缓存",  
19 - "login_user:%s", // 参数为 sessionId  
20 - STRING, LoginUser.class, RedisKeyDefine.TimeoutTypeEnum.DYNAMIC);  
21 -  
22 - RedisKeyDefine SOCIAL_AUTH_USER = new RedisKeyDefine("社交登陆的授权用户",  
23 - "social_auth_user:%d:%s", // 参数为 type,code  
24 - STRING, AuthUser.class, Duration.ofDays(1));  
25 -  
26 - RedisKeyDefine SOCIAL_AUTH_STATE = new RedisKeyDefine("社交登陆的 state",  
27 - "social_auth_state:%s", // 参数为 state  
28 - STRING, String.class, Duration.ofHours(24)); // 值为 state  
29 } 18 }
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/redis/auth/SysLoginUserCoreRedisDAO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/auth/LoginUserRedisDAO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth; 1 +package cn.iocoder.yudao.module.system.dal.redis.auth;
2 2
3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
4 import cn.iocoder.yudao.framework.security.config.SecurityProperties; 4 import cn.iocoder.yudao.framework.security.config.SecurityProperties;
@@ -8,7 +8,7 @@ import org.springframework.stereotype.Repository; @@ -8,7 +8,7 @@ import org.springframework.stereotype.Repository;
8 8
9 import javax.annotation.Resource; 9 import javax.annotation.Resource;
10 10
11 -import static cn.iocoder.yudao.coreservice.modules.system.dal.redis.SysRedisKeyCoreConstants.LOGIN_USER; 11 +import static cn.iocoder.yudao.module.system.dal.redis.SysRedisKeyConstants.LOGIN_USER;
12 12
13 /** 13 /**
14 * {@link LoginUser} 的 RedisDAO 14 * {@link LoginUser} 的 RedisDAO
@@ -16,7 +16,7 @@ import static cn.iocoder.yudao.coreservice.modules.system.dal.redis.SysRedisKeyC @@ -16,7 +16,7 @@ import static cn.iocoder.yudao.coreservice.modules.system.dal.redis.SysRedisKeyC
16 * @author 芋道源码 16 * @author 芋道源码
17 */ 17 */
18 @Repository 18 @Repository
19 -public class SysLoginUserCoreRedisDAO { 19 +public class LoginUserRedisDAO {
20 20
21 @Resource 21 @Resource
22 private StringRedisTemplate stringRedisTemplate; 22 private StringRedisTemplate stringRedisTemplate;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/dal/redis/social/SysSocialAuthUserRedisDAO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/redis/social/SocialAuthUserRedisDAO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.dal.redis.social; 1 +package cn.iocoder.yudao.module.system.dal.redis.social;
2 2
3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils; 3 import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
4 import me.zhyd.oauth.model.AuthCallback; 4 import me.zhyd.oauth.model.AuthCallback;
@@ -8,7 +8,8 @@ import org.springframework.stereotype.Repository; @@ -8,7 +8,8 @@ import org.springframework.stereotype.Repository;
8 8
9 import javax.annotation.Resource; 9 import javax.annotation.Resource;
10 10
11 -import static cn.iocoder.yudao.coreservice.modules.system.dal.redis.SysRedisKeyCoreConstants.SOCIAL_AUTH_USER; 11 +import static cn.iocoder.yudao.module.system.dal.redis.SysRedisKeyConstants.SOCIAL_AUTH_USER;
  12 +
12 13
13 /** 14 /**
14 * 社交 {@link me.zhyd.oauth.model.AuthUser} 的 RedisDAO 15 * 社交 {@link me.zhyd.oauth.model.AuthUser} 的 RedisDAO
@@ -16,7 +17,7 @@ import static cn.iocoder.yudao.coreservice.modules.system.dal.redis.SysRedisKeyC @@ -16,7 +17,7 @@ import static cn.iocoder.yudao.coreservice.modules.system.dal.redis.SysRedisKeyC
16 * @author 芋道源码 17 * @author 芋道源码
17 */ 18 */
18 @Repository 19 @Repository
19 -public class SysSocialAuthUserRedisDAO { 20 +public class SocialAuthUserRedisDAO {
20 21
21 @Resource 22 @Resource
22 private StringRedisTemplate stringRedisTemplate; 23 private StringRedisTemplate stringRedisTemplate;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/SysDictTypeConstants.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/DictTypeConstants.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums; 1 +package cn.iocoder.yudao.module.system.enums;
2 2
3 /** 3 /**
4 * System 字典类型的枚举类 4 * System 字典类型的枚举类
5 * 5 *
6 * @author 芋道源码 6 * @author 芋道源码
7 */ 7 */
8 -public interface SysDictTypeConstants { 8 +public interface DictTypeConstants {
9 9
10 String USER_TYPE = "user_type"; // 用户类型 10 String USER_TYPE = "user_type"; // 用户类型
11 String COMMON_STATUS = "sys_common_status"; // 系统状态 11 String COMMON_STATUS = "sys_common_status"; // 系统状态
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/common/SysSexEnum.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/common/SysSexEnum.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums.common; 1 +package cn.iocoder.yudao.module.system.enums.common;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/logger/SysLoginLogTypeEnum.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/logger/SysLoginLogTypeEnum.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums.logger; 1 +package cn.iocoder.yudao.module.system.enums.logger;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/logger/SysLoginResultEnum.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/logger/SysLoginResultEnum.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums.logger; 1 +package cn.iocoder.yudao.module.system.enums.logger;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/sms/SysSmsReceiveStatusEnum.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SysSmsReceiveStatusEnum.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums.sms; 1 +package cn.iocoder.yudao.module.system.enums.sms;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/sms/SysSmsSendStatusEnum.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SysSmsSendStatusEnum.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums.sms; 1 +package cn.iocoder.yudao.module.system.enums.sms;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/enums/sms/SysSmsTemplateTypeEnum.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SysSmsTemplateTypeEnum.java
1 -package cn.iocoder.yudao.coreservice.modules.system.enums.sms; 1 +package cn.iocoder.yudao.module.system.enums.sms;
2 2
3 import lombok.AllArgsConstructor; 3 import lombok.AllArgsConstructor;
4 import lombok.Getter; 4 import lombok.Getter;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.java
1 package cn.iocoder.yudao.module.system.framework.datapermission.config; 1 package cn.iocoder.yudao.module.system.framework.datapermission.config;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  4 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
5 import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRuleCustomizer; 5 import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRuleCustomizer;
6 import org.springframework.context.annotation.Bean; 6 import org.springframework.context.annotation.Bean;
7 import org.springframework.context.annotation.Configuration; 7 import org.springframework.context.annotation.Configuration;
@@ -17,7 +17,7 @@ public class DataPermissionConfiguration { @@ -17,7 +17,7 @@ public class DataPermissionConfiguration {
17 @Bean 17 @Bean
18 public DeptDataPermissionRuleCustomizer sysDeptDataPermissionRuleCustomizer() { 18 public DeptDataPermissionRuleCustomizer sysDeptDataPermissionRuleCustomizer() {
19 return rule -> { 19 return rule -> {
20 - rule.addDeptColumn(SysUserDO.class); 20 + rule.addDeptColumn(UserDO.class);
21 rule.addDeptColumn(SysDeptDO.class, "id"); 21 rule.addDeptColumn(SysDeptDO.class, "id");
22 }; 22 };
23 } 23 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/dict/DictDataRefreshConsumer.java
1 package cn.iocoder.yudao.module.system.mq.consumer.dict; 1 package cn.iocoder.yudao.module.system.mq.consumer.dict;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.service.dict.SysDictDataCoreService;  
4 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener; 3 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;
5 import cn.iocoder.yudao.module.system.mq.message.dict.DictDataRefreshMessage; 4 import cn.iocoder.yudao.module.system.mq.message.dict.DictDataRefreshMessage;
  5 +import cn.iocoder.yudao.module.system.service.dict.DictDataService;
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 DictDataRefreshConsumer extends AbstractChannelMessageListener<DictDataRefreshMessage> { 18 public class DictDataRefreshConsumer extends AbstractChannelMessageListener<DictDataRefreshMessage> {
19 19
20 @Resource 20 @Resource
21 - private SysDictDataCoreService dictDataCoreService; 21 + private DictDataService dictDataService;
22 22
23 @Override 23 @Override
24 public void onMessage(DictDataRefreshMessage message) { 24 public void onMessage(DictDataRefreshMessage message) {
25 log.info("[onMessage][收到 DictData 刷新消息]"); 25 log.info("[onMessage][收到 DictData 刷新消息]");
26 - dictDataCoreService.initLocalCache(); 26 + dictDataService.initLocalCache();
27 } 27 }
28 28
29 } 29 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.java
1 package cn.iocoder.yudao.module.system.mq.consumer.sms; 1 package cn.iocoder.yudao.module.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.module.system.mq.message.sms.SmsSendMessage;
  4 +import cn.iocoder.yudao.module.system.service.sms.SysSmsSendService;
5 import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener; 5 import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;
6 import lombok.extern.slf4j.Slf4j; 6 import lombok.extern.slf4j.Slf4j;
7 import org.springframework.stereotype.Component; 7 import org.springframework.stereotype.Component;
@@ -9,20 +9,20 @@ import org.springframework.stereotype.Component; @@ -9,20 +9,20 @@ import org.springframework.stereotype.Component;
9 import javax.annotation.Resource; 9 import javax.annotation.Resource;
10 10
11 /** 11 /**
12 - * 针对 {@link SysSmsSendMessage} 的消费者 12 + * 针对 {@link SmsSendMessage} 的消费者
13 * 13 *
14 * @author zzf 14 * @author zzf
15 * @date 2021/3/9 16:35 15 * @date 2021/3/9 16:35
16 */ 16 */
17 @Component 17 @Component
18 @Slf4j 18 @Slf4j
19 -public class SmsSendConsumer extends AbstractStreamMessageListener<SysSmsSendMessage> { 19 +public class SmsSendConsumer extends AbstractStreamMessageListener<SmsSendMessage> {
20 20
21 @Resource 21 @Resource
22 - private SysSmsCoreService smsCoreService; 22 + private SysSmsSendService smsCoreService;
23 23
24 @Override 24 @Override
25 - public void onMessage(SysSmsSendMessage message) { 25 + public void onMessage(SmsSendMessage message) {
26 log.info("[onMessage][消息内容({})]", message); 26 log.info("[onMessage][消息内容({})]", message);
27 smsCoreService.doSendSms(message); 27 smsCoreService.doSendSms(message);
28 } 28 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsTemplateRefreshConsumer.java
1 package cn.iocoder.yudao.module.system.mq.consumer.sms; 1 package cn.iocoder.yudao.module.system.mq.consumer.sms;
2 2
3 import cn.iocoder.yudao.module.system.mq.message.sms.SmsTemplateRefreshMessage; 3 import cn.iocoder.yudao.module.system.mq.message.sms.SmsTemplateRefreshMessage;
4 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsTemplateCoreService;  
5 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener; 4 import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;
  5 +import cn.iocoder.yudao.module.system.service.sms.SmsTemplateService;
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 SmsTemplateRefreshConsumer extends AbstractChannelMessageListener<SmsTemplateRefreshMessage> { 18 public class SmsTemplateRefreshConsumer extends AbstractChannelMessageListener<SmsTemplateRefreshMessage> {
19 19
20 @Resource 20 @Resource
21 - private SysSmsTemplateCoreService smsTemplateCoreService; 21 + private SmsTemplateService smsTemplateService;
22 22
23 @Override 23 @Override
24 public void onMessage(SmsTemplateRefreshMessage message) { 24 public void onMessage(SmsTemplateRefreshMessage message) {
25 log.info("[onMessage][收到 SmsTemplate 刷新消息]"); 25 log.info("[onMessage][收到 SmsTemplate 刷新消息]");
26 - smsTemplateCoreService.initLocalCache(); 26 + smsTemplateService.initLocalCache();
27 } 27 }
28 28
29 } 29 }
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/mq/message/sms/SysSmsSendMessage.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/message/sms/SmsSendMessage.java
1 -package cn.iocoder.yudao.coreservice.modules.system.mq.message.sms; 1 +package cn.iocoder.yudao.module.system.mq.message.sms;
2 2
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.stream.AbstractStreamMessage; 4 import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessage;
@@ -15,7 +15,7 @@ import java.util.List; @@ -15,7 +15,7 @@ import java.util.List;
15 */ 15 */
16 @Data 16 @Data
17 @EqualsAndHashCode(callSuper = true) 17 @EqualsAndHashCode(callSuper = true)
18 -public class SysSmsSendMessage extends AbstractStreamMessage { 18 +public class SmsSendMessage extends AbstractStreamMessage {
19 19
20 /** 20 /**
21 * 短信日志编号 21 * 短信日志编号
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/mq/message/package-info.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/producer/package-info.java
1 /** 1 /**
2 * 占位 2 * 占位
3 */ 3 */
4 -package cn.iocoder.yudao.coreservice.modules.system.mq.message; 4 +package cn.iocoder.yudao.module.system.mq.producer;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/producer/sms/SmsProducer.java
1 package cn.iocoder.yudao.module.system.mq.producer.sms; 1 package cn.iocoder.yudao.module.system.mq.producer.sms;
2 2
  3 +import cn.iocoder.yudao.framework.common.core.KeyValue;
3 import cn.iocoder.yudao.module.system.mq.message.sms.SmsChannelRefreshMessage; 4 import cn.iocoder.yudao.module.system.mq.message.sms.SmsChannelRefreshMessage;
  5 +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
4 import cn.iocoder.yudao.module.system.mq.message.sms.SmsTemplateRefreshMessage; 6 import cn.iocoder.yudao.module.system.mq.message.sms.SmsTemplateRefreshMessage;
5 import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate; 7 import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;
6 import lombok.extern.slf4j.Slf4j; 8 import lombok.extern.slf4j.Slf4j;
7 import org.springframework.stereotype.Component; 9 import org.springframework.stereotype.Component;
8 10
9 import javax.annotation.Resource; 11 import javax.annotation.Resource;
  12 +import java.util.List;
10 13
11 /** 14 /**
12 * Sms 短信相关消息的 Producer 15 * Sms 短信相关消息的 Producer
@@ -37,4 +40,20 @@ public class SmsProducer { @@ -37,4 +40,20 @@ public class SmsProducer {
37 redisMQTemplate.send(message); 40 redisMQTemplate.send(message);
38 } 41 }
39 42
  43 + /**
  44 + * 发送 {@link SmsSendMessage} 消息
  45 + *
  46 + * @param logId 短信日志编号
  47 + * @param mobile 手机号
  48 + * @param channelId 渠道编号
  49 + * @param apiTemplateId 短信模板编号
  50 + * @param templateParams 短信模板参数
  51 + */
  52 + public void sendSmsSendMessage(Long logId, String mobile,
  53 + Long channelId, String apiTemplateId, List<KeyValue<String, Object>> templateParams) {
  54 + SmsSendMessage message = new SmsSendMessage().setLogId(logId).setMobile(mobile);
  55 + message.setChannelId(channelId).setApiTemplateId(apiTemplateId).setTemplateParams(templateParams);
  56 + redisMQTemplate.send(message);
  57 + }
  58 +
40 } 59 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.auth; 1 package cn.iocoder.yudao.module.system.service.auth;
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.enums.UserTypeEnum;
  6 +import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
  7 +import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
  8 +import cn.iocoder.yudao.framework.security.core.LoginUser;
  9 +import cn.iocoder.yudao.framework.security.core.authentication.MultiUsernamePasswordAuthenticationToken;
4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialBindReqVO; 11 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialBindReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLogin2ReqVO; 12 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLogin2ReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLoginReqVO; 13 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLoginReqVO;
8 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; 14 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 15 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
  16 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
10 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 17 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
11 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 18 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
12 import cn.iocoder.yudao.module.system.service.common.CaptchaService; 19 import cn.iocoder.yudao.module.system.service.common.CaptchaService;
13 -import cn.iocoder.yudao.module.system.service.dept.PostService; 20 +import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
  21 +import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO;
14 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 22 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
  23 +import cn.iocoder.yudao.module.system.service.social.SocialUserService;
15 import cn.iocoder.yudao.module.system.service.user.UserService; 24 import cn.iocoder.yudao.module.system.service.user.UserService;
16 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;  
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.social.SysSocialCoreService;  
22 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService;  
23 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
24 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
25 -import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;  
26 -import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;  
27 -import cn.iocoder.yudao.framework.security.core.LoginUser;  
28 -import cn.iocoder.yudao.framework.security.core.authentication.MultiUsernamePasswordAuthenticationToken;  
29 import lombok.extern.slf4j.Slf4j; 25 import lombok.extern.slf4j.Slf4j;
30 import me.zhyd.oauth.model.AuthUser; 26 import me.zhyd.oauth.model.AuthUser;
  27 +import org.springframework.beans.factory.annotation.Autowired;
31 import org.springframework.context.annotation.Lazy; 28 import org.springframework.context.annotation.Lazy;
32 import org.springframework.security.authentication.AuthenticationManager; 29 import org.springframework.security.authentication.AuthenticationManager;
33 import org.springframework.security.authentication.BadCredentialsException; 30 import org.springframework.security.authentication.BadCredentialsException;
@@ -40,14 +37,12 @@ import org.springframework.stereotype.Service; @@ -40,14 +37,12 @@ import org.springframework.stereotype.Service;
40 import org.springframework.util.Assert; 37 import org.springframework.util.Assert;
41 38
42 import javax.annotation.Resource; 39 import javax.annotation.Resource;
43 -import java.util.Collections;  
44 import java.util.List; 40 import java.util.List;
45 import java.util.Objects; 41 import java.util.Objects;
46 import java.util.Set; 42 import java.util.Set;
47 43
48 -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;  
49 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 44 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
50 -import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; 45 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
51 import static java.util.Collections.singleton; 46 import static java.util.Collections.singleton;
52 47
53 /** 48 /**
@@ -63,27 +58,24 @@ public class AuthServiceImpl implements AuthService { @@ -63,27 +58,24 @@ public class AuthServiceImpl implements AuthService {
63 @Lazy // 延迟加载,因为存在相互依赖的问题 58 @Lazy // 延迟加载,因为存在相互依赖的问题
64 private AuthenticationManager authenticationManager; 59 private AuthenticationManager authenticationManager;
65 60
66 - @Resource 61 + @Autowired
  62 + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
67 private UserService userService; 63 private UserService userService;
68 @Resource 64 @Resource
69 - private SysUserCoreService userCoreService;  
70 - @Resource  
71 private PermissionService permissionService; 65 private PermissionService permissionService;
72 @Resource 66 @Resource
73 private CaptchaService captchaService; 67 private CaptchaService captchaService;
74 @Resource 68 @Resource
75 - private SysLoginLogCoreService loginLogCoreService;  
76 - @Resource  
77 - private SysUserSessionCoreService userSessionCoreService; 69 + private LoginLogService loginLogService;
78 @Resource 70 @Resource
79 - private PostService postService; 71 + private UserSessionService userSessionService;
80 @Resource 72 @Resource
81 - private SysSocialCoreService socialService; 73 + private SocialUserService socialService;
82 74
83 @Override 75 @Override
84 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { 76 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
85 // 获取 username 对应的 SysUserDO 77 // 获取 username 对应的 SysUserDO
86 - SysUserDO user = userService.getUserByUsername(username); 78 + UserDO user = userService.getUserByUsername(username);
87 if (user == null) { 79 if (user == null) {
88 throw new UsernameNotFoundException(username); 80 throw new UsernameNotFoundException(username);
89 } 81 }
@@ -94,7 +86,7 @@ public class AuthServiceImpl implements AuthService { @@ -94,7 +86,7 @@ public class AuthServiceImpl implements AuthService {
94 @Override 86 @Override
95 public LoginUser mockLogin(Long userId) { 87 public LoginUser mockLogin(Long userId) {
96 // 获取用户编号对应的 SysUserDO 88 // 获取用户编号对应的 SysUserDO
97 - SysUserDO user = userCoreService.getUser(userId); 89 + UserDO user = userService.getUser(userId);
98 if (user == null) { 90 if (user == null) {
99 throw new UsernameNotFoundException(String.valueOf(userId)); 91 throw new UsernameNotFoundException(String.valueOf(userId));
100 } 92 }
@@ -113,14 +105,7 @@ public class AuthServiceImpl implements AuthService { @@ -113,14 +105,7 @@ public class AuthServiceImpl implements AuthService {
113 LoginUser loginUser = this.login0(reqVO.getUsername(), reqVO.getPassword()); 105 LoginUser loginUser = this.login0(reqVO.getUsername(), reqVO.getPassword());
114 106
115 // 缓存登陆用户到 Redis 中,返回 sessionId 编号 107 // 缓存登陆用户到 Redis 中,返回 sessionId 编号
116 - return userSessionCoreService.createUserSession(loginUser, userIp, userAgent);  
117 - }  
118 -  
119 - private List<String> getUserPosts(Set<Long> postIds) {  
120 - if (CollUtil.isEmpty(postIds)) {  
121 - return Collections.emptyList();  
122 - }  
123 - return convertList(postService.getPosts(postIds), SysPostDO::getCode); 108 + return userSessionService.createUserSession(loginUser, userIp, userAgent);
124 } 109 }
125 110
126 private void verifyCaptcha(String username, String captchaUUID, String captchaCode) { 111 private void verifyCaptcha(String username, String captchaUUID, String captchaCode) {
@@ -175,9 +160,9 @@ public class AuthServiceImpl implements AuthService { @@ -175,9 +160,9 @@ public class AuthServiceImpl implements AuthService {
175 160
176 private void createLoginLog(String username, LoginLogTypeEnum logTypeEnum, LoginResultEnum loginResult) { 161 private void createLoginLog(String username, LoginLogTypeEnum logTypeEnum, LoginResultEnum loginResult) {
177 // 获得用户 162 // 获得用户
178 - SysUserDO user = userService.getUserByUsername(username); 163 + UserDO user = userService.getUserByUsername(username);
179 // 插入登录日志 164 // 插入登录日志
180 - SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO(); 165 + LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
181 reqDTO.setLogType(logTypeEnum.getType()); 166 reqDTO.setLogType(logTypeEnum.getType());
182 reqDTO.setTraceId(TracerUtils.getTraceId()); 167 reqDTO.setTraceId(TracerUtils.getTraceId());
183 if (user != null) { 168 if (user != null) {
@@ -188,7 +173,7 @@ public class AuthServiceImpl implements AuthService { @@ -188,7 +173,7 @@ public class AuthServiceImpl implements AuthService {
188 reqDTO.setUserAgent(ServletUtils.getUserAgent()); 173 reqDTO.setUserAgent(ServletUtils.getUserAgent());
189 reqDTO.setUserIp(ServletUtils.getClientIP()); 174 reqDTO.setUserIp(ServletUtils.getClientIP());
190 reqDTO.setResult(loginResult.getResult()); 175 reqDTO.setResult(loginResult.getResult());
191 - loginLogCoreService.createLoginLog(reqDTO); 176 + loginLogService.createLoginLog(reqDTO);
192 // 更新最后登录时间 177 // 更新最后登录时间
193 if (user != null && Objects.equals(LoginResultEnum.SUCCESS.getResult(), loginResult.getResult())) { 178 if (user != null && Objects.equals(LoginResultEnum.SUCCESS.getResult(), loginResult.getResult())) {
194 userService.updateUserLogin(user.getId(), ServletUtils.getClientIP()); 179 userService.updateUserLogin(user.getId(), ServletUtils.getClientIP());
@@ -219,7 +204,7 @@ public class AuthServiceImpl implements AuthService { @@ -219,7 +204,7 @@ public class AuthServiceImpl implements AuthService {
219 } 204 }
220 205
221 // 自动登录 206 // 自动登录
222 - SysUserDO user = userCoreService.getUser(socialUsers.get(0).getUserId()); 207 + UserDO user = userService.getUser(socialUsers.get(0).getUserId());
223 if (user == null) { 208 if (user == null) {
224 throw exception(USER_NOT_EXISTS); 209 throw exception(USER_NOT_EXISTS);
225 } 210 }
@@ -232,7 +217,7 @@ public class AuthServiceImpl implements AuthService { @@ -232,7 +217,7 @@ public class AuthServiceImpl implements AuthService {
232 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType()); 217 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType());
233 218
234 // 缓存登录用户到 Redis 中,返回 sessionId 编号 219 // 缓存登录用户到 Redis 中,返回 sessionId 编号
235 - return userSessionCoreService.createUserSession(loginUser, userIp, userAgent); 220 + return userSessionService.createUserSession(loginUser, userIp, userAgent);
236 } 221 }
237 222
238 @Override 223 @Override
@@ -248,7 +233,7 @@ public class AuthServiceImpl implements AuthService { @@ -248,7 +233,7 @@ public class AuthServiceImpl implements AuthService {
248 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType()); 233 socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType());
249 234
250 // 缓存登录用户到 Redis 中,返回 sessionId 编号 235 // 缓存登录用户到 Redis 中,返回 sessionId 编号
251 - return userSessionCoreService.createUserSession(loginUser, userIp, userAgent); 236 + return userSessionService.createUserSession(loginUser, userIp, userAgent);
252 } 237 }
253 238
254 @Override 239 @Override
@@ -264,12 +249,12 @@ public class AuthServiceImpl implements AuthService { @@ -264,12 +249,12 @@ public class AuthServiceImpl implements AuthService {
264 @Override 249 @Override
265 public void logout(String token) { 250 public void logout(String token) {
266 // 查询用户信息 251 // 查询用户信息
267 - LoginUser loginUser = userSessionCoreService.getLoginUser(token); 252 + LoginUser loginUser = userSessionService.getLoginUser(token);
268 if (loginUser == null) { 253 if (loginUser == null) {
269 return; 254 return;
270 } 255 }
271 // 删除 session 256 // 删除 session
272 - userSessionCoreService.deleteUserSession(token); 257 + userSessionService.deleteUserSession(token);
273 // 记录登出日志 258 // 记录登出日志
274 this.createLogoutLog(loginUser.getId(), loginUser.getUsername()); 259 this.createLogoutLog(loginUser.getId(), loginUser.getUsername());
275 } 260 }
@@ -280,7 +265,7 @@ public class AuthServiceImpl implements AuthService { @@ -280,7 +265,7 @@ public class AuthServiceImpl implements AuthService {
280 } 265 }
281 266
282 private void createLogoutLog(Long userId, String username) { 267 private void createLogoutLog(Long userId, String username) {
283 - SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO(); 268 + LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
284 reqDTO.setLogType(LoginLogTypeEnum.LOGOUT_SELF.getType()); 269 reqDTO.setLogType(LoginLogTypeEnum.LOGOUT_SELF.getType());
285 reqDTO.setTraceId(TracerUtils.getTraceId()); 270 reqDTO.setTraceId(TracerUtils.getTraceId());
286 reqDTO.setUserId(userId); 271 reqDTO.setUserId(userId);
@@ -289,13 +274,13 @@ public class AuthServiceImpl implements AuthService { @@ -289,13 +274,13 @@ public class AuthServiceImpl implements AuthService {
289 reqDTO.setUserAgent(ServletUtils.getUserAgent()); 274 reqDTO.setUserAgent(ServletUtils.getUserAgent());
290 reqDTO.setUserIp(ServletUtils.getClientIP()); 275 reqDTO.setUserIp(ServletUtils.getClientIP());
291 reqDTO.setResult(LoginResultEnum.SUCCESS.getResult()); 276 reqDTO.setResult(LoginResultEnum.SUCCESS.getResult());
292 - loginLogCoreService.createLoginLog(reqDTO); 277 + loginLogService.createLoginLog(reqDTO);
293 } 278 }
294 279
295 @Override 280 @Override
296 public LoginUser verifyTokenAndRefresh(String token) { 281 public LoginUser verifyTokenAndRefresh(String token) {
297 // 获得 LoginUser 282 // 获得 LoginUser
298 - LoginUser loginUser = userSessionCoreService.getLoginUser(token); 283 + LoginUser loginUser = userSessionService.getLoginUser(token);
299 if (loginUser == null) { 284 if (loginUser == null) {
300 return null; 285 return null;
301 } 286 }
@@ -306,23 +291,23 @@ public class AuthServiceImpl implements AuthService { @@ -306,23 +291,23 @@ public class AuthServiceImpl implements AuthService {
306 private LoginUser refreshLoginUserCache(String token, LoginUser loginUser) { 291 private LoginUser refreshLoginUserCache(String token, LoginUser loginUser) {
307 // 每 1/3 的 Session 超时时间,刷新 LoginUser 缓存 292 // 每 1/3 的 Session 超时时间,刷新 LoginUser 缓存
308 if (System.currentTimeMillis() - loginUser.getUpdateTime().getTime() < 293 if (System.currentTimeMillis() - loginUser.getUpdateTime().getTime() <
309 - userSessionCoreService.getSessionTimeoutMillis() / 3) { 294 + userSessionService.getSessionTimeoutMillis() / 3) {
310 return loginUser; 295 return loginUser;
311 } 296 }
312 297
313 // 重新加载 SysUserDO 信息 298 // 重新加载 SysUserDO 信息
314 - SysUserDO user = userCoreService.getUser(loginUser.getId()); 299 + UserDO user = userService.getUser(loginUser.getId());
315 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) { 300 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) {
316 throw exception(AUTH_TOKEN_EXPIRED); // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面 301 throw exception(AUTH_TOKEN_EXPIRED); // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面
317 } 302 }
318 303
319 // 刷新 LoginUser 缓存 304 // 刷新 LoginUser 缓存
320 LoginUser newLoginUser= this.buildLoginUser(user); 305 LoginUser newLoginUser= this.buildLoginUser(user);
321 - userSessionCoreService.refreshUserSession(token, newLoginUser); 306 + userSessionService.refreshUserSession(token, newLoginUser);
322 return newLoginUser; 307 return newLoginUser;
323 } 308 }
324 309
325 - private LoginUser buildLoginUser(SysUserDO user) { 310 + private LoginUser buildLoginUser(UserDO user) {
326 LoginUser loginUser = AuthConvert.INSTANCE.convert(user); 311 LoginUser loginUser = AuthConvert.INSTANCE.convert(user);
327 // 补全字段 312 // 补全字段
328 loginUser.setDeptId(user.getDeptId()); 313 loginUser.setDeptId(user.getDeptId());
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/UserSessionService.java
1 package cn.iocoder.yudao.module.system.service.auth; 1 package cn.iocoder.yudao.module.system.service.auth;
2 2
  3 +import cn.iocoder.yudao.framework.security.core.LoginUser;
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 7
7 /** 8 /**
@@ -26,4 +27,44 @@ public interface UserSessionService { @@ -26,4 +27,44 @@ public interface UserSessionService {
26 **/ 27 **/
27 long clearSessionTimeout(); 28 long clearSessionTimeout();
28 29
  30 + /**
  31 + * 创建在线用户 Session
  32 + *
  33 + * @param loginUser 登录用户
  34 + * @param userIp 用户 IP
  35 + * @param userAgent 用户 UA
  36 + * @return Session 编号
  37 + */
  38 + String createUserSession(LoginUser loginUser, String userIp, String userAgent);
  39 +
  40 + /**
  41 + * 刷新在线用户 Session 的更新时间
  42 + *
  43 + * @param sessionId Session 编号
  44 + * @param loginUser 登录用户
  45 + */
  46 + void refreshUserSession(String sessionId, LoginUser loginUser);
  47 +
  48 + /**
  49 + * 删除在线用户 Session
  50 + *
  51 + * @param sessionId Session 编号
  52 + */
  53 + void deleteUserSession(String sessionId);
  54 +
  55 + /**
  56 + * 获得 Session 编号对应的在线用户
  57 + *
  58 + * @param sessionId Session 编号
  59 + * @return 在线用户
  60 + */
  61 + LoginUser getLoginUser(String sessionId);
  62 +
  63 + /**
  64 + * 获得 Session 超时时间,单位:毫秒
  65 + *
  66 + * @return 超时时间
  67 + */
  68 + Long getSessionTimeoutMillis();
  69 +
29 } 70 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.auth; 1 package cn.iocoder.yudao.module.system.service.auth;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.IdUtil;
4 import cn.hutool.core.util.StrUtil; 5 import cn.hutool.core.util.StrUtil;
  6 +import cn.iocoder.yudao.framework.security.config.SecurityProperties;
  7 +import cn.iocoder.yudao.framework.security.core.LoginUser;
5 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO;
6 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper; 9 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper;
7 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 10 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
8 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 11 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
  12 +import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
9 import cn.iocoder.yudao.module.system.service.user.UserService; 13 import cn.iocoder.yudao.module.system.service.user.UserService;
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.dal.redis.auth.SysLoginUserCoreRedisDAO;  
13 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;  
14 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.dto.SysLoginLogCreateReqDTO; 14 +import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
  15 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  16 +import cn.iocoder.yudao.module.system.dal.redis.auth.LoginUserRedisDAO;
  17 +import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO;
15 import cn.iocoder.yudao.framework.common.pojo.PageResult; 18 import cn.iocoder.yudao.framework.common.pojo.PageResult;
16 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 19 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
17 import com.google.common.collect.Lists; 20 import com.google.common.collect.Lists;
@@ -19,13 +22,12 @@ import lombok.extern.slf4j.Slf4j; @@ -19,13 +22,12 @@ import lombok.extern.slf4j.Slf4j;
19 import org.springframework.stereotype.Service; 22 import org.springframework.stereotype.Service;
20 23
21 import javax.annotation.Resource; 24 import javax.annotation.Resource;
22 -import java.util.ArrayList;  
23 -import java.util.Collection;  
24 -import java.util.List;  
25 -import java.util.Map; 25 +import java.time.Duration;
  26 +import java.util.*;
26 import java.util.stream.Collectors; 27 import java.util.stream.Collectors;
27 28
28 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; 29 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
  30 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
29 31
30 /** 32 /**
31 * 在线用户 Session Service 实现类 33 * 在线用户 Session Service 实现类
@@ -38,20 +40,24 @@ public class UserSessionServiceImpl implements UserSessionService { @@ -38,20 +40,24 @@ public class UserSessionServiceImpl implements UserSessionService {
38 40
39 @Resource 41 @Resource
40 private SysUserSessionMapper userSessionMapper; 42 private SysUserSessionMapper userSessionMapper;
  43 +
41 @Resource 44 @Resource
42 private UserService userService; 45 private UserService userService;
43 @Resource 46 @Resource
44 - private SysLoginLogCoreService loginLogCoreService; 47 + private LoginLogService loginLogService;
  48 +
  49 + @Resource
  50 + private LoginUserRedisDAO loginUserCoreRedisDAO;
45 51
46 @Resource 52 @Resource
47 - private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO; 53 + private SecurityProperties securityProperties;
48 54
49 @Override 55 @Override
50 public PageResult<SysUserSessionDO> getUserSessionPage(UserSessionPageReqVO reqVO) { 56 public PageResult<SysUserSessionDO> getUserSessionPage(UserSessionPageReqVO reqVO) {
51 // 处理基于用户昵称的查询 57 // 处理基于用户昵称的查询
52 Collection<Long> userIds = null; 58 Collection<Long> userIds = null;
53 if (StrUtil.isNotEmpty(reqVO.getUsername())) { 59 if (StrUtil.isNotEmpty(reqVO.getUsername())) {
54 - userIds = convertSet(userService.getUsersByUsername(reqVO.getUsername()), SysUserDO::getId); 60 + userIds = convertSet(userService.getUsersByUsername(reqVO.getUsername()), UserDO::getId);
55 if (CollUtil.isEmpty(userIds)) { 61 if (CollUtil.isEmpty(userIds)) {
56 return PageResult.empty(); 62 return PageResult.empty();
57 } 63 }
@@ -80,7 +86,7 @@ public class UserSessionServiceImpl implements UserSessionService { @@ -80,7 +86,7 @@ public class UserSessionServiceImpl implements UserSessionService {
80 86
81 private void createTimeoutLogoutLog(Collection<SysUserSessionDO> timeoutSessionDOS) { 87 private void createTimeoutLogoutLog(Collection<SysUserSessionDO> timeoutSessionDOS) {
82 for (SysUserSessionDO timeoutSessionDO : timeoutSessionDOS) { 88 for (SysUserSessionDO timeoutSessionDO : timeoutSessionDOS) {
83 - SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO(); 89 + LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
84 reqDTO.setLogType(LoginLogTypeEnum.LOGOUT_TIMEOUT.getType()); 90 reqDTO.setLogType(LoginLogTypeEnum.LOGOUT_TIMEOUT.getType());
85 reqDTO.setTraceId(TracerUtils.getTraceId()); 91 reqDTO.setTraceId(TracerUtils.getTraceId());
86 reqDTO.setUserId(timeoutSessionDO.getUserId()); 92 reqDTO.setUserId(timeoutSessionDO.getUserId());
@@ -89,8 +95,66 @@ public class UserSessionServiceImpl implements UserSessionService { @@ -89,8 +95,66 @@ public class UserSessionServiceImpl implements UserSessionService {
89 reqDTO.setUserAgent(timeoutSessionDO.getUserAgent()); 95 reqDTO.setUserAgent(timeoutSessionDO.getUserAgent());
90 reqDTO.setUserIp(timeoutSessionDO.getUserIp()); 96 reqDTO.setUserIp(timeoutSessionDO.getUserIp());
91 reqDTO.setResult(LoginResultEnum.SUCCESS.getResult()); 97 reqDTO.setResult(LoginResultEnum.SUCCESS.getResult());
92 - loginLogCoreService.createLoginLog(reqDTO); 98 + loginLogService.createLoginLog(reqDTO);
93 } 99 }
94 } 100 }
95 101
  102 + @Override
  103 + public String createUserSession(LoginUser loginUser, String userIp, String userAgent) {
  104 + // 生成 Session 编号
  105 + String sessionId = generateSessionId();
  106 + // 写入 Redis 缓存
  107 + loginUser.setUpdateTime(new Date());
  108 + loginUserCoreRedisDAO.set(sessionId, loginUser);
  109 + // 写入 DB 中
  110 + SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)
  111 + .userId(loginUser.getId()).userType(loginUser.getUserType())
  112 + .userIp(userIp).userAgent(userAgent).username(loginUser.getUsername())
  113 + .sessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis())))
  114 + .build();
  115 + userSessionMapper.insert(userSession);
  116 + // 返回 Session 编号
  117 + return sessionId;
  118 + }
  119 +
  120 + @Override
  121 + public void refreshUserSession(String sessionId, LoginUser loginUser) {
  122 + // 写入 Redis 缓存
  123 + loginUser.setUpdateTime(new Date());
  124 + loginUserCoreRedisDAO.set(sessionId, loginUser);
  125 + // 更新 DB 中
  126 + SysUserSessionDO updateObj = SysUserSessionDO.builder().id(sessionId).build();
  127 + updateObj.setUsername(loginUser.getUsername());
  128 + updateObj.setUpdateTime(new Date());
  129 + updateObj.setSessionTimeout(addTime(Duration.ofMillis(getSessionTimeoutMillis())));
  130 + userSessionMapper.updateById(updateObj);
  131 + }
  132 +
  133 + @Override
  134 + public void deleteUserSession(String sessionId) {
  135 + // 删除 Redis 缓存
  136 + loginUserCoreRedisDAO.delete(sessionId);
  137 + // 删除 DB 记录
  138 + userSessionMapper.deleteById(sessionId);
  139 + }
  140 +
  141 + @Override
  142 + public LoginUser getLoginUser(String sessionId) {
  143 + return loginUserCoreRedisDAO.get(sessionId);
  144 + }
  145 +
  146 + @Override
  147 + public Long getSessionTimeoutMillis() {
  148 + return securityProperties.getSessionTimeout().toMillis();
  149 + }
  150 +
  151 + /**
  152 + * 生成 Session 编号,目前采用 UUID 算法
  153 + *
  154 + * @return Session 编号
  155 + */
  156 + private static String generateSessionId() {
  157 + return IdUtil.fastSimpleUUID();
  158 + }
  159 +
96 } 160 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.service.dept; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.service.dept;
3 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 7
8 import java.util.List; 8 import java.util.List;
9 9
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqV @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqV
9 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
10 import cn.iocoder.yudao.module.system.convert.dept.DeptConvert; 10 import cn.iocoder.yudao.module.system.convert.dept.DeptConvert;
11 import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptMapper; 11 import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptMapper;
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 12 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
13 import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum; 13 import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum;
14 import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer; 14 import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer;
15 import com.google.common.collect.ImmutableMap; 15 import com.google.common.collect.ImmutableMap;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostCreateRe @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostCreateRe
6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO;
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
10 import org.springframework.lang.Nullable; 10 import org.springframework.lang.Nullable;
11 11
12 import java.util.Collection; 12 import java.util.Collection;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqV @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqV
8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO;
9 import cn.iocoder.yudao.module.system.convert.dept.PostConvert; 9 import cn.iocoder.yudao.module.system.convert.dept.PostConvert;
10 import cn.iocoder.yudao.module.system.dal.mysql.dept.SysPostMapper; 10 import cn.iocoder.yudao.module.system.dal.mysql.dept.SysPostMapper;
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 11 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.validation.annotation.Validated; 13 import org.springframework.validation.annotation.Validated;
14 14
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/SysDeptCoreService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/SysDeptCoreService.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.dept; 1 +package cn.iocoder.yudao.module.system.service.dept;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
5 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 5 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
6 6
7 import java.util.Collection; 7 import java.util.Collection;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/SysPostCoreService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/SysPostCoreService.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.dept; 1 +package cn.iocoder.yudao.module.system.service.dept;
2 2
3 import java.util.Collection; 3 import java.util.Collection;
4 4
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/impl/SysDeptCoreServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/impl/SysDeptCoreServiceImpl.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.dept.impl; 1 +package cn.iocoder.yudao.module.system.service.dept.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept.SysDeptCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  5 +import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptCoreMapper;
  6 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 import lombok.extern.slf4j.Slf4j; 9 import lombok.extern.slf4j.Slf4j;
10 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
11 -import org.springframework.validation.annotation.Validated;  
12 11
13 import javax.annotation.Resource; 12 import javax.annotation.Resource;
14 import java.util.Collection; 13 import java.util.Collection;
15 import java.util.List; 14 import java.util.List;
16 import java.util.Map; 15 import java.util.Map;
17 16
18 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DEPT_NOT_ENABLE;  
19 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.DEPT_NOT_FOUND; 17 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.DEPT_NOT_ENABLE;
  18 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.DEPT_NOT_FOUND;
20 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 19 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
21 20
22 /** 21 /**
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/dept/impl/SysPostCoreServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/impl/SysPostCoreServiceImpl.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.dept.impl; 1 +package cn.iocoder.yudao.module.system.service.dept.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.dept.SysPostCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysPostCoreService; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
  5 +import cn.iocoder.yudao.module.system.dal.mysql.dept.SysPostCoreMapper;
  6 +import cn.iocoder.yudao.module.system.service.dept.SysPostCoreService;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
@@ -13,8 +13,8 @@ import java.util.Collection; @@ -13,8 +13,8 @@ import java.util.Collection;
13 import java.util.List; 13 import java.util.List;
14 import java.util.Map; 14 import java.util.Map;
15 15
16 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.POST_NOT_ENABLE;  
17 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.POST_NOT_FOUND; 16 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.POST_NOT_ENABLE;
  17 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.POST_NOT_FOUND;
18 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 18 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
19 19
20 /** 20 /**
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataService.java
1 package cn.iocoder.yudao.module.system.service.dict; 1 package cn.iocoder.yudao.module.system.service.dict;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO; 3 +import cn.iocoder.yudao.framework.dict.core.service.DictDataFrameworkService;
  4 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO;
9 10
  11 +import java.util.Collection;
10 import java.util.List; 12 import java.util.List;
11 13
12 /** 14 /**
@@ -14,7 +16,12 @@ import java.util.List; @@ -14,7 +16,12 @@ import java.util.List;
14 * 16 *
15 * @author ruoyi 17 * @author ruoyi
16 */ 18 */
17 -public interface DictDataService { 19 +public interface DictDataService extends DictDataFrameworkService {
  20 +
  21 + /**
  22 + * 初始化字典数据的本地缓存
  23 + */
  24 + void initLocalCache();
18 25
19 /** 26 /**
20 * 创建字典数据 27 * 创建字典数据
@@ -77,4 +84,14 @@ public interface DictDataService { @@ -77,4 +84,14 @@ public interface DictDataService {
77 */ 84 */
78 int countByDictType(String dictType); 85 int countByDictType(String dictType);
79 86
  87 + /**
  88 + * 校验字典数据们是否有效。如下情况,视为无效:
  89 + * 1. 字典数据不存在
  90 + * 2. 字典数据被禁用
  91 + *
  92 + * @param dictType 字典类型
  93 + * @param values 字典数据值的数组
  94 + */
  95 + void validDictDatas(String dictType, Collection<String> values);
  96 +
80 } 97 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.dict; 1 package cn.iocoder.yudao.module.system.service.dict;
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;
3 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataPageReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO; 11 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataUpdateReqVO;
7 import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert; 12 import cn.iocoder.yudao.module.system.convert.dict.DictDataConvert;
  13 +import cn.iocoder.yudao.module.system.convert.dict.SysDictDataCoreConvert;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO; 14 import cn.iocoder.yudao.module.system.dal.dataobject.dict.DictTypeDO;
  15 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO;
9 import cn.iocoder.yudao.module.system.dal.mysql.dict.SysDictDataMapper; 16 import cn.iocoder.yudao.module.system.dal.mysql.dict.SysDictDataMapper;
10 import cn.iocoder.yudao.module.system.mq.producer.dict.DictDataProducer; 17 import cn.iocoder.yudao.module.system.mq.producer.dict.DictDataProducer;
11 -import cn.iocoder.yudao.module.system.service.dict.DictDataService;  
12 -import cn.iocoder.yudao.module.system.service.dict.DictTypeService;  
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;  
16 import com.google.common.annotations.VisibleForTesting; 18 import com.google.common.annotations.VisibleForTesting;
  19 +import com.google.common.collect.ImmutableMap;
  20 +import com.google.common.collect.ImmutableTable;
17 import lombok.extern.slf4j.Slf4j; 21 import lombok.extern.slf4j.Slf4j;
  22 +import org.springframework.scheduling.annotation.Scheduled;
18 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
19 24
  25 +import javax.annotation.PostConstruct;
20 import javax.annotation.Resource; 26 import javax.annotation.Resource;
21 -import java.util.*; 27 +import java.util.Collection;
  28 +import java.util.Comparator;
  29 +import java.util.Date;
  30 +import java.util.List;
22 31
23 -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;  
24 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 32 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  33 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
25 34
26 /** 35 /**
27 * 字典数据 Service 实现类 36 * 字典数据 Service 实现类
@@ -39,6 +48,12 @@ public class DictDataServiceImpl implements DictDataService { @@ -39,6 +48,12 @@ public class DictDataServiceImpl implements DictDataService {
39 .comparing(SysDictDataDO::getDictType) 48 .comparing(SysDictDataDO::getDictType)
40 .thenComparingInt(SysDictDataDO::getSort); 49 .thenComparingInt(SysDictDataDO::getSort);
41 50
  51 + /**
  52 + * 定时执行 {@link #schedulePeriodicRefresh()} 的周期
  53 + * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高
  54 + */
  55 + private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;
  56 +
42 @Resource 57 @Resource
43 private DictTypeService dictTypeService; 58 private DictTypeService dictTypeService;
44 59
@@ -49,6 +64,48 @@ public class DictDataServiceImpl implements DictDataService { @@ -49,6 +64,48 @@ public class DictDataServiceImpl implements DictDataService {
49 private DictDataProducer dictDataProducer; 64 private DictDataProducer dictDataProducer;
50 65
51 /** 66 /**
  67 + * 字典数据缓存,第二个 key 使用 label
  68 + *
  69 + * key1:字典类型 dictType
  70 + * key2:字典标签 label
  71 + */
  72 + private ImmutableTable<String, String, SysDictDataDO> labelDictDataCache;
  73 + /**
  74 + * 字典数据缓存,第二个 key 使用 value
  75 + *
  76 + * key1:字典类型 dictType
  77 + * key2:字典值 value
  78 + */
  79 + private ImmutableTable<String, String, SysDictDataDO> valueDictDataCache;
  80 + /**
  81 + * 缓存字典数据的最大更新时间,用于后续的增量轮询,判断是否有更新
  82 + */
  83 + private volatile Date maxUpdateTime;
  84 +
  85 + @Override
  86 + @PostConstruct
  87 + public synchronized void initLocalCache() {
  88 + // 获取字典数据列表,如果有更新
  89 + List<SysDictDataDO> dataList = loadDictDataIfUpdate(maxUpdateTime);
  90 + if (CollUtil.isEmpty(dataList)) {
  91 + return;
  92 + }
  93 +
  94 + // 构建缓存
  95 + ImmutableTable.Builder<String, String, SysDictDataDO> labelDictDataBuilder = ImmutableTable.builder();
  96 + ImmutableTable.Builder<String, String, SysDictDataDO> valueDictDataBuilder = ImmutableTable.builder();
  97 + dataList.forEach(dictData -> {
  98 + labelDictDataBuilder.put(dictData.getDictType(), dictData.getLabel(), dictData);
  99 + valueDictDataBuilder.put(dictData.getDictType(), dictData.getValue(), dictData);
  100 + });
  101 + labelDictDataCache = labelDictDataBuilder.build();
  102 + valueDictDataCache = valueDictDataBuilder.build();
  103 + assert dataList.size() > 0; // 断言,避免告警
  104 + maxUpdateTime = dataList.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();
  105 + log.info("[initLocalCache][缓存字典数据,数量为:{}]", dataList.size());
  106 + }
  107 +
  108 + /**
52 * 如果字典数据发生变化,从数据库中获取最新的全量字典数据。 109 * 如果字典数据发生变化,从数据库中获取最新的全量字典数据。
53 * 如果未发生变化,则返回空 110 * 如果未发生变化,则返回空
54 * 111 *
@@ -69,6 +126,11 @@ public class DictDataServiceImpl implements DictDataService { @@ -69,6 +126,11 @@ public class DictDataServiceImpl implements DictDataService {
69 return dictDataMapper.selectList(); 126 return dictDataMapper.selectList();
70 } 127 }
71 128
  129 + @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)
  130 + public void schedulePeriodicRefresh() {
  131 + initLocalCache();
  132 + }
  133 +
72 @Override 134 @Override
73 public List<SysDictDataDO> getDictDatas() { 135 public List<SysDictDataDO> getDictDatas() {
74 List<SysDictDataDO> list = dictDataMapper.selectList(); 136 List<SysDictDataDO> list = dictDataMapper.selectList();
@@ -94,12 +156,29 @@ public class DictDataServiceImpl implements DictDataService { @@ -94,12 +156,29 @@ public class DictDataServiceImpl implements DictDataService {
94 } 156 }
95 157
96 @Override 158 @Override
  159 + public DictDataRespDTO getDictDataFromCache(String type, String value) {
  160 + return SysDictDataCoreConvert.INSTANCE.convert02(valueDictDataCache.get(type, value));
  161 + }
  162 +
  163 + @Override
  164 + public DictDataRespDTO parseDictDataFromCache(String type, String label) {
  165 + return SysDictDataCoreConvert.INSTANCE.convert02(labelDictDataCache.get(type, label));
  166 + }
  167 +
  168 + @Override
  169 + public List<DictDataRespDTO> listDictDatasFromCache(String type) {
  170 + return SysDictDataCoreConvert.INSTANCE.convertList03(labelDictDataCache.row(type).values());
  171 + }
  172 +
  173 + @Override
97 public Long createDictData(DictDataCreateReqVO reqVO) { 174 public Long createDictData(DictDataCreateReqVO reqVO) {
98 // 校验正确性 175 // 校验正确性
99 - this.checkCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType()); 176 + checkCreateOrUpdate(null, reqVO.getValue(), reqVO.getDictType());
  177 +
100 // 插入字典类型 178 // 插入字典类型
101 SysDictDataDO dictData = DictDataConvert.INSTANCE.convert(reqVO); 179 SysDictDataDO dictData = DictDataConvert.INSTANCE.convert(reqVO);
102 dictDataMapper.insert(dictData); 180 dictDataMapper.insert(dictData);
  181 +
103 // 发送刷新消息 182 // 发送刷新消息
104 dictDataProducer.sendDictDataRefreshMessage(); 183 dictDataProducer.sendDictDataRefreshMessage();
105 return dictData.getId(); 184 return dictData.getId();
@@ -108,10 +187,12 @@ public class DictDataServiceImpl implements DictDataService { @@ -108,10 +187,12 @@ public class DictDataServiceImpl implements DictDataService {
108 @Override 187 @Override
109 public void updateDictData(DictDataUpdateReqVO reqVO) { 188 public void updateDictData(DictDataUpdateReqVO reqVO) {
110 // 校验正确性 189 // 校验正确性
111 - this.checkCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType()); 190 + checkCreateOrUpdate(reqVO.getId(), reqVO.getValue(), reqVO.getDictType());
  191 +
112 // 更新字典类型 192 // 更新字典类型
113 SysDictDataDO updateObj = DictDataConvert.INSTANCE.convert(reqVO); 193 SysDictDataDO updateObj = DictDataConvert.INSTANCE.convert(reqVO);
114 dictDataMapper.updateById(updateObj); 194 dictDataMapper.updateById(updateObj);
  195 +
115 // 发送刷新消息 196 // 发送刷新消息
116 dictDataProducer.sendDictDataRefreshMessage(); 197 dictDataProducer.sendDictDataRefreshMessage();
117 } 198 }
@@ -119,9 +200,11 @@ public class DictDataServiceImpl implements DictDataService { @@ -119,9 +200,11 @@ public class DictDataServiceImpl implements DictDataService {
119 @Override 200 @Override
120 public void deleteDictData(Long id) { 201 public void deleteDictData(Long id) {
121 // 校验是否存在 202 // 校验是否存在
122 - this.checkDictDataExists(id); 203 + checkDictDataExists(id);
  204 +
123 // 删除字典数据 205 // 删除字典数据
124 dictDataMapper.deleteById(id); 206 dictDataMapper.deleteById(id);
  207 +
125 // 发送刷新消息 208 // 发送刷新消息
126 dictDataProducer.sendDictDataRefreshMessage(); 209 dictDataProducer.sendDictDataRefreshMessage();
127 } 210 }
@@ -178,4 +261,22 @@ public class DictDataServiceImpl implements DictDataService { @@ -178,4 +261,22 @@ public class DictDataServiceImpl implements DictDataService {
178 } 261 }
179 } 262 }
180 263
  264 + @Override
  265 + public void validDictDatas(String dictType, Collection<String> values) {
  266 + if (CollUtil.isEmpty(values)) {
  267 + return;
  268 + }
  269 + ImmutableMap<String, SysDictDataDO> dictDataMap = valueDictDataCache.row(dictType);
  270 + // 校验
  271 + values.forEach(value -> {
  272 + SysDictDataDO dictData = dictDataMap.get(value);
  273 + if (dictData == null) {
  274 + throw exception(DICT_DATA_NOT_EXISTS);
  275 + }
  276 + if (!CommonStatusEnum.ENABLE.getStatus().equals(dictData.getStatus())) {
  277 + throw exception(DICT_DATA_NOT_ENABLE, dictData.getLabel());
  278 + }
  279 + });
  280 + }
  281 +
181 } 282 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dict/DictTypeServiceImpl.java
@@ -54,7 +54,7 @@ public class DictTypeServiceImpl implements DictTypeService { @@ -54,7 +54,7 @@ public class DictTypeServiceImpl implements DictTypeService {
54 @Override 54 @Override
55 public Long createDictType(DictTypeCreateReqVO reqVO) { 55 public Long createDictType(DictTypeCreateReqVO reqVO) {
56 // 校验正确性 56 // 校验正确性
57 - this.checkCreateOrUpdate(null, reqVO.getName(), reqVO.getType()); 57 + checkCreateOrUpdate(null, reqVO.getName(), reqVO.getType());
58 // 插入字典类型 58 // 插入字典类型
59 DictTypeDO dictType = DictTypeConvert.INSTANCE.convert(reqVO); 59 DictTypeDO dictType = DictTypeConvert.INSTANCE.convert(reqVO);
60 dictTypeMapper.insert(dictType); 60 dictTypeMapper.insert(dictType);
@@ -64,7 +64,7 @@ public class DictTypeServiceImpl implements DictTypeService { @@ -64,7 +64,7 @@ public class DictTypeServiceImpl implements DictTypeService {
64 @Override 64 @Override
65 public void updateDictType(DictTypeUpdateReqVO reqVO) { 65 public void updateDictType(DictTypeUpdateReqVO reqVO) {
66 // 校验正确性 66 // 校验正确性
67 - this.checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), null); 67 + checkCreateOrUpdate(reqVO.getId(), reqVO.getName(), null);
68 // 更新字典类型 68 // 更新字典类型
69 DictTypeDO updateObj = DictTypeConvert.INSTANCE.convert(reqVO); 69 DictTypeDO updateObj = DictTypeConvert.INSTANCE.convert(reqVO);
70 dictTypeMapper.updateById(updateObj); 70 dictTypeMapper.updateById(updateObj);
@@ -73,7 +73,7 @@ public class DictTypeServiceImpl implements DictTypeService { @@ -73,7 +73,7 @@ public class DictTypeServiceImpl implements DictTypeService {
73 @Override 73 @Override
74 public void deleteDictType(Long id) { 74 public void deleteDictType(Long id) {
75 // 校验是否存在 75 // 校验是否存在
76 - DictTypeDO dictType = this.checkDictTypeExists(id); 76 + DictTypeDO dictType = checkDictTypeExists(id);
77 // 校验是否有字典数据 77 // 校验是否有字典数据
78 if (dictDataService.countByDictType(dictType.getType()) > 0) { 78 if (dictDataService.countByDictType(dictType.getType()) > 0) {
79 throw exception(DICT_TYPE_HAS_CHILDREN); 79 throw exception(DICT_TYPE_HAS_CHILDREN);
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.java
@@ -2,8 +2,9 @@ package cn.iocoder.yudao.module.system.service.logger; @@ -2,8 +2,9 @@ package cn.iocoder.yudao.module.system.service.logger;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO;
7 8
8 import java.util.List; 9 import java.util.List;
9 10
@@ -28,4 +29,11 @@ public interface LoginLogService { @@ -28,4 +29,11 @@ public interface LoginLogService {
28 */ 29 */
29 List<SysLoginLogDO> getLoginLogList(LoginLogExportReqVO reqVO); 30 List<SysLoginLogDO> getLoginLogList(LoginLogExportReqVO reqVO);
30 31
  32 + /**
  33 + * 创建登录日志
  34 + *
  35 + * @param reqDTO 日志信息
  36 + */
  37 + void createLoginLog(LoginLogCreateReqDTO reqDTO);
  38 +
31 } 39 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.java
@@ -2,9 +2,12 @@ package cn.iocoder.yudao.module.system.service.logger; @@ -2,9 +2,12 @@ package cn.iocoder.yudao.module.system.service.logger;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
  5 +import cn.iocoder.yudao.module.system.convert.logger.SysLoginLogCoreConvert;
5 import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper; 6 import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +import cn.iocoder.yudao.module.system.dal.mysql.logger.SysLoginLogCoreMapper;
  10 +import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO;
8 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
9 12
10 import javax.annotation.Resource; 13 import javax.annotation.Resource;
@@ -29,4 +32,11 @@ public class LoginLogServiceImpl implements LoginLogService { @@ -29,4 +32,11 @@ public class LoginLogServiceImpl implements LoginLogService {
29 return loginLogMapper.selectList(reqVO); 32 return loginLogMapper.selectList(reqVO);
30 } 33 }
31 34
  35 + @Override
  36 + public void createLoginLog(LoginLogCreateReqDTO reqDTO) {
  37 + SysLoginLogDO loginLog = SysLoginLogCoreConvert.INSTANCE.convert(reqDTO);
  38 + // 插入
  39 + loginLogMapper.insert(loginLog);
  40 + }
  41 +
32 } 42 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert;
8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
9 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; 9 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper;
10 import cn.iocoder.yudao.module.system.service.user.UserService; 10 import cn.iocoder.yudao.module.system.service.user.UserService;
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO; 11 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
12 import cn.iocoder.yudao.framework.common.pojo.PageResult; 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import cn.iocoder.yudao.framework.common.util.string.StrUtils; 13 import cn.iocoder.yudao.framework.common.util.string.StrUtils;
14 import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO; 14 import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
@@ -58,7 +58,7 @@ public class OperateLogServiceImpl implements OperateLogService { @@ -58,7 +58,7 @@ public class OperateLogServiceImpl implements OperateLogService {
58 // 处理基于用户昵称的查询 58 // 处理基于用户昵称的查询
59 Collection<Long> userIds = null; 59 Collection<Long> userIds = null;
60 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { 60 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {
61 - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), SysUserDO::getId); 61 + userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), UserDO::getId);
62 if (CollUtil.isEmpty(userIds)) { 62 if (CollUtil.isEmpty(userIds)) {
63 return PageResult.empty(); 63 return PageResult.empty();
64 } 64 }
@@ -72,7 +72,7 @@ public class OperateLogServiceImpl implements OperateLogService { @@ -72,7 +72,7 @@ public class OperateLogServiceImpl implements OperateLogService {
72 // 处理基于用户昵称的查询 72 // 处理基于用户昵称的查询
73 Collection<Long> userIds = null; 73 Collection<Long> userIds = null;
74 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { 74 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {
75 - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), SysUserDO::getId); 75 + userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), UserDO::getId);
76 if (CollUtil.isEmpty(userIds)) { 76 if (CollUtil.isEmpty(userIds)) {
77 return Collections.emptyList(); 77 return Collections.emptyList();
78 } 78 }
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/logger/dto/SysLoginLogCreateReqDTO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/dto/LoginLogCreateReqDTO.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.logger.dto; 1 +package cn.iocoder.yudao.module.system.service.logger.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
@@ -13,7 +13,7 @@ import javax.validation.constraints.Size; @@ -13,7 +13,7 @@ import javax.validation.constraints.Size;
13 * @author 芋道源码 13 * @author 芋道源码
14 */ 14 */
15 @Data 15 @Data
16 -public class SysLoginLogCreateReqDTO { 16 +public class LoginLogCreateReqDTO {
17 17
18 /** 18 /**
19 * 日志类型 19 * 日志类型
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java
@@ -3,11 +3,11 @@ package cn.iocoder.yudao.module.system.service.permission; @@ -3,11 +3,11 @@ package cn.iocoder.yudao.module.system.service.permission;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.collection.CollectionUtil; 4 import cn.hutool.core.collection.CollectionUtil;
5 import cn.hutool.core.util.ArrayUtil; 5 import cn.hutool.core.util.ArrayUtil;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO;
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;
11 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMenuMapper; 11 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMenuMapper;
12 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleMapper; 12 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleMapper;
13 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer; 13 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCr @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCr
5 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
9 import org.springframework.lang.Nullable; 9 import org.springframework.lang.Nullable;
10 10
11 import java.util.Collection; 11 import java.util.Collection;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
@@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePa @@ -11,7 +11,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePa
11 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO; 11 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO;
12 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert; 12 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert;
13 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMapper; 13 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMapper;
14 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 14 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
15 import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; 15 import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
16 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; 16 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum;
17 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer; 17 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/SysPermissionCoreService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/SysPermissionCoreService.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.permission; 1 +package cn.iocoder.yudao.module.system.service.permission;
2 2
3 import java.util.Collection; 3 import java.util.Collection;
4 import java.util.Set; 4 import java.util.Set;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/SysRoleCoreService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/SysRoleCoreService.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.permission; 1 +package cn.iocoder.yudao.module.system.service.permission;
2 2
3 import java.util.Collection; 3 import java.util.Collection;
4 4
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/impl/SysPermissionCoreServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/impl/SysPermissionCoreServiceImpl.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.permission.impl; 1 +package cn.iocoder.yudao.module.system.service.permission.impl;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission.SysUserRoleCoreMapper;  
5 -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysPermissionCoreService; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;
  4 +import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleCoreMapper;
  5 +import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;
6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
7 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
8 8
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/permission/impl/SysRoleCoreServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/impl/SysRoleCoreServiceImpl.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.permission.impl; 1 +package cn.iocoder.yudao.module.system.service.permission.impl;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.permission.SysRoleCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.service.permission.SysRoleCoreService; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
  5 +import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleCoreMapper;
  6 +import cn.iocoder.yudao.module.system.service.permission.SysRoleCoreService;
7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 7 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 8 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
9 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
@@ -13,8 +13,8 @@ import java.util.Collection; @@ -13,8 +13,8 @@ import java.util.Collection;
13 import java.util.List; 13 import java.util.List;
14 import java.util.Map; 14 import java.util.Map;
15 15
16 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.ROLE_IS_DISABLE;  
17 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.ROLE_NOT_EXISTS; 16 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.ROLE_IS_DISABLE;
  17 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.ROLE_NOT_EXISTS;
18 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 18 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
19 19
20 /** 20 /**
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelService.java
1 package cn.iocoder.yudao.module.system.service.sms; 1 package cn.iocoder.yudao.module.system.service.sms;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel
7 import cn.iocoder.yudao.module.system.convert.sms.SmsChannelConvert; 7 import cn.iocoder.yudao.module.system.convert.sms.SmsChannelConvert;
8 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsChannelMapper; 8 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsChannelMapper;
9 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 9 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
11 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
12 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 12 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
13 import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory; 13 import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogService.java
@@ -2,10 +2,13 @@ package cn.iocoder.yudao.module.system.service.sms; @@ -2,10 +2,13 @@ package cn.iocoder.yudao.module.system.service.sms;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO;
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
7 8
  9 +import java.util.Date;
8 import java.util.List; 10 import java.util.List;
  11 +import java.util.Map;
9 12
10 /** 13 /**
11 * 短信日志 Service 接口 14 * 短信日志 Service 接口
@@ -16,6 +19,46 @@ import java.util.List; @@ -16,6 +19,46 @@ import java.util.List;
16 public interface SmsLogService { 19 public interface SmsLogService {
17 20
18 /** 21 /**
  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 + /**
19 * 获得短信日志分页 62 * 获得短信日志分页
20 * 63 *
21 * @param pageReqVO 分页查询 64 * @param pageReqVO 分页查询
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.sms; 1 package cn.iocoder.yudao.module.system.service.sms;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
3 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO;
  6 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
5 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsLogMapper; 7 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsLogMapper;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  10 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum;
  11 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsSendStatusEnum;
8 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
9 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
10 14
11 import javax.annotation.Resource; 15 import javax.annotation.Resource;
  16 +import java.util.Date;
12 import java.util.List; 17 import java.util.List;
  18 +import java.util.Map;
  19 +import java.util.Objects;
13 20
14 /** 21 /**
15 * 短信日志 Service 实现类 22 * 短信日志 Service 实现类
16 * 23 *
17 * @author zzf 24 * @author zzf
18 - * @date 2021/1/25 9:25  
19 */ 25 */
20 @Slf4j 26 @Slf4j
21 @Service 27 @Service
@@ -25,6 +31,50 @@ public class SmsLogServiceImpl implements SmsLogService { @@ -25,6 +31,50 @@ public class SmsLogServiceImpl implements SmsLogService {
25 private SysSmsLogMapper smsLogMapper; 31 private SysSmsLogMapper smsLogMapper;
26 32
27 @Override 33 @Override
  34 + public Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend,
  35 + SysSmsTemplateDO template, String templateContent, Map<String, Object> templateParams) {
  36 + SysSmsLogDO.SysSmsLogDOBuilder logBuilder = SysSmsLogDO.builder();
  37 + // 根据是否要发送,设置状态
  38 + logBuilder.sendStatus(Objects.equals(isSend, true) ? SysSmsSendStatusEnum.INIT.getStatus()
  39 + : SysSmsSendStatusEnum.IGNORE.getStatus());
  40 + // 设置手机相关字段
  41 + logBuilder.mobile(mobile).userId(userId).userType(userType);
  42 + // 设置模板相关字段
  43 + logBuilder.templateId(template.getId()).templateCode(template.getCode()).templateType(template.getType());
  44 + logBuilder.templateContent(templateContent).templateParams(templateParams).apiTemplateId(template.getApiTemplateId());
  45 + // 设置渠道相关字段
  46 + logBuilder.channelId(template.getChannelId()).channelCode(template.getChannelCode());
  47 + // 设置接收相关字段
  48 + logBuilder.receiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus());
  49 +
  50 + // 插入数据库
  51 + SysSmsLogDO logDO = logBuilder.build();
  52 + smsLogMapper.insert(logDO);
  53 + return logDO.getId();
  54 + }
  55 +
  56 + @Override
  57 + public void updateSmsSendResult(Long id, Integer sendCode, String sendMsg,
  58 + String apiSendCode, String apiSendMsg,
  59 + String apiRequestId, String apiSerialNo) {
  60 + SysSmsSendStatusEnum sendStatus = CommonResult.isSuccess(sendCode) ?
  61 + SysSmsSendStatusEnum.SUCCESS : SysSmsSendStatusEnum.FAILURE;
  62 + smsLogMapper.updateById(SysSmsLogDO.builder().id(id).sendStatus(sendStatus.getStatus())
  63 + .sendTime(new Date()).sendCode(sendCode).sendMsg(sendMsg)
  64 + .apiSendCode(apiSendCode).apiSendMsg(apiSendMsg)
  65 + .apiRequestId(apiRequestId).apiSerialNo(apiSerialNo).build());
  66 + }
  67 +
  68 + @Override
  69 + public void updateSmsReceiveResult(Long id, Boolean success, Date receiveTime,
  70 + String apiReceiveCode, String apiReceiveMsg) {
  71 + SysSmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ?
  72 + SysSmsReceiveStatusEnum.SUCCESS : SysSmsReceiveStatusEnum.FAILURE;
  73 + smsLogMapper.updateById(SysSmsLogDO.builder().id(id).receiveStatus(receiveStatus.getStatus())
  74 + .receiveTime(receiveTime).apiReceiveCode(apiReceiveCode).apiReceiveMsg(apiReceiveMsg).build());
  75 + }
  76 +
  77 + @Override
28 public PageResult<SysSmsLogDO> getSmsLogPage(SmsLogPageReqVO pageReqVO) { 78 public PageResult<SysSmsLogDO> getSmsLogPage(SmsLogPageReqVO pageReqVO) {
29 return smsLogMapper.selectPage(pageReqVO); 79 return smsLogMapper.selectPage(pageReqVO);
30 } 80 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateService.java
@@ -4,12 +4,13 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla @@ -4,12 +4,13 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 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;
13 14
14 /** 15 /**
15 * 短信模板 Service 接口 16 * 短信模板 Service 接口
@@ -20,6 +21,28 @@ import java.util.List; @@ -20,6 +21,28 @@ import java.util.List;
20 public interface SmsTemplateService { 21 public interface SmsTemplateService {
21 22
22 /** 23 /**
  24 + * 初始化短信模板的本地缓存
  25 + */
  26 + void initLocalCache();
  27 +
  28 + /**
  29 + * 获得短信模板,从缓存中
  30 + *
  31 + * @param code 模板编码
  32 + * @return 短信模板
  33 + */
  34 + SysSmsTemplateDO getSmsTemplateByCodeFromCache(String code);
  35 +
  36 + /**
  37 + * 格式化短信内容
  38 + *
  39 + * @param content 短信模板的内容
  40 + * @param params 内容的参数
  41 + * @return 格式化后的内容
  42 + */
  43 + String formatSmsTemplateContent(String content, Map<String, Object> params);
  44 +
  45 + /**
23 * 获得短信模板 46 * 获得短信模板
24 * 47 *
25 * @param code 模板编码 48 * @param code 模板编码
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.sms; 1 package cn.iocoder.yudao.module.system.service.sms;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
3 import cn.hutool.core.util.ReUtil; 4 import cn.hutool.core.util.ReUtil;
  5 +import cn.hutool.core.util.StrUtil;
  6 +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateCreateReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateCreateReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO;
@@ -8,8 +11,8 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla @@ -8,8 +11,8 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla
8 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert; 11 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert;
9 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsTemplateMapper; 12 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsTemplateMapper;
10 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 13 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO; 14 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
  15 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
13 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 16 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
14 import cn.iocoder.yudao.framework.common.pojo.PageResult; 17 import cn.iocoder.yudao.framework.common.pojo.PageResult;
15 import cn.iocoder.yudao.framework.sms.core.client.SmsClient; 18 import cn.iocoder.yudao.framework.sms.core.client.SmsClient;
@@ -17,14 +20,15 @@ import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory; @@ -17,14 +20,15 @@ import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
17 import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult; 20 import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult;
18 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO; 21 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsTemplateRespDTO;
19 import com.google.common.annotations.VisibleForTesting; 22 import com.google.common.annotations.VisibleForTesting;
  23 +import com.google.common.collect.ImmutableMap;
20 import lombok.extern.slf4j.Slf4j; 24 import lombok.extern.slf4j.Slf4j;
  25 +import org.springframework.scheduling.annotation.Scheduled;
21 import org.springframework.stereotype.Service; 26 import org.springframework.stereotype.Service;
22 import org.springframework.util.Assert; 27 import org.springframework.util.Assert;
23 28
  29 +import javax.annotation.PostConstruct;
24 import javax.annotation.Resource; 30 import javax.annotation.Resource;
25 -import java.util.Collection;  
26 -import java.util.List;  
27 -import java.util.Objects; 31 +import java.util.*;
28 import java.util.regex.Pattern; 32 import java.util.regex.Pattern;
29 33
30 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; 34 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
@@ -41,6 +45,12 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU @@ -41,6 +45,12 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
41 public class SmsTemplateServiceImpl implements SmsTemplateService { 45 public class SmsTemplateServiceImpl implements SmsTemplateService {
42 46
43 /** 47 /**
  48 + * 定时执行 {@link #schedulePeriodicRefresh()} 的周期
  49 + * 因为已经通过 Redis Pub/Sub 机制,所以频率不需要高
  50 + */
  51 + private static final long SCHEDULER_PERIOD = 5 * 60 * 1000L;
  52 +
  53 + /**
44 * 正则表达式,匹配 {} 中的变量 54 * 正则表达式,匹配 {} 中的变量
45 */ 55 */
46 private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}"); 56 private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}");
@@ -57,6 +67,72 @@ public class SmsTemplateServiceImpl implements SmsTemplateService { @@ -57,6 +67,72 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
57 @Resource 67 @Resource
58 private SmsProducer smsProducer; 68 private SmsProducer smsProducer;
59 69
  70 + /**
  71 + * 短信模板缓存
  72 + * key:短信模板编码 {@link SysSmsTemplateDO#getCode()}
  73 + *
  74 + * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向
  75 + */
  76 + private volatile Map<String, SysSmsTemplateDO> smsTemplateCache;
  77 + /**
  78 + * 缓存短信模板的最大更新时间,用于后续的增量轮询,判断是否有更新
  79 + */
  80 + private volatile Date maxUpdateTime;
  81 +
  82 + @Override
  83 + @PostConstruct
  84 + public void initLocalCache() {
  85 + // 获取短信模板列表,如果有更新
  86 + List<SysSmsTemplateDO> smsTemplateList = this.loadSmsTemplateIfUpdate(maxUpdateTime);
  87 + if (CollUtil.isEmpty(smsTemplateList)) {
  88 + return;
  89 + }
  90 +
  91 + // 写入缓存
  92 + ImmutableMap.Builder<String, SysSmsTemplateDO> builder = ImmutableMap.builder();
  93 + smsTemplateList.forEach(sysSmsTemplateDO -> builder.put(sysSmsTemplateDO.getCode(), sysSmsTemplateDO));
  94 + smsTemplateCache = builder.build();
  95 + assert smsTemplateList.size() > 0; // 断言,避免告警
  96 + maxUpdateTime = smsTemplateList.stream().max(Comparator.comparing(BaseDO::getUpdateTime)).get().getUpdateTime();
  97 + log.info("[initLocalCache][初始化 SmsTemplate 数量为 {}]", smsTemplateList.size());
  98 + }
  99 +
  100 + /**
  101 + * 如果短信模板发生变化,从数据库中获取最新的全量短信模板。
  102 + * 如果未发生变化,则返回空
  103 + *
  104 + * @param maxUpdateTime 当前短信模板的最大更新时间
  105 + * @return 短信模板列表
  106 + */
  107 + private List<SysSmsTemplateDO> loadSmsTemplateIfUpdate(Date maxUpdateTime) {
  108 + // 第一步,判断是否要更新。
  109 + if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
  110 + log.info("[loadSmsTemplateIfUpdate][首次加载全量短信模板]");
  111 + } else { // 判断数据库中是否有更新的短信模板
  112 + if (smsTemplateMapper.selectExistsByUpdateTimeAfter(maxUpdateTime) == null) {
  113 + return null;
  114 + }
  115 + log.info("[loadSmsTemplateIfUpdate][增量加载全量短信模板]");
  116 + }
  117 + // 第二步,如果有更新,则从数据库加载所有短信模板
  118 + return smsTemplateMapper.selectList();
  119 + }
  120 +
  121 + @Scheduled(fixedDelay = SCHEDULER_PERIOD, initialDelay = SCHEDULER_PERIOD)
  122 + public void schedulePeriodicRefresh() {
  123 + initLocalCache();
  124 + }
  125 +
  126 + @Override
  127 + public SysSmsTemplateDO getSmsTemplateByCodeFromCache(String code) {
  128 + return smsTemplateCache.get(code);
  129 + }
  130 +
  131 + @Override
  132 + public String formatSmsTemplateContent(String content, Map<String, Object> params) {
  133 + return StrUtil.format(content, params);
  134 + }
  135 +
60 @Override 136 @Override
61 public SysSmsTemplateDO getSmsTemplateByCode(String code) { 137 public SysSmsTemplateDO getSmsTemplateByCode(String code) {
62 return smsTemplateMapper.selectByCode(code); 138 return smsTemplateMapper.selectByCode(code);
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/SysSmsCoreService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SysSmsSendService.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms; 1 +package cn.iocoder.yudao.module.system.service.sms;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage; 3 +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
4 4
5 import java.util.List; 5 import java.util.List;
6 import java.util.Map; 6 import java.util.Map;
7 7
8 /** 8 /**
9 - * 短信 Service Core 接口  
10 - *  
11 - * 接入方,通过调用 send 开头的方法,创建发送短信的任务到 MQ 中  
12 - * 后续,yudao-admin-server 监听 MQ,执行真正的短信发送逻辑 9 + * 短信 Service 发送接口
13 * 10 *
14 * @author 芋道源码 11 * @author 芋道源码
15 */ 12 */
16 -public interface SysSmsCoreService { 13 +public interface SysSmsSendService {
17 14
18 /** 15 /**
19 * 发送单条短信给后台用户 16 * 发送单条短信给后台用户
@@ -49,7 +46,7 @@ public interface SysSmsCoreService { @@ -49,7 +46,7 @@ public interface SysSmsCoreService {
49 void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType, 46 void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType,
50 String templateCode, Map<String, Object> templateParams); 47 String templateCode, Map<String, Object> templateParams);
51 48
52 - void doSendSms(SysSmsSendMessage message); 49 + void doSendSms(SmsSendMessage message);
53 50
54 /** 51 /**
55 * 接收短信的接收结果 52 * 接收短信的接收结果
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/impl/SysSmsCoreServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SysSmsSendServiceImpl.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms.impl; 1 +package cn.iocoder.yudao.module.system.service.sms;
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.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;  
8 -import cn.iocoder.yudao.coreservice.modules.system.mq.producer.sms.SysSmsCoreProducer;  
9 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsCoreService;  
10 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsLogCoreService;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.SysSmsTemplateCoreService;  
12 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
  6 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  7 +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
13 import cn.iocoder.yudao.framework.common.core.KeyValue; 8 import cn.iocoder.yudao.framework.common.core.KeyValue;
14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 9 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
15 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 10 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
@@ -18,7 +13,10 @@ import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory; @@ -18,7 +13,10 @@ import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
18 import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult; 13 import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult;
19 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsReceiveRespDTO; 14 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsReceiveRespDTO;
20 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsSendRespDTO; 15 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsSendRespDTO;
  16 +import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
  17 +import cn.iocoder.yudao.module.system.service.user.UserService;
21 import com.google.common.annotations.VisibleForTesting; 18 import com.google.common.annotations.VisibleForTesting;
  19 +import org.springframework.beans.factory.annotation.Autowired;
22 import org.springframework.stereotype.Service; 20 import org.springframework.stereotype.Service;
23 import org.springframework.util.Assert; 21 import org.springframework.util.Assert;
24 22
@@ -27,35 +25,36 @@ import java.util.List; @@ -27,35 +25,36 @@ import java.util.List;
27 import java.util.Map; 25 import java.util.Map;
28 import java.util.stream.Collectors; 26 import java.util.stream.Collectors;
29 27
30 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.*; 28 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.*;
31 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
32 30
33 /** 31 /**
34 - * 短信 Service Core 实现 32 + * 短信 Service 发送的实现
35 * 33 *
36 * @author 芋道源码 34 * @author 芋道源码
37 */ 35 */
38 @Service 36 @Service
39 -public class SysSmsCoreServiceImpl implements SysSmsCoreService { 37 +public class SysSmsSendServiceImpl implements SysSmsSendService {
40 38
  39 + @Autowired
  40 + @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
  41 + private UserService userService;
41 @Resource 42 @Resource
42 - private SysUserCoreService sysUserCoreService; 43 + private SmsTemplateService smsTemplateService;
43 @Resource 44 @Resource
44 - private SysSmsTemplateCoreService smsTemplateCoreService;  
45 - @Resource  
46 - private SysSmsLogCoreService smsLogCoreService; 45 + private SmsLogService smsLogService;
47 46
48 @Resource 47 @Resource
49 private SmsClientFactory smsClientFactory; 48 private SmsClientFactory smsClientFactory;
50 49
51 @Resource 50 @Resource
52 - private SysSmsCoreProducer smsCoreProducer; 51 + private SmsProducer smsProducer;
53 52
54 @Override 53 @Override
55 public Long sendSingleSmsToAdmin(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) { 54 public Long sendSingleSmsToAdmin(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) {
56 // 如果 mobile 为空,则加载用户编号对应的手机号 55 // 如果 mobile 为空,则加载用户编号对应的手机号
57 if (StrUtil.isEmpty(mobile)) { 56 if (StrUtil.isEmpty(mobile)) {
58 - SysUserDO user = sysUserCoreService.getUser(userId); 57 + UserDO user = userService.getUser(userId);
59 if (user != null) { 58 if (user != null) {
60 mobile = user.getMobile(); 59 mobile = user.getMobile();
61 } 60 }
@@ -90,12 +89,12 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService { @@ -90,12 +89,12 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
90 89
91 // 创建发送日志 90 // 创建发送日志
92 Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus()); // 如果模板被禁用,则不发送短信,只记录日志 91 Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus()); // 如果模板被禁用,则不发送短信,只记录日志
93 - String content = smsTemplateCoreService.formatSmsTemplateContent(template.getContent(), templateParams);  
94 - Long sendLogId = smsLogCoreService.createSmsLog(mobile, userId, userType, isSend, template, content, templateParams); 92 + String content = smsTemplateService.formatSmsTemplateContent(template.getContent(), templateParams);
  93 + Long sendLogId = smsLogService.createSmsLog(mobile, userId, userType, isSend, template, content, templateParams);
95 94
96 // 发送 MQ 消息,异步执行发送短信 95 // 发送 MQ 消息,异步执行发送短信
97 if (isSend) { 96 if (isSend) {
98 - smsCoreProducer.sendSmsSendMessage(sendLogId, mobile, template.getChannelId(), 97 + smsProducer.sendSmsSendMessage(sendLogId, mobile, template.getChannelId(),
99 template.getApiTemplateId(), newTemplateParams); 98 template.getApiTemplateId(), newTemplateParams);
100 } 99 }
101 return sendLogId; 100 return sendLogId;
@@ -110,7 +109,7 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService { @@ -110,7 +109,7 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
110 @VisibleForTesting 109 @VisibleForTesting
111 public SysSmsTemplateDO checkSmsTemplateValid(String templateCode) { 110 public SysSmsTemplateDO checkSmsTemplateValid(String templateCode) {
112 // 获得短信模板。考虑到效率,从缓存中获取 111 // 获得短信模板。考虑到效率,从缓存中获取
113 - SysSmsTemplateDO template = smsTemplateCoreService.getSmsTemplateByCodeFromCache(templateCode); 112 + SysSmsTemplateDO template = smsTemplateService.getSmsTemplateByCodeFromCache(templateCode);
114 // 短信模板不存在 113 // 短信模板不存在
115 if (template == null) { 114 if (template == null) {
116 throw exception(SMS_SEND_TEMPLATE_NOT_EXISTS); 115 throw exception(SMS_SEND_TEMPLATE_NOT_EXISTS);
@@ -146,16 +145,15 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService { @@ -146,16 +145,15 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
146 return mobile; 145 return mobile;
147 } 146 }
148 147
149 -  
150 @Override 148 @Override
151 - public void doSendSms(SysSmsSendMessage message) { 149 + public void doSendSms(SmsSendMessage message) {
152 // 获得渠道对应的 SmsClient 客户端 150 // 获得渠道对应的 SmsClient 客户端
153 SmsClient smsClient = smsClientFactory.getSmsClient(message.getChannelId()); 151 SmsClient smsClient = smsClientFactory.getSmsClient(message.getChannelId());
154 Assert.notNull(smsClient, String.format("短信客户端(%d) 不存在", message.getChannelId())); 152 Assert.notNull(smsClient, String.format("短信客户端(%d) 不存在", message.getChannelId()));
155 // 发送短信 153 // 发送短信
156 SmsCommonResult<SmsSendRespDTO> sendResult = smsClient.sendSms(message.getLogId(), message.getMobile(), 154 SmsCommonResult<SmsSendRespDTO> sendResult = smsClient.sendSms(message.getLogId(), message.getMobile(),
157 message.getApiTemplateId(), message.getTemplateParams()); 155 message.getApiTemplateId(), message.getTemplateParams());
158 - smsLogCoreService.updateSmsSendResult(message.getLogId(), sendResult.getCode(), sendResult.getMsg(), 156 + smsLogService.updateSmsSendResult(message.getLogId(), sendResult.getCode(), sendResult.getMsg(),
159 sendResult.getApiCode(), sendResult.getApiMsg(), sendResult.getApiRequestId(), 157 sendResult.getApiCode(), sendResult.getApiMsg(), sendResult.getApiRequestId(),
160 sendResult.getData() != null ? sendResult.getData().getSerialNo() : null); 158 sendResult.getData() != null ? sendResult.getData().getSerialNo() : null);
161 } 159 }
@@ -171,7 +169,7 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService { @@ -171,7 +169,7 @@ public class SysSmsCoreServiceImpl implements SysSmsCoreService {
171 return; 169 return;
172 } 170 }
173 // 更新短信日志的接收结果. 因为量一般不大,所以先使用 for 循环更新 171 // 更新短信日志的接收结果. 因为量一般不大,所以先使用 for 循环更新
174 - receiveResults.forEach(result -> smsLogCoreService.updateSmsReceiveResult(result.getLogId(), 172 + receiveResults.forEach(result -> smsLogService.updateSmsReceiveResult(result.getLogId(),
175 result.getSuccess(), result.getReceiveTime(), result.getErrorCode(), result.getErrorCode())); 173 result.getSuccess(), result.getReceiveTime(), result.getErrorCode(), result.getErrorCode()));
176 } 174 }
177 175
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/social/SysSocialCoreService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.social; 1 +package cn.iocoder.yudao.module.system.service.social;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
  5 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
6 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 6 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
7 import cn.iocoder.yudao.framework.common.exception.ServiceException; 7 import cn.iocoder.yudao.framework.common.exception.ServiceException;
8 import me.zhyd.oauth.model.AuthUser; 8 import me.zhyd.oauth.model.AuthUser;
@@ -11,16 +11,16 @@ import javax.validation.constraints.NotNull; @@ -11,16 +11,16 @@ import javax.validation.constraints.NotNull;
11 import java.util.List; 11 import java.util.List;
12 12
13 /** 13 /**
14 - * 社交 Service 接口,例如说社交平台的授权登录 14 + * 社交用户 Service 接口,例如说社交平台的授权登录
15 * 15 *
16 * @author 芋道源码 16 * @author 芋道源码
17 */ 17 */
18 -public interface SysSocialCoreService { 18 +public interface SocialUserService {
19 19
20 /** 20 /**
21 * 获得社交平台的授权 URL 21 * 获得社交平台的授权 URL
22 * 22 *
23 - * @param type 社交平台的类型 {@link SysSocialTypeEnum} 23 + * @param type 社交平台的类型 {@link SocialTypeEnum}
24 * @param redirectUri 重定向 URL 24 * @param redirectUri 重定向 URL
25 * @return 社交平台的授权 URL 25 * @return 社交平台的授权 URL
26 */ 26 */
@@ -30,7 +30,7 @@ public interface SysSocialCoreService { @@ -30,7 +30,7 @@ public interface SysSocialCoreService {
30 * 获得授权的用户 30 * 获得授权的用户
31 * 如果授权失败,则会抛出 {@link ServiceException} 异常 31 * 如果授权失败,则会抛出 {@link ServiceException} 异常
32 * 32 *
33 - * @param type 社交平台的类型 {@link SysSocialTypeEnum} 33 + * @param type 社交平台的类型 {@link SocialTypeEnum}
34 * @param code 授权码 34 * @param code 授权码
35 * @param state state 35 * @param state state
36 * @return 授权用户 36 * @return 授权用户
@@ -46,7 +46,7 @@ public interface SysSocialCoreService { @@ -46,7 +46,7 @@ public interface SysSocialCoreService {
46 * 获得 unionId 对应的某个社交平台的“所有”社交用户 46 * 获得 unionId 对应的某个社交平台的“所有”社交用户
47 * 注意,这里的“所有”,指的是类似【微信】平台,包括了小程序、公众号、PC 网站,他们的 unionId 是一致的 47 * 注意,这里的“所有”,指的是类似【微信】平台,包括了小程序、公众号、PC 网站,他们的 unionId 是一致的
48 * 48 *
49 - * @param type 社交平台的类型 {@link SysSocialTypeEnum} 49 + * @param type 社交平台的类型 {@link SocialTypeEnum}
50 * @param unionId 社交平台的 unionId 50 * @param unionId 社交平台的 unionId
51 * @return 社交用户列表 51 * @return 社交用户列表
52 * @param userTypeEnum 全局用户类型 52 * @param userTypeEnum 全局用户类型
@@ -66,7 +66,7 @@ public interface SysSocialCoreService { @@ -66,7 +66,7 @@ public interface SysSocialCoreService {
66 * 绑定社交用户 66 * 绑定社交用户
67 * 67 *
68 * @param userId 用户编号 68 * @param userId 用户编号
69 - * @param type 社交平台的类型 {@link SysSocialTypeEnum} 69 + * @param type 社交平台的类型 {@link SocialTypeEnum}
70 * @param authUser 授权用户 70 * @param authUser 授权用户
71 * @param userTypeEnum 全局用户类型 71 * @param userTypeEnum 全局用户类型
72 */ 72 */
@@ -76,7 +76,7 @@ public interface SysSocialCoreService { @@ -76,7 +76,7 @@ public interface SysSocialCoreService {
76 * 取消绑定社交用户 76 * 取消绑定社交用户
77 * 77 *
78 * @param userId 用户编号 78 * @param userId 用户编号
79 - * @param type 社交平台的类型 {@link SysSocialTypeEnum} 79 + * @param type 社交平台的类型 {@link SocialTypeEnum}
80 * @param unionId 社交平台的 unionId 80 * @param unionId 社交平台的 unionId
81 * @param userTypeEnum 全局用户类型 81 * @param userTypeEnum 全局用户类型
82 */ 82 */
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/social/impl/SysSocialCoreServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.social.impl; 1 +package cn.iocoder.yudao.module.system.service.social;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.social.SysSocialUserCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.redis.social.SysSocialAuthUserRedisDAO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
8 -import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
  5 +import cn.iocoder.yudao.module.system.dal.mysql.social.SysSocialUserMapper;
  6 +import cn.iocoder.yudao.module.system.dal.redis.social.SocialAuthUserRedisDAO;
  7 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 8 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 9 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
11 import cn.iocoder.yudao.framework.common.util.http.HttpUtils; 10 import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
@@ -25,34 +24,34 @@ import javax.annotation.Resource; @@ -25,34 +24,34 @@ import javax.annotation.Resource;
25 import java.util.List; 24 import java.util.List;
26 import java.util.Objects; 25 import java.util.Objects;
27 26
28 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.SOCIAL_AUTH_FAILURE;  
29 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.SOCIAL_UNBIND_NOT_SELF; 27 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.SOCIAL_AUTH_FAILURE;
  28 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.SOCIAL_UNBIND_NOT_SELF;
30 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
31 import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; 30 import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
32 31
33 /** 32 /**
34 - * 社交 Service 实现类 33 + * 社交用户 Service 实现类
35 * 34 *
36 * @author 芋道源码 35 * @author 芋道源码
37 */ 36 */
38 @Service 37 @Service
39 @Validated 38 @Validated
40 @Slf4j 39 @Slf4j
41 -public class SysSocialCoreServiceImpl implements SysSocialCoreService { 40 +public class SocialUserServiceImpl implements SocialUserService {
42 41
43 @Resource 42 @Resource
44 private AuthRequestFactory authRequestFactory; 43 private AuthRequestFactory authRequestFactory;
45 44
46 @Resource 45 @Resource
47 - private SysSocialAuthUserRedisDAO authSocialUserRedisDAO; 46 + private SocialAuthUserRedisDAO authSocialUserRedisDAO;
48 47
49 @Resource 48 @Resource
50 - private SysSocialUserCoreMapper socialUserMapper; 49 + private SysSocialUserMapper socialUserMapper;
51 50
52 @Override 51 @Override
53 public String getAuthorizeUrl(Integer type, String redirectUri) { 52 public String getAuthorizeUrl(Integer type, String redirectUri) {
54 // 获得对应的 AuthRequest 实现 53 // 获得对应的 AuthRequest 实现
55 - AuthRequest authRequest = authRequestFactory.get(SysSocialTypeEnum.valueOfType(type).getSource()); 54 + AuthRequest authRequest = authRequestFactory.get(SocialTypeEnum.valueOfType(type).getSource());
56 // 生成跳转地址 55 // 生成跳转地址
57 String authorizeUri = authRequest.authorize(AuthStateUtils.createState()); 56 String authorizeUri = authRequest.authorize(AuthStateUtils.createState());
58 return HttpUtils.replaceUrlQuery(authorizeUri, "redirect_uri", redirectUri); 57 return HttpUtils.replaceUrlQuery(authorizeUri, "redirect_uri", redirectUri);
@@ -76,7 +75,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService { @@ -76,7 +75,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService {
76 75
77 @Override 76 @Override
78 public List<SysSocialUserDO> getAllSocialUserList(Integer type, String unionId,UserTypeEnum userTypeEnum) { 77 public List<SysSocialUserDO> getAllSocialUserList(Integer type, String unionId,UserTypeEnum userTypeEnum) {
79 - List<Integer> types = SysSocialTypeEnum.getRelationTypes(type); 78 + List<Integer> types = SocialTypeEnum.getRelationTypes(type);
80 return socialUserMapper.selectListByTypeAndUnionId(userTypeEnum.getValue(), types, unionId); 79 return socialUserMapper.selectListByTypeAndUnionId(userTypeEnum.getValue(), types, unionId);
81 } 80 }
82 81
@@ -141,7 +140,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService { @@ -141,7 +140,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService {
141 140
142 @VisibleForTesting 141 @VisibleForTesting
143 public void unbindOldSocialUser(Long userId, Integer type, String newUnionId, UserTypeEnum userTypeEnum) { 142 public void unbindOldSocialUser(Long userId, Integer type, String newUnionId, UserTypeEnum userTypeEnum) {
144 - List<Integer> types = SysSocialTypeEnum.getRelationTypes(type); 143 + List<Integer> types = SocialTypeEnum.getRelationTypes(type);
145 List<SysSocialUserDO> oldSocialUsers = socialUserMapper.selectListByTypeAndUserId( 144 List<SysSocialUserDO> oldSocialUsers = socialUserMapper.selectListByTypeAndUserId(
146 userTypeEnum.getValue(), types, userId); 145 userTypeEnum.getValue(), types, userId);
147 // 如果新老的 unionId 是一致的,说明无需解绑 146 // 如果新老的 unionId 是一致的,说明无需解绑
@@ -161,7 +160,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService { @@ -161,7 +160,7 @@ public class SysSocialCoreServiceImpl implements SysSocialCoreService {
161 * @return 授权的用户 160 * @return 授权的用户
162 */ 161 */
163 private AuthUser getAuthUser0(Integer type, AuthCallback authCallback) { 162 private AuthUser getAuthUser0(Integer type, AuthCallback authCallback) {
164 - AuthRequest authRequest = authRequestFactory.get(SysSocialTypeEnum.valueOfType(type).getSource()); 163 + AuthRequest authRequest = authRequestFactory.get(SocialTypeEnum.valueOfType(type).getSource());
165 AuthResponse<?> authResponse = authRequest.login(authCallback); 164 AuthResponse<?> authResponse = authRequest.login(authCallback);
166 log.info("[getAuthUser0][请求社交平台 type({}) request({}) response({})]", type, toJsonString(authCallback), 165 log.info("[getAuthUser0][请求社交平台 type({}) request({}) response({})]", type, toJsonString(authCallback),
167 toJsonString(authResponse)); 166 toJsonString(authResponse));
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/tenant/SysTenantCoreService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/tenant/SysTenantCoreService.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.tenant; 1 +package cn.iocoder.yudao.module.system.service.tenant;
2 2
3 import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkService; 3 import cn.iocoder.yudao.framework.tenant.core.service.TenantFrameworkService;
4 4
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantService.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantCreateReq @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantCreateReq
4 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 9
10 import javax.validation.Valid; 10 import javax.validation.Valid;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO
6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO;
7 import cn.iocoder.yudao.module.system.convert.tenant.TenantConvert; 7 import cn.iocoder.yudao.module.system.convert.tenant.TenantConvert;
8 import cn.iocoder.yudao.module.system.dal.mysql.tenant.SysTenantMapper; 8 import cn.iocoder.yudao.module.system.dal.mysql.tenant.SysTenantMapper;
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 import org.springframework.stereotype.Service; 11 import org.springframework.stereotype.Service;
12 import org.springframework.validation.annotation.Validated; 12 import org.springframework.validation.annotation.Validated;
yudao-core-service/src/main/java/cn/iocoder/yudao/coreservice/modules/system/service/tenant/impl/SysTenantCoreServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/tenant/impl/SysTenantCoreServiceImpl.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.tenant.impl; 1 +package cn.iocoder.yudao.module.system.service.tenant.impl;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.tenant.SysTenantCoreMapper;  
5 -import cn.iocoder.yudao.coreservice.modules.system.service.tenant.SysTenantCoreService; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
  4 +import cn.iocoder.yudao.module.system.dal.mysql.tenant.SysTenantCoreMapper;
  5 +import cn.iocoder.yudao.module.system.service.tenant.SysTenantCoreService;
6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
7 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
8 8
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/user/UserService.java
1 package cn.iocoder.yudao.module.system.service.user; 1 package cn.iocoder.yudao.module.system.service.user;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
3 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 7 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
8 10
9 import java.io.InputStream; 11 import java.io.InputStream;
10 import java.util.*; 12 import java.util.*;
@@ -92,7 +94,7 @@ public interface UserService { @@ -92,7 +94,7 @@ public interface UserService {
92 * @param username 用户名 94 * @param username 用户名
93 * @return 用户对象信息 95 * @return 用户对象信息
94 */ 96 */
95 - SysUserDO getUserByUsername(String username); 97 + UserDO getUserByUsername(String username);
96 98
97 /** 99 /**
98 * 获得用户分页列表 100 * 获得用户分页列表
@@ -100,25 +102,69 @@ public interface UserService { @@ -100,25 +102,69 @@ public interface UserService {
100 * @param reqVO 分页条件 102 * @param reqVO 分页条件
101 * @return 分页列表 103 * @return 分页列表
102 */ 104 */
103 - PageResult<SysUserDO> getUserPage(UserPageReqVO reqVO); 105 + PageResult<UserDO> getUserPage(UserPageReqVO reqVO);
104 106
105 /** 107 /**
106 - * 获得用户 108 + * 通过用户 ID 查询用户
107 * 109 *
108 - * @param id 用户编号  
109 - * @return 用户 110 + * @param id 用户ID
  111 + * @return 用户对象信息
  112 + */
  113 + UserDO getUser(Long id);
  114 +
  115 + /**
  116 + * 获得指定部门的用户数组
  117 + *
  118 + * @param deptIds 部门数组
  119 + * @return 用户数组
110 */ 120 */
111 - SysUserDO getUser(Long id); 121 + List<UserDO> getUsersByDeptIds(Collection<Long> deptIds);
  122 +
  123 + /**
  124 + * 获得指定岗位的用户数组
  125 + *
  126 + * @param postIds 岗位数组
  127 + * @return 用户数组
  128 + */
  129 + List<UserDO> getUsersByPostIds(Collection<Long> postIds);
112 130
113 /** 131 /**
114 * 获得用户列表 132 * 获得用户列表
115 * 133 *
116 - * @param reqVO 列表请求 134 + * @param ids 用户编号数组
117 * @return 用户列表 135 * @return 用户列表
118 */ 136 */
119 - List<SysUserDO> getUsers(UserExportReqVO reqVO); 137 + List<UserDO> getUsers(Collection<Long> ids);
  138 +
  139 + /**
  140 + * 校验用户们是否有效。如下情况,视为无效:
  141 + * 1. 用户编号不存在
  142 + * 2. 用户被禁用
  143 + *
  144 + * @param ids 用户编号数组
  145 + */
  146 + void validUsers(Set<Long> ids);
120 147
  148 + /**
  149 + * 获得用户 Map
  150 + *
  151 + * @param ids 用户编号数组
  152 + * @return 用户 Map
  153 + */
  154 + default Map<Long, UserDO> getUserMap(Collection<Long> ids) {
  155 + if (CollUtil.isEmpty(ids)) {
  156 + return new HashMap<>();
  157 + }
  158 + return CollectionUtils.convertMap(getUsers(ids), UserDO::getId);
  159 + }
121 160
  161 + /**
  162 + * 获得用户列表
  163 + *
  164 + * @param reqVO 列表请求
  165 + * @return 用户列表
  166 + */
  167 + List<UserDO> getUsers(UserExportReqVO reqVO);
122 168
123 /** 169 /**
124 * 获得用户列表,基于昵称模糊匹配 170 * 获得用户列表,基于昵称模糊匹配
@@ -126,7 +172,7 @@ public interface UserService { @@ -126,7 +172,7 @@ public interface UserService {
126 * @param nickname 昵称 172 * @param nickname 昵称
127 * @return 用户列表 173 * @return 用户列表
128 */ 174 */
129 - List<SysUserDO> getUsersByNickname(String nickname); 175 + List<UserDO> getUsersByNickname(String nickname);
130 176
131 /** 177 /**
132 * 获得用户列表,基于用户账号模糊匹配 178 * 获得用户列表,基于用户账号模糊匹配
@@ -134,7 +180,7 @@ public interface UserService { @@ -134,7 +180,7 @@ public interface UserService {
134 * @param username 用户账号 180 * @param username 用户账号
135 * @return 用户列表 181 * @return 用户列表
136 */ 182 */
137 - List<SysUserDO> getUsersByUsername(String username); 183 + List<UserDO> getUsersByUsername(String username);
138 184
139 /** 185 /**
140 * 批量导入用户 186 * 批量导入用户
@@ -151,6 +197,6 @@ public interface UserService { @@ -151,6 +197,6 @@ public interface UserService {
151 * @param status 状态 197 * @param status 状态
152 * @return 用户们 198 * @return 用户们
153 */ 199 */
154 - List<SysUserDO> getUsersByStatus(Integer status); 200 + List<UserDO> getUsersByStatus(Integer status);
155 201
156 } 202 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/user/UserServiceImpl.java
@@ -4,23 +4,23 @@ import cn.hutool.core.collection.CollUtil; @@ -4,23 +4,23 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.io.IoUtil; 4 import cn.hutool.core.io.IoUtil;
5 import cn.hutool.core.util.IdUtil; 5 import cn.hutool.core.util.IdUtil;
6 import cn.hutool.core.util.StrUtil; 6 import cn.hutool.core.util.StrUtil;
  7 +import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;
  8 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  9 +import cn.iocoder.yudao.framework.common.exception.ServiceException;
  10 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  11 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
7 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; 12 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; 13 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
9 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 14 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
10 import cn.iocoder.yudao.module.system.convert.user.UserConvert; 15 import cn.iocoder.yudao.module.system.convert.user.UserConvert;
11 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
12 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;  
13 -import cn.iocoder.yudao.module.system.dal.mysql.user.SysUserMapper; 16 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  17 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
  18 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  19 +import cn.iocoder.yudao.module.system.dal.mysql.user.UserMapper;
14 import cn.iocoder.yudao.module.system.service.dept.DeptService; 20 import cn.iocoder.yudao.module.system.service.dept.DeptService;
15 import cn.iocoder.yudao.module.system.service.dept.PostService; 21 import cn.iocoder.yudao.module.system.service.dept.PostService;
  22 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
16 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 23 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
17 -import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;  
18 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
19 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService;  
20 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
21 -import cn.iocoder.yudao.framework.common.exception.ServiceException;  
22 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
23 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
24 import com.google.common.annotations.VisibleForTesting; 24 import com.google.common.annotations.VisibleForTesting;
25 import lombok.extern.slf4j.Slf4j; 25 import lombok.extern.slf4j.Slf4j;
26 import org.springframework.beans.factory.annotation.Value; 26 import org.springframework.beans.factory.annotation.Value;
@@ -32,8 +32,10 @@ import javax.annotation.Resource; @@ -32,8 +32,10 @@ import javax.annotation.Resource;
32 import java.io.InputStream; 32 import java.io.InputStream;
33 import java.util.*; 33 import java.util.*;
34 34
35 -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;  
36 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 35 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  36 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
  37 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.USER_IS_DISABLE;
  38 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.USER_NOT_EXISTS;
37 39
38 /** 40 /**
39 * 管理员用户 Service 实现类 41 * 管理员用户 Service 实现类
@@ -48,7 +50,7 @@ public class UserServiceImpl implements UserService { @@ -48,7 +50,7 @@ public class UserServiceImpl implements UserService {
48 private String userInitPassword; 50 private String userInitPassword;
49 51
50 @Resource(name = "sysUserMapper") // userMapper 存在重名 52 @Resource(name = "sysUserMapper") // userMapper 存在重名
51 - private SysUserMapper userMapper; 53 + private UserMapper userMapper;
52 54
53 @Resource 55 @Resource
54 private DeptService deptService; 56 private DeptService deptService;
@@ -70,7 +72,7 @@ public class UserServiceImpl implements UserService { @@ -70,7 +72,7 @@ public class UserServiceImpl implements UserService {
70 this.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), 72 this.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(),
71 reqVO.getDeptId(), reqVO.getPostIds()); 73 reqVO.getDeptId(), reqVO.getPostIds());
72 // 插入用户 74 // 插入用户
73 - SysUserDO user = UserConvert.INSTANCE.convert(reqVO); 75 + UserDO user = UserConvert.INSTANCE.convert(reqVO);
74 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 76 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
75 user.setPassword(passwordEncoder.encode(reqVO.getPassword())); // 加密密码 77 user.setPassword(passwordEncoder.encode(reqVO.getPassword())); // 加密密码
76 userMapper.insert(user); 78 userMapper.insert(user);
@@ -83,13 +85,13 @@ public class UserServiceImpl implements UserService { @@ -83,13 +85,13 @@ public class UserServiceImpl implements UserService {
83 this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), 85 this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(),
84 reqVO.getDeptId(), reqVO.getPostIds()); 86 reqVO.getDeptId(), reqVO.getPostIds());
85 // 更新用户 87 // 更新用户
86 - SysUserDO updateObj = UserConvert.INSTANCE.convert(reqVO); 88 + UserDO updateObj = UserConvert.INSTANCE.convert(reqVO);
87 userMapper.updateById(updateObj); 89 userMapper.updateById(updateObj);
88 } 90 }
89 91
90 @Override 92 @Override
91 public void updateUserLogin(Long id, String loginIp) { 93 public void updateUserLogin(Long id, String loginIp) {
92 - userMapper.updateById(new SysUserDO().setId(id).setLoginIp(loginIp).setLoginDate(new Date())); 94 + userMapper.updateById(new UserDO().setId(id).setLoginIp(loginIp).setLoginDate(new Date()));
93 } 95 }
94 96
95 @Override 97 @Override
@@ -107,7 +109,7 @@ public class UserServiceImpl implements UserService { @@ -107,7 +109,7 @@ public class UserServiceImpl implements UserService {
107 // 校验旧密码密码 109 // 校验旧密码密码
108 this.checkOldPassword(id, reqVO.getOldPassword()); 110 this.checkOldPassword(id, reqVO.getOldPassword());
109 // 执行更新 111 // 执行更新
110 - SysUserDO updateObj = new SysUserDO().setId(id); 112 + UserDO updateObj = new UserDO().setId(id);
111 updateObj.setPassword(passwordEncoder.encode(reqVO.getNewPassword())); // 加密密码 113 updateObj.setPassword(passwordEncoder.encode(reqVO.getNewPassword())); // 加密密码
112 userMapper.updateById(updateObj); 114 userMapper.updateById(updateObj);
113 } 115 }
@@ -118,7 +120,7 @@ public class UserServiceImpl implements UserService { @@ -118,7 +120,7 @@ public class UserServiceImpl implements UserService {
118 // 存储文件 120 // 存储文件
119 String avatar = fileService.createFile(IdUtil.fastUUID(), IoUtil.readBytes(avatarFile)); 121 String avatar = fileService.createFile(IdUtil.fastUUID(), IoUtil.readBytes(avatarFile));
120 // 更新路径 122 // 更新路径
121 - SysUserDO sysUserDO = new SysUserDO(); 123 + UserDO sysUserDO = new UserDO();
122 sysUserDO.setId(id); 124 sysUserDO.setId(id);
123 sysUserDO.setAvatar(avatar); 125 sysUserDO.setAvatar(avatar);
124 userMapper.updateById(sysUserDO); 126 userMapper.updateById(sysUserDO);
@@ -130,7 +132,7 @@ public class UserServiceImpl implements UserService { @@ -130,7 +132,7 @@ public class UserServiceImpl implements UserService {
130 // 校验用户存在 132 // 校验用户存在
131 this.checkUserExists(id); 133 this.checkUserExists(id);
132 // 更新密码 134 // 更新密码
133 - SysUserDO updateObj = new SysUserDO(); 135 + UserDO updateObj = new UserDO();
134 updateObj.setId(id); 136 updateObj.setId(id);
135 updateObj.setPassword(passwordEncoder.encode(password)); // 加密密码 137 updateObj.setPassword(passwordEncoder.encode(password)); // 加密密码
136 userMapper.updateById(updateObj); 138 userMapper.updateById(updateObj);
@@ -141,7 +143,7 @@ public class UserServiceImpl implements UserService { @@ -141,7 +143,7 @@ public class UserServiceImpl implements UserService {
141 // 校验用户存在 143 // 校验用户存在
142 this.checkUserExists(id); 144 this.checkUserExists(id);
143 // 更新状态 145 // 更新状态
144 - SysUserDO updateObj = new SysUserDO(); 146 + UserDO updateObj = new UserDO();
145 updateObj.setId(id); 147 updateObj.setId(id);
146 updateObj.setStatus(status); 148 updateObj.setStatus(status);
147 userMapper.updateById(updateObj); 149 userMapper.updateById(updateObj);
@@ -158,33 +160,80 @@ public class UserServiceImpl implements UserService { @@ -158,33 +160,80 @@ public class UserServiceImpl implements UserService {
158 } 160 }
159 161
160 @Override 162 @Override
161 - public SysUserDO getUserByUsername(String username) { 163 + public UserDO getUserByUsername(String username) {
162 return userMapper.selectByUsername(username); 164 return userMapper.selectByUsername(username);
163 } 165 }
164 166
165 @Override 167 @Override
166 - public PageResult<SysUserDO> getUserPage(UserPageReqVO reqVO) { 168 + public PageResult<UserDO> getUserPage(UserPageReqVO reqVO) {
167 return userMapper.selectPage(reqVO, this.getDeptCondition(reqVO.getDeptId())); 169 return userMapper.selectPage(reqVO, this.getDeptCondition(reqVO.getDeptId()));
168 } 170 }
169 171
170 @Override 172 @Override
171 - public SysUserDO getUser(Long id) { 173 + public UserDO getUser(Long id) {
172 return userMapper.selectById(id); 174 return userMapper.selectById(id);
173 } 175 }
174 176
175 @Override 177 @Override
176 - public List<SysUserDO> getUsers(UserExportReqVO reqVO) {  
177 - return userMapper.selectList(reqVO, this.getDeptCondition(reqVO.getDeptId())); 178 + public List<UserDO> getUsersByDeptIds(Collection<Long> deptIds) {
  179 + if (CollUtil.isEmpty(deptIds)) {
  180 + return Collections.emptyList();
  181 + }
  182 + return userMapper.selectListByDeptIds(deptIds);
178 } 183 }
179 184
  185 + @Override
  186 + public List<UserDO> getUsersByPostIds(Collection<Long> postIds) {
  187 + if (CollUtil.isEmpty(postIds)) {
  188 + return Collections.emptyList();
  189 + }
  190 + // 过滤不符合条件的
  191 + // TODO 芋艿:暂时只能内存过滤。解决方案:1、新建一个关联表;2、基于 where + 函数;3、json 字段,适合 mysql 8+ 版本
  192 + List<UserDO> users = userMapper.selectList();
  193 + users.removeIf(user -> !CollUtil.containsAny(user.getPostIds(), postIds));
  194 + return users;
  195 + }
  196 +
  197 + @Override
  198 + public List<UserDO> getUsers(Collection<Long> ids) {
  199 + if (CollUtil.isEmpty(ids)) {
  200 + return Collections.emptyList();
  201 + }
  202 + return userMapper.selectBatchIds(ids);
  203 + }
  204 +
  205 + @Override
  206 + public void validUsers(Set<Long> ids) {
  207 + if (CollUtil.isEmpty(ids)) {
  208 + return;
  209 + }
  210 + // 获得岗位信息
  211 + List<UserDO> users = userMapper.selectBatchIds(ids);
  212 + Map<Long, UserDO> userMap = CollectionUtils.convertMap(users, UserDO::getId);
  213 + // 校验
  214 + ids.forEach(id -> {
  215 + UserDO user = userMap.get(id);
  216 + if (user == null) {
  217 + throw exception(USER_NOT_EXISTS);
  218 + }
  219 + if (!CommonStatusEnum.ENABLE.getStatus().equals(user.getStatus())) {
  220 + throw exception(USER_IS_DISABLE, user.getNickname());
  221 + }
  222 + });
  223 + }
  224 +
  225 + @Override
  226 + public List<UserDO> getUsers(UserExportReqVO reqVO) {
  227 + return userMapper.selectList(reqVO, this.getDeptCondition(reqVO.getDeptId()));
  228 + }
180 229
181 @Override 230 @Override
182 - public List<SysUserDO> getUsersByNickname(String nickname) { 231 + public List<UserDO> getUsersByNickname(String nickname) {
183 return userMapper.selectListByNickname(nickname); 232 return userMapper.selectListByNickname(nickname);
184 } 233 }
185 234
186 @Override 235 @Override
187 - public List<SysUserDO> getUsersByUsername(String username) { 236 + public List<UserDO> getUsersByUsername(String username) {
188 return userMapper.selectListByUsername(username); 237 return userMapper.selectListByUsername(username);
189 } 238 }
190 239
@@ -225,7 +274,7 @@ public class UserServiceImpl implements UserService { @@ -225,7 +274,7 @@ public class UserServiceImpl implements UserService {
225 if (id == null) { 274 if (id == null) {
226 return; 275 return;
227 } 276 }
228 - SysUserDO user = userMapper.selectById(id); 277 + UserDO user = userMapper.selectById(id);
229 if (user == null) { 278 if (user == null) {
230 throw exception(USER_NOT_EXISTS); 279 throw exception(USER_NOT_EXISTS);
231 } 280 }
@@ -236,7 +285,7 @@ public class UserServiceImpl implements UserService { @@ -236,7 +285,7 @@ public class UserServiceImpl implements UserService {
236 if (StrUtil.isBlank(username)) { 285 if (StrUtil.isBlank(username)) {
237 return; 286 return;
238 } 287 }
239 - SysUserDO user = userMapper.selectByUsername(username); 288 + UserDO user = userMapper.selectByUsername(username);
240 if (user == null) { 289 if (user == null) {
241 return; 290 return;
242 } 291 }
@@ -254,7 +303,7 @@ public class UserServiceImpl implements UserService { @@ -254,7 +303,7 @@ public class UserServiceImpl implements UserService {
254 if (StrUtil.isBlank(email)) { 303 if (StrUtil.isBlank(email)) {
255 return; 304 return;
256 } 305 }
257 - SysUserDO user = userMapper.selectByEmail(email); 306 + UserDO user = userMapper.selectByEmail(email);
258 if (user == null) { 307 if (user == null) {
259 return; 308 return;
260 } 309 }
@@ -272,7 +321,7 @@ public class UserServiceImpl implements UserService { @@ -272,7 +321,7 @@ public class UserServiceImpl implements UserService {
272 if (StrUtil.isBlank(mobile)) { 321 if (StrUtil.isBlank(mobile)) {
273 return; 322 return;
274 } 323 }
275 - SysUserDO user = userMapper.selectByMobile(mobile); 324 + UserDO user = userMapper.selectByMobile(mobile);
276 if (user == null) { 325 if (user == null) {
277 return; 326 return;
278 } 327 }
@@ -328,7 +377,7 @@ public class UserServiceImpl implements UserService { @@ -328,7 +377,7 @@ public class UserServiceImpl implements UserService {
328 */ 377 */
329 @VisibleForTesting 378 @VisibleForTesting
330 public void checkOldPassword(Long id, String oldPassword) { 379 public void checkOldPassword(Long id, String oldPassword) {
331 - SysUserDO user = userMapper.selectById(id); 380 + UserDO user = userMapper.selectById(id);
332 if (user == null) { 381 if (user == null) {
333 throw exception(USER_NOT_EXISTS); 382 throw exception(USER_NOT_EXISTS);
334 } 383 }
@@ -355,7 +404,7 @@ public class UserServiceImpl implements UserService { @@ -355,7 +404,7 @@ public class UserServiceImpl implements UserService {
355 return; 404 return;
356 } 405 }
357 // 判断如果不存在,在进行插入 406 // 判断如果不存在,在进行插入
358 - SysUserDO existUser = userMapper.selectByUsername(importUser.getUsername()); 407 + UserDO existUser = userMapper.selectByUsername(importUser.getUsername());
359 if (existUser == null) { 408 if (existUser == null) {
360 userMapper.insert(UserConvert.INSTANCE.convert(importUser) 409 userMapper.insert(UserConvert.INSTANCE.convert(importUser)
361 .setPassword(passwordEncoder.encode(userInitPassword))); // 设置默认密码 410 .setPassword(passwordEncoder.encode(userInitPassword))); // 设置默认密码
@@ -367,7 +416,7 @@ public class UserServiceImpl implements UserService { @@ -367,7 +416,7 @@ public class UserServiceImpl implements UserService {
367 respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg()); 416 respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg());
368 return; 417 return;
369 } 418 }
370 - SysUserDO updateUser = UserConvert.INSTANCE.convert(importUser); 419 + UserDO updateUser = UserConvert.INSTANCE.convert(importUser);
371 updateUser.setId(existUser.getId()); 420 updateUser.setId(existUser.getId());
372 userMapper.updateById(updateUser); 421 userMapper.updateById(updateUser);
373 respVO.getUpdateUsernames().add(importUser.getUsername()); 422 respVO.getUpdateUsernames().add(importUser.getUsername());
@@ -376,7 +425,7 @@ public class UserServiceImpl implements UserService { @@ -376,7 +425,7 @@ public class UserServiceImpl implements UserService {
376 } 425 }
377 426
378 @Override 427 @Override
379 - public List<SysUserDO> getUsersByStatus(Integer status) { 428 + public List<UserDO> getUsersByStatus(Integer status) {
380 return userMapper.selectListByStatus(status); 429 return userMapper.selectListByStatus(status);
381 } 430 }
382 431
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImplTest.java
@@ -5,13 +5,11 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; @@ -5,13 +5,11 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
5 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 5 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
6 import cn.iocoder.yudao.module.system.service.common.CaptchaService; 6 import cn.iocoder.yudao.module.system.service.common.CaptchaService;
7 import cn.iocoder.yudao.module.system.service.dept.PostService; 7 import cn.iocoder.yudao.module.system.service.dept.PostService;
  8 +import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
8 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 9 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
9 import cn.iocoder.yudao.module.system.service.user.UserService; 10 import cn.iocoder.yudao.module.system.service.user.UserService;
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.auth.SysUserSessionCoreService;  
12 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService;  
13 -import cn.iocoder.yudao.coreservice.modules.system.service.social.SysSocialCoreService;  
14 -import cn.iocoder.yudao.coreservice.modules.system.service.user.SysUserCoreService; 11 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  12 +import cn.iocoder.yudao.module.system.service.social.SocialUserService;
15 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 13 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
16 import cn.iocoder.yudao.framework.security.core.LoginUser; 14 import cn.iocoder.yudao.framework.security.core.LoginUser;
17 import cn.iocoder.yudao.framework.test.core.util.AssertUtils; 15 import cn.iocoder.yudao.framework.test.core.util.AssertUtils;
@@ -48,8 +46,6 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -48,8 +46,6 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
48 @MockBean 46 @MockBean
49 private UserService userService; 47 private UserService userService;
50 @MockBean 48 @MockBean
51 - private SysUserCoreService userCoreService;  
52 - @MockBean  
53 private PermissionService permissionService; 49 private PermissionService permissionService;
54 @MockBean 50 @MockBean
55 private AuthenticationManager authenticationManager; 51 private AuthenticationManager authenticationManager;
@@ -58,11 +54,11 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -58,11 +54,11 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
58 @MockBean 54 @MockBean
59 private CaptchaService captchaService; 55 private CaptchaService captchaService;
60 @MockBean 56 @MockBean
61 - private SysLoginLogCoreService loginLogCoreService; 57 + private LoginLogService loginLogService;
62 @MockBean 58 @MockBean
63 - private SysUserSessionCoreService userSessionCoreService; 59 + private UserSessionService userSessionService;
64 @MockBean 60 @MockBean
65 - private SysSocialCoreService socialService; 61 + private SocialUserService socialService;
66 @MockBean 62 @MockBean
67 private PostService postService; 63 private PostService postService;
68 64
@@ -76,7 +72,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -76,7 +72,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
76 // 准备参数 72 // 准备参数
77 String username = randomString(); 73 String username = randomString();
78 // mock 方法 74 // mock 方法
79 - SysUserDO user = randomPojo(SysUserDO.class, o -> o.setUsername(username)); 75 + UserDO user = randomPojo(UserDO.class, o -> o.setUsername(username));
80 when(userService.getUserByUsername(eq(username))).thenReturn(user); 76 when(userService.getUserByUsername(eq(username))).thenReturn(user);
81 77
82 // 调用 78 // 调用
@@ -102,8 +98,8 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -102,8 +98,8 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
102 // 准备参数 98 // 准备参数
103 Long userId = randomLongId(); 99 Long userId = randomLongId();
104 // mock 方法 01 100 // mock 方法 01
105 - SysUserDO user = randomPojo(SysUserDO.class, o -> o.setId(userId));  
106 - when(userCoreService.getUser(eq(userId))).thenReturn(user); 101 + UserDO user = randomPojo(UserDO.class, o -> o.setId(userId));
  102 + when(userService.getUser(eq(userId))).thenReturn(user);
107 // mock 方法 02 103 // mock 方法 02
108 Set<Long> roleIds = randomSet(Long.class); 104 Set<Long> roleIds = randomSet(Long.class);
109 when(permissionService.getUserRoleIds(eq(userId), eq(singleton(CommonStatusEnum.ENABLE.getStatus())))) 105 when(permissionService.getUserRoleIds(eq(userId), eq(singleton(CommonStatusEnum.ENABLE.getStatus()))))
@@ -137,7 +133,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -137,7 +133,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
137 // 调用, 并断言异常 133 // 调用, 并断言异常
138 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_NOT_FOUND); 134 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_NOT_FOUND);
139 // 校验调用参数 135 // 校验调用参数
140 - verify(loginLogCoreService, times(1)).createLoginLog( 136 + verify(loginLogService, times(1)).createLoginLog(
141 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) 137 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType())
142 && o.getResult().equals(LoginResultEnum.CAPTCHA_NOT_FOUND.getResult())) 138 && o.getResult().equals(LoginResultEnum.CAPTCHA_NOT_FOUND.getResult()))
143 ); 139 );
@@ -155,7 +151,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -155,7 +151,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
155 // 调用, 并断言异常 151 // 调用, 并断言异常
156 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_CODE_ERROR); 152 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_CAPTCHA_CODE_ERROR);
157 // 校验调用参数 153 // 校验调用参数
158 - verify(loginLogCoreService, times(1)).createLoginLog( 154 + verify(loginLogService, times(1)).createLoginLog(
159 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) 155 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType())
160 && o.getResult().equals(LoginResultEnum.CAPTCHA_CODE_ERROR.getResult())) 156 && o.getResult().equals(LoginResultEnum.CAPTCHA_CODE_ERROR.getResult()))
161 ); 157 );
@@ -176,7 +172,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -176,7 +172,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
176 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_BAD_CREDENTIALS); 172 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_BAD_CREDENTIALS);
177 // 校验调用参数 173 // 校验调用参数
178 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 174 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
179 - verify(loginLogCoreService, times(1)).createLoginLog( 175 + verify(loginLogService, times(1)).createLoginLog(
180 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) 176 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType())
181 && o.getResult().equals(LoginResultEnum.BAD_CREDENTIALS.getResult())) 177 && o.getResult().equals(LoginResultEnum.BAD_CREDENTIALS.getResult()))
182 ); 178 );
@@ -197,7 +193,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -197,7 +193,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
197 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_USER_DISABLED); 193 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_USER_DISABLED);
198 // 校验调用参数 194 // 校验调用参数
199 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 195 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
200 - verify(loginLogCoreService, times(1)).createLoginLog( 196 + verify(loginLogService, times(1)).createLoginLog(
201 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) 197 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType())
202 && o.getResult().equals(LoginResultEnum.USER_DISABLED.getResult())) 198 && o.getResult().equals(LoginResultEnum.USER_DISABLED.getResult()))
203 ); 199 );
@@ -218,7 +214,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -218,7 +214,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
218 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_FAIL_UNKNOWN); 214 assertServiceException(() -> authService.login(reqVO, userIp, userAgent), AUTH_LOGIN_FAIL_UNKNOWN);
219 // 校验调用参数 215 // 校验调用参数
220 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 216 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
221 - verify(loginLogCoreService, times(1)).createLoginLog( 217 + verify(loginLogService, times(1)).createLoginLog(
222 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) 218 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType())
223 && o.getResult().equals(LoginResultEnum.UNKNOWN_ERROR.getResult())) 219 && o.getResult().equals(LoginResultEnum.UNKNOWN_ERROR.getResult()))
224 ); 220 );
@@ -246,13 +242,13 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -246,13 +242,13 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
246 // mock 获得 User 拥有的角色编号数组 242 // mock 获得 User 拥有的角色编号数组
247 when(permissionService.getUserRoleIds(userId, singleton(CommonStatusEnum.ENABLE.getStatus()))).thenReturn(userRoleIds); 243 when(permissionService.getUserRoleIds(userId, singleton(CommonStatusEnum.ENABLE.getStatus()))).thenReturn(userRoleIds);
248 // mock 缓存登录用户到 Redis 244 // mock 缓存登录用户到 Redis
249 - when(userSessionCoreService.createUserSession(loginUser, userIp, userAgent)).thenReturn(sessionId); 245 + when(userSessionService.createUserSession(loginUser, userIp, userAgent)).thenReturn(sessionId);
250 // 调用, 并断言异常 246 // 调用, 并断言异常
251 String login = authService.login(reqVO, userIp, userAgent); 247 String login = authService.login(reqVO, userIp, userAgent);
252 assertEquals(sessionId, login); 248 assertEquals(sessionId, login);
253 // 校验调用参数 249 // 校验调用参数
254 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid()); 250 verify(captchaService, times(1)).deleteCaptchaCode(reqVO.getUuid());
255 - verify(loginLogCoreService, times(1)).createLoginLog( 251 + verify(loginLogService, times(1)).createLoginLog(
256 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType()) 252 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGIN_USERNAME.getType())
257 && o.getResult().equals(LoginResultEnum.SUCCESS.getResult())) 253 && o.getResult().equals(LoginResultEnum.SUCCESS.getResult()))
258 ); 254 );
@@ -264,12 +260,12 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -264,12 +260,12 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
264 String token = randomString(); 260 String token = randomString();
265 LoginUser loginUser = randomPojo(LoginUser.class); 261 LoginUser loginUser = randomPojo(LoginUser.class);
266 // mock 262 // mock
267 - when(userSessionCoreService.getLoginUser(token)).thenReturn(loginUser); 263 + when(userSessionService.getLoginUser(token)).thenReturn(loginUser);
268 // 调用 264 // 调用
269 authService.logout(token); 265 authService.logout(token);
270 // 校验调用参数 266 // 校验调用参数
271 - verify(userSessionCoreService, times(1)).deleteUserSession(token);  
272 - verify(loginLogCoreService, times(1)).createLoginLog( 267 + verify(userSessionService, times(1)).deleteUserSession(token);
  268 + verify(loginLogService, times(1)).createLoginLog(
273 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGOUT_SELF.getType()) 269 argThat(o -> o.getLogType().equals(LoginLogTypeEnum.LOGOUT_SELF.getType())
274 && o.getResult().equals(LoginResultEnum.SUCCESS.getResult())) 270 && o.getResult().equals(LoginResultEnum.SUCCESS.getResult()))
275 ); 271 );
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImplTest.java
1 package cn.iocoder.yudao.module.system.service.auth; 1 package cn.iocoder.yudao.module.system.service.auth;
2 2
3 import cn.hutool.core.date.DateUtil; 3 import cn.hutool.core.date.DateUtil;
  4 +import cn.iocoder.yudao.framework.security.config.SecurityProperties;
  5 +import cn.iocoder.yudao.framework.security.core.LoginUser;
4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO;
5 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper; 7 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper;
  8 +import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
6 import cn.iocoder.yudao.module.system.service.user.UserService; 9 import cn.iocoder.yudao.module.system.service.user.UserService;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.auth.SysUserSessionDO;  
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.redis.auth.SysLoginUserCoreRedisDAO;  
10 -import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;  
11 -import cn.iocoder.yudao.coreservice.modules.system.service.logger.SysLoginLogCoreService; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
  11 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  12 +import cn.iocoder.yudao.module.system.dal.redis.auth.LoginUserRedisDAO;
  13 +import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 15 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
14 import cn.iocoder.yudao.framework.common.pojo.PageResult; 16 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -19,17 +21,19 @@ import org.springframework.boot.test.mock.mockito.MockBean; @@ -19,17 +21,19 @@ import org.springframework.boot.test.mock.mockito.MockBean;
19 import org.springframework.context.annotation.Import; 21 import org.springframework.context.annotation.Import;
20 22
21 import javax.annotation.Resource; 23 import javax.annotation.Resource;
  24 +import java.time.Duration;
22 import java.util.Date; 25 import java.util.Date;
23 import java.util.List; 26 import java.util.List;
24 import java.util.stream.Collectors; 27 import java.util.stream.Collectors;
25 import java.util.stream.Stream; 28 import java.util.stream.Stream;
26 29
27 import static cn.hutool.core.util.RandomUtil.randomEle; 30 import static cn.hutool.core.util.RandomUtil.randomEle;
  31 +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.addTime;
28 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; 32 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
29 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;  
30 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; 33 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
31 import static java.util.Collections.singletonList; 34 import static java.util.Collections.singletonList;
32 -import static org.junit.jupiter.api.Assertions.assertEquals; 35 +import static org.junit.jupiter.api.Assertions.*;
  36 +import static org.junit.jupiter.api.Assertions.assertNull;
33 import static org.mockito.ArgumentMatchers.eq; 37 import static org.mockito.ArgumentMatchers.eq;
34 import static org.mockito.Mockito.when; 38 import static org.mockito.Mockito.when;
35 39
@@ -38,7 +42,7 @@ import static org.mockito.Mockito.when; @@ -38,7 +42,7 @@ import static org.mockito.Mockito.when;
38 * 42 *
39 * @author Lyon 43 * @author Lyon
40 */ 44 */
41 -@Import({UserSessionServiceImpl.class}) 45 +@Import({UserSessionServiceImpl.class, LoginUserRedisDAO.class})
42 public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { 46 public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest {
43 47
44 @Resource 48 @Resource
@@ -50,14 +54,17 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { @@ -50,14 +54,17 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest {
50 @MockBean 54 @MockBean
51 private UserService userService; 55 private UserService userService;
52 @MockBean 56 @MockBean
53 - private SysLoginLogCoreService loginLogCoreService; 57 + private LoginLogService loginLogService;
54 @MockBean 58 @MockBean
55 - private SysLoginUserCoreRedisDAO loginUserCoreRedisDAO; 59 + private LoginUserRedisDAO loginUserRedisDAO;
  60 +
  61 + @MockBean
  62 + private SecurityProperties securityProperties;
56 63
57 @Test 64 @Test
58 public void testGetUserSessionPage_success() { 65 public void testGetUserSessionPage_success() {
59 // mock 数据 66 // mock 数据
60 - SysUserDO dbUser = randomPojo(SysUserDO.class, o -> { 67 + UserDO dbUser = randomPojo(UserDO.class, o -> {
61 o.setSex(randomEle(SysSexEnum.values()).getSex()); 68 o.setSex(randomEle(SysSexEnum.values()).getSex());
62 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 69 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
63 }); 70 });
@@ -124,4 +131,89 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { @@ -124,4 +131,89 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest {
124 assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime"); 131 assertPojoEquals(sessionDO, userSessionDOS.get(0), "updateTime");
125 } 132 }
126 133
  134 + @Test
  135 + public void testCreateUserSession_success() {
  136 + // 准备参数
  137 + String userIp = randomString();
  138 + String userAgent = randomString();
  139 + LoginUser loginUser = randomPojo(LoginUser.class, o -> {
  140 + o.setUserType(randomEle(UserTypeEnum.values()).getValue());
  141 + o.setTenantId(0L); // 租户设置为 0,因为暂未启用多租户组件
  142 + });
  143 + // mock 方法
  144 + when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));
  145 +
  146 + // 调用
  147 + String sessionId = userSessionService.createUserSession(loginUser, userIp, userAgent);
  148 + // 校验 SysUserSessionDO 记录
  149 + SysUserSessionDO userSessionDO = userSessionMapper.selectById(sessionId);
  150 + assertPojoEquals(loginUser, userSessionDO, "id", "updateTime");
  151 + assertEquals(sessionId, userSessionDO.getId());
  152 + assertEquals(userIp, userSessionDO.getUserIp());
  153 + assertEquals(userAgent, userSessionDO.getUserAgent());
  154 + // 校验 LoginUser 缓存
  155 + LoginUser redisLoginUser = loginUserRedisDAO.get(sessionId);
  156 + assertPojoEquals(loginUser, redisLoginUser, "username", "password");
  157 + }
  158 +
  159 + @Test
  160 + public void testCreateRefreshUserSession_success() {
  161 + // 准备参数
  162 + String sessionId = randomString();
  163 + String userIp = randomString();
  164 + String userAgent = randomString();
  165 + long timeLong = randomLongId();
  166 + String userName = randomString();
  167 + Date date = randomDate();
  168 + LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setUserType(randomEle(UserTypeEnum.values()).getValue()));
  169 + // mock 方法
  170 + when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));
  171 + // mock 数据
  172 + loginUser.setUpdateTime(date);
  173 + loginUserRedisDAO.set(sessionId, loginUser);
  174 + SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)
  175 + .userId(loginUser.getId()).userType(loginUser.getUserType())
  176 + .userIp(userIp).userAgent(userAgent).username(userName)
  177 + .sessionTimeout(addTime(Duration.ofMillis(timeLong)))
  178 + .build();
  179 + userSessionMapper.insert(userSession);
  180 +
  181 + // 调用
  182 + userSessionService.refreshUserSession(sessionId, loginUser);
  183 + // 校验 LoginUser 缓存
  184 + LoginUser redisLoginUser = loginUserRedisDAO.get(sessionId);
  185 + assertNotEquals(redisLoginUser.getUpdateTime(), date);
  186 + // 校验 SysUserSessionDO 记录
  187 + SysUserSessionDO updateDO = userSessionMapper.selectById(sessionId);
  188 + assertEquals(updateDO.getUsername(), loginUser.getUsername());
  189 + assertNotEquals(updateDO.getUpdateTime(), userSession.getUpdateTime());
  190 + assertNotEquals(updateDO.getSessionTimeout(), addTime(Duration.ofMillis(timeLong)));
  191 + }
  192 +
  193 + @Test
  194 + public void testDeleteUserSession_success() {
  195 + // 准备参数
  196 + String sessionId = randomString();
  197 + String userIp = randomString();
  198 + String userAgent = randomString();
  199 + Long timeLong = randomLongId();
  200 + LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setUserType(randomEle(UserTypeEnum.values()).getValue()));
  201 + // mock 存入 Redis
  202 + when(securityProperties.getSessionTimeout()).thenReturn(Duration.ofDays(1));
  203 + // mock 数据
  204 + loginUserRedisDAO.set(sessionId, loginUser);
  205 + SysUserSessionDO userSession = SysUserSessionDO.builder().id(sessionId)
  206 + .userId(loginUser.getId()).userType(loginUser.getUserType())
  207 + .userIp(userIp).userAgent(userAgent).username(loginUser.getUsername())
  208 + .sessionTimeout(addTime(Duration.ofMillis(timeLong)))
  209 + .build();
  210 + userSessionMapper.insert(userSession);
  211 +
  212 + // 调用
  213 + userSessionService.deleteUserSession(sessionId);
  214 + // 校验数据不存在了
  215 + assertNull(loginUserRedisDAO.get(sessionId));
  216 + assertNull(userSessionMapper.selectById(sessionId));
  217 + }
  218 +
127 } 219 }
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceTest.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
8 import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptMapper; 8 import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptMapper;
9 import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum; 9 import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum;
10 import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer; 10 import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dept/PostServiceTest.java
1 package cn.iocoder.yudao.module.system.service.dept; 1 package cn.iocoder.yudao.module.system.service.dept;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/dict/DictDataServiceTest.java
1 package cn.iocoder.yudao.module.system.service.dict; 1 package cn.iocoder.yudao.module.system.service.dict;
2 2
3 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dict.SysDictDataDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.dict.SysDictDataDO;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dict.vo.data.DictDataCreateReqVO;
@@ -13,14 +13,17 @@ import cn.iocoder.yudao.module.system.mq.producer.dict.DictDataProducer; @@ -13,14 +13,17 @@ import cn.iocoder.yudao.module.system.mq.producer.dict.DictDataProducer;
13 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 13 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
14 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 14 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
15 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; 15 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest;
  16 +import com.google.common.collect.ImmutableTable;
16 import org.junit.jupiter.api.Test; 17 import org.junit.jupiter.api.Test;
17 import org.springframework.boot.test.mock.mockito.MockBean; 18 import org.springframework.boot.test.mock.mockito.MockBean;
18 import org.springframework.context.annotation.Import; 19 import org.springframework.context.annotation.Import;
19 20
20 import javax.annotation.Resource; 21 import javax.annotation.Resource;
  22 +import java.util.Date;
21 import java.util.List; 23 import java.util.List;
22 import java.util.function.Consumer; 24 import java.util.function.Consumer;
23 25
  26 +import static cn.hutool.core.bean.BeanUtil.getFieldValue;
24 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; 27 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
25 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; 28 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
26 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; 29 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
@@ -42,6 +45,37 @@ public class DictDataServiceTest extends BaseDbUnitTest { @@ -42,6 +45,37 @@ public class DictDataServiceTest extends BaseDbUnitTest {
42 @MockBean 45 @MockBean
43 private DictDataProducer dictDataProducer; 46 private DictDataProducer dictDataProducer;
44 47
  48 + /**
  49 + * 测试加载到新的字典数据的情况
  50 + */
  51 + @Test
  52 + @SuppressWarnings("unchecked")
  53 + public void testInitLocalCache() {
  54 + // mock 数据
  55 + SysDictDataDO dictData01 = randomDictDataDO();
  56 + dictDataMapper.insert(dictData01);
  57 + SysDictDataDO dictData02 = randomDictDataDO();
  58 + dictDataMapper.insert(dictData02);
  59 +
  60 + // 调用
  61 + dictDataService.initLocalCache();
  62 + // 断言 labelDictDataCache 缓存
  63 + ImmutableTable<String, String, SysDictDataDO> labelDictDataCache =
  64 + (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "labelDictDataCache");
  65 + assertEquals(2, labelDictDataCache.size());
  66 + assertPojoEquals(dictData01, labelDictDataCache.get(dictData01.getDictType(), dictData01.getLabel()));
  67 + assertPojoEquals(dictData02, labelDictDataCache.get(dictData02.getDictType(), dictData02.getLabel()));
  68 + // 断言 valueDictDataCache 缓存
  69 + ImmutableTable<String, String, SysDictDataDO> valueDictDataCache =
  70 + (ImmutableTable<String, String, SysDictDataDO>) getFieldValue(dictDataService, "valueDictDataCache");
  71 + assertEquals(2, valueDictDataCache.size());
  72 + assertPojoEquals(dictData01, valueDictDataCache.get(dictData01.getDictType(), dictData01.getValue()));
  73 + assertPojoEquals(dictData02, valueDictDataCache.get(dictData02.getDictType(), dictData02.getValue()));
  74 + // 断言 maxUpdateTime 缓存
  75 + Date maxUpdateTime = (Date) getFieldValue(dictDataService, "maxUpdateTime");
  76 + assertEquals(ObjectUtils.max(dictData01.getUpdateTime(), dictData02.getUpdateTime()), maxUpdateTime);
  77 + }
  78 +
45 @Test 79 @Test
46 public void testGetDictDataPage() { 80 public void testGetDictDataPage() {
47 // mock 数据 81 // mock 数据
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java
1 package cn.iocoder.yudao.module.system.service.logger; 1 package cn.iocoder.yudao.module.system.service.logger;
2 2
3 import cn.hutool.core.util.RandomUtil; 3 import cn.hutool.core.util.RandomUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.logger.SysLoginLogDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 7 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
@@ -12,6 +12,9 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; @@ -12,6 +12,9 @@ import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
12 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 12 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
13 import cn.iocoder.yudao.framework.test.core.util.RandomUtils; 13 import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
14 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 14 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
  15 +import cn.iocoder.yudao.module.system.enums.logger.SysLoginLogTypeEnum;
  16 +import cn.iocoder.yudao.module.system.enums.logger.SysLoginResultEnum;
  17 +import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO;
15 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; 18 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest;
16 import org.junit.jupiter.api.Test; 19 import org.junit.jupiter.api.Test;
17 import org.springframework.context.annotation.Import; 20 import org.springframework.context.annotation.Import;
@@ -19,6 +22,7 @@ import org.springframework.context.annotation.Import; @@ -19,6 +22,7 @@ import org.springframework.context.annotation.Import;
19 import javax.annotation.Resource; 22 import javax.annotation.Resource;
20 import java.util.List; 23 import java.util.List;
21 24
  25 +import static cn.hutool.core.util.RandomUtil.randomEle;
22 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; 26 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
23 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; 27 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
24 import static org.junit.jupiter.api.Assertions.assertEquals; 28 import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -27,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; @@ -27,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
27 public class LoginLogServiceImplTest extends BaseDbUnitTest { 31 public class LoginLogServiceImplTest extends BaseDbUnitTest {
28 32
29 @Resource 33 @Resource
30 - private LoginLogServiceImpl sysLoginLogService; 34 + private LoginLogServiceImpl loginLogService;
31 35
32 @Resource 36 @Resource
33 private LoginLogMapper loginLogMapper; 37 private LoginLogMapper loginLogMapper;
@@ -68,7 +72,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { @@ -68,7 +72,7 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
68 reqVO.setEndTime(buildTime(2021, 3, 7)); 72 reqVO.setEndTime(buildTime(2021, 3, 7));
69 73
70 // 调用service方法 74 // 调用service方法
71 - PageResult<SysLoginLogDO> pageResult = sysLoginLogService.getLoginLogPage(reqVO); 75 + PageResult<SysLoginLogDO> pageResult = loginLogService.getLoginLogPage(reqVO);
72 76
73 // 断言,只查到了一条符合条件的 77 // 断言,只查到了一条符合条件的
74 assertEquals(1, pageResult.getTotal()); 78 assertEquals(1, pageResult.getTotal());
@@ -114,10 +118,28 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { @@ -114,10 +118,28 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
114 118
115 119
116 // 调用service方法 120 // 调用service方法
117 - List<SysLoginLogDO> loginLogList = sysLoginLogService.getLoginLogList(reqVO); 121 + List<SysLoginLogDO> loginLogList = loginLogService.getLoginLogList(reqVO);
118 122
119 // 断言 123 // 断言
120 assertEquals(1, loginLogList.size()); 124 assertEquals(1, loginLogList.size());
121 assertPojoEquals(loginLogDO, loginLogList.get(0)); 125 assertPojoEquals(loginLogDO, loginLogList.get(0));
122 } 126 }
  127 +
  128 + @Test
  129 + public void testCreateLoginLog() {
  130 + LoginLogCreateReqDTO reqDTO = RandomUtils.randomPojo(LoginLogCreateReqDTO.class, vo -> {
  131 + // 指定随机的范围,避免超出范围入库失败
  132 + vo.setUserType(randomEle(UserTypeEnum.values()).getValue());
  133 + vo.setLogType(randomEle(SysLoginLogTypeEnum.values()).getType());
  134 + vo.setResult(randomEle(SysLoginResultEnum.values()).getResult());
  135 + vo.setTraceId(TracerUtils.getTraceId());
  136 + });
  137 +
  138 + // 调用
  139 + loginLogService.createLoginLog(reqDTO);
  140 + // 断言,忽略基本字段
  141 + SysLoginLogDO sysLoginLogDO = loginLogMapper.selectOne(null);
  142 + assertPojoEquals(reqDTO, sysLoginLogDO);
  143 + }
  144 +
123 } 145 }
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
@@ -6,8 +6,8 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper @@ -6,8 +6,8 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper
6 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
7 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; 7 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper;
8 import cn.iocoder.yudao.module.system.service.user.UserService; 8 import cn.iocoder.yudao.module.system.service.user.UserService;
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
10 -import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  10 +import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
11 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 11 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
12 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; 12 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
13 import cn.iocoder.yudao.framework.common.pojo.PageResult; 13 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -66,7 +66,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { @@ -66,7 +66,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
66 public void testGetOperateLogPage() { 66 public void testGetOperateLogPage() {
67 // 构造测试数据 67 // 构造测试数据
68 // 先构造用户 68 // 先构造用户
69 - SysUserDO user = RandomUtils.randomPojo(SysUserDO.class, o -> { 69 + UserDO user = RandomUtils.randomPojo(UserDO.class, o -> {
70 o.setNickname("wangkai"); 70 o.setNickname("wangkai");
71 o.setSex(SysSexEnum.MALE.getSex()); 71 o.setSex(SysSexEnum.MALE.getSex());
72 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 72 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
@@ -117,7 +117,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { @@ -117,7 +117,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
117 public void testGetOperateLogs() { 117 public void testGetOperateLogs() {
118 // 构造测试数据 118 // 构造测试数据
119 // 先构造用户 119 // 先构造用户
120 - SysUserDO user = RandomUtils.randomPojo(SysUserDO.class, o -> { 120 + UserDO user = RandomUtils.randomPojo(UserDO.class, o -> {
121 o.setNickname("wangkai"); 121 o.setNickname("wangkai");
122 o.setSex(SysSexEnum.MALE.getSex()); 122 o.setSex(SysSexEnum.MALE.getSex());
123 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 123 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java
1 package cn.iocoder.yudao.module.system.service.permission; 1 package cn.iocoder.yudao.module.system.service.permission;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  5 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
6 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysUserRoleDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;
8 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMenuMapper; 8 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMenuMapper;
9 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleMapper; 9 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleMapper;
10 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer; 10 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum; @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum;
7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCreateReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCreateReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
9 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO;
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.permission.SysRoleDO; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;
11 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMapper; 11 import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMapper;
12 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; 12 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum;
13 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer; 13 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO;
7 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsChannelMapper; 7 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsChannelMapper;
8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
10 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 10 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
11 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
12 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 12 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java
1 package cn.iocoder.yudao.module.system.service.sms; 1 package cn.iocoder.yudao.module.system.service.sms;
2 2
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
  4 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
6 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsLogMapper; 8 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsLogMapper;
7 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsLogDO;  
8 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsReceiveStatusEnum;  
9 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsSendStatusEnum;  
10 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsTemplateTypeEnum; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
  10 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum;
  11 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsSendStatusEnum;
  12 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsTemplateTypeEnum;
11 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
12 import cn.iocoder.yudao.framework.common.pojo.PageResult; 14 import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 15 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
@@ -17,16 +19,18 @@ import org.junit.jupiter.api.Test; @@ -17,16 +19,18 @@ import org.junit.jupiter.api.Test;
17 import org.springframework.context.annotation.Import; 19 import org.springframework.context.annotation.Import;
18 20
19 import javax.annotation.Resource; 21 import javax.annotation.Resource;
  22 +import java.util.Date;
20 import java.util.List; 23 import java.util.List;
21 import java.util.Map; 24 import java.util.Map;
22 import java.util.function.Consumer; 25 import java.util.function.Consumer;
23 26
  27 +import static cn.hutool.core.util.RandomUtil.randomBoolean;
24 import static cn.hutool.core.util.RandomUtil.randomEle; 28 import static cn.hutool.core.util.RandomUtil.randomEle;
25 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; 29 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
26 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; 30 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
27 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;  
28 -import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomString; 31 +import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
29 import static org.junit.jupiter.api.Assertions.assertEquals; 32 import static org.junit.jupiter.api.Assertions.assertEquals;
  33 +import static org.junit.jupiter.api.Assertions.assertNotNull;
30 34
31 @Import(SmsLogServiceImpl.class) 35 @Import(SmsLogServiceImpl.class)
32 public class SmsLogServiceTest extends BaseDbUnitTest { 36 public class SmsLogServiceTest extends BaseDbUnitTest {
@@ -130,6 +134,93 @@ public class SmsLogServiceTest extends BaseDbUnitTest { @@ -130,6 +134,93 @@ public class SmsLogServiceTest extends BaseDbUnitTest {
130 assertPojoEquals(dbSmsLog, list.get(0)); 134 assertPojoEquals(dbSmsLog, list.get(0));
131 } 135 }
132 136
  137 + @Test
  138 + public void testCreateSmsLog() {
  139 + // 准备参数
  140 + String mobile = randomString();
  141 + Long userId = randomLongId();
  142 + Integer userType = randomEle(UserTypeEnum.values()).getValue();
  143 + Boolean isSend = randomBoolean();
  144 + SysSmsTemplateDO templateDO = randomPojo(SysSmsTemplateDO.class,
  145 + o -> o.setType(randomEle(SysSmsTemplateTypeEnum.values()).getType()));
  146 + String templateContent = randomString();
  147 + Map<String, Object> templateParams = randomTemplateParams();
  148 + // mock 方法
  149 +
  150 + // 调用
  151 + Long logId = smsLogService.createSmsLog(mobile, userId, userType, isSend,
  152 + templateDO, templateContent, templateParams);
  153 + // 断言
  154 + SysSmsLogDO logDO = smsLogMapper.selectById(logId);
  155 + assertEquals(isSend ? SysSmsSendStatusEnum.INIT.getStatus() : SysSmsSendStatusEnum.IGNORE.getStatus(),
  156 + logDO.getSendStatus());
  157 + assertEquals(mobile, logDO.getMobile());
  158 + assertEquals(userType, logDO.getUserType());
  159 + assertEquals(userId, logDO.getUserId());
  160 + assertEquals(templateDO.getId(), logDO.getTemplateId());
  161 + assertEquals(templateDO.getCode(), logDO.getTemplateCode());
  162 + assertEquals(templateDO.getType(), logDO.getTemplateType());
  163 + assertEquals(templateDO.getChannelId(), logDO.getChannelId());
  164 + assertEquals(templateDO.getChannelCode(), logDO.getChannelCode());
  165 + assertEquals(templateContent, logDO.getTemplateContent());
  166 + assertEquals(templateParams, logDO.getTemplateParams());
  167 + assertEquals(SysSmsReceiveStatusEnum.INIT.getStatus(), logDO.getReceiveStatus());
  168 + }
  169 +
  170 + @Test
  171 + public void testUpdateSmsSendResult() {
  172 + // mock 数据
  173 + SysSmsLogDO dbSmsLog = randomSmsLogDO(
  174 + o -> o.setSendStatus(SysSmsSendStatusEnum.IGNORE.getStatus()));
  175 + smsLogMapper.insert(dbSmsLog);
  176 + // 准备参数
  177 + Long id = dbSmsLog.getId();
  178 + Integer sendCode = randomInteger();
  179 + String sendMsg = randomString();
  180 + String apiSendCode = randomString();
  181 + String apiSendMsg = randomString();
  182 + String apiRequestId = randomString();
  183 + String apiSerialNo = randomString();
  184 +
  185 + // 调用
  186 + smsLogService.updateSmsSendResult(id, sendCode, sendMsg,
  187 + apiSendCode, apiSendMsg, apiRequestId, apiSerialNo);
  188 + // 断言
  189 + dbSmsLog = smsLogMapper.selectById(id);
  190 + assertEquals(CommonResult.isSuccess(sendCode) ? SysSmsSendStatusEnum.SUCCESS.getStatus()
  191 + : SysSmsSendStatusEnum.FAILURE.getStatus(), dbSmsLog.getSendStatus());
  192 + assertNotNull(dbSmsLog.getSendTime());
  193 + assertEquals(sendMsg, dbSmsLog.getSendMsg());
  194 + assertEquals(apiSendCode, dbSmsLog.getApiSendCode());
  195 + assertEquals(apiSendMsg, dbSmsLog.getApiSendMsg());
  196 + assertEquals(apiRequestId, dbSmsLog.getApiRequestId());
  197 + assertEquals(apiSerialNo, dbSmsLog.getApiSerialNo());
  198 + }
  199 +
  200 + @Test
  201 + public void testUpdateSmsReceiveResult() {
  202 + // mock 数据
  203 + SysSmsLogDO dbSmsLog = randomSmsLogDO(
  204 + o -> o.setReceiveStatus(SysSmsReceiveStatusEnum.INIT.getStatus()));
  205 + smsLogMapper.insert(dbSmsLog);
  206 + // 准备参数
  207 + Long id = dbSmsLog.getId();
  208 + Boolean success = randomBoolean();
  209 + Date receiveTime = randomDate();
  210 + String apiReceiveCode = randomString();
  211 + String apiReceiveMsg = randomString();
  212 +
  213 + // 调用
  214 + smsLogService.updateSmsReceiveResult(id, success, receiveTime, apiReceiveCode, apiReceiveMsg);
  215 + // 断言
  216 + dbSmsLog = smsLogMapper.selectById(id);
  217 + assertEquals(success ? SysSmsReceiveStatusEnum.SUCCESS.getStatus()
  218 + : SysSmsReceiveStatusEnum.FAILURE.getStatus(), dbSmsLog.getReceiveStatus());
  219 + assertEquals(receiveTime, dbSmsLog.getReceiveTime());
  220 + assertEquals(apiReceiveCode, dbSmsLog.getApiReceiveCode());
  221 + assertEquals(apiReceiveMsg, dbSmsLog.getApiReceiveMsg());
  222 + }
  223 +
133 // ========== 随机对象 ========== 224 // ========== 随机对象 ==========
134 225
135 @SafeVarargs 226 @SafeVarargs
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java
@@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla @@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO;
7 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsTemplateMapper; 7 import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsTemplateMapper;
8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsChannelDO;  
10 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
11 -import cn.iocoder.yudao.coreservice.modules.system.enums.sms.SysSmsTemplateTypeEnum; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
  10 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
  11 +import cn.iocoder.yudao.module.system.enums.sms.SysSmsTemplateTypeEnum;
12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
13 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; 13 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
14 import cn.iocoder.yudao.framework.common.pojo.PageResult; 14 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -25,10 +25,14 @@ import org.springframework.boot.test.mock.mockito.MockBean; @@ -25,10 +25,14 @@ import org.springframework.boot.test.mock.mockito.MockBean;
25 import org.springframework.context.annotation.Import; 25 import org.springframework.context.annotation.Import;
26 26
27 import javax.annotation.Resource; 27 import javax.annotation.Resource;
  28 +import java.util.Date;
28 import java.util.List; 29 import java.util.List;
  30 +import java.util.Map;
29 import java.util.function.Consumer; 31 import java.util.function.Consumer;
30 32
  33 +import static cn.hutool.core.bean.BeanUtil.getFieldValue;
31 import static cn.hutool.core.util.RandomUtil.randomEle; 34 import static cn.hutool.core.util.RandomUtil.randomEle;
  35 +import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.max;
32 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; 36 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
33 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; 37 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
34 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; 38 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
@@ -57,6 +61,27 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { @@ -57,6 +61,27 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
57 private SmsProducer smsProducer; 61 private SmsProducer smsProducer;
58 62
59 @Test 63 @Test
  64 + @SuppressWarnings("unchecked")
  65 + void testInitLocalCache() {
  66 + // mock 数据
  67 + SysSmsTemplateDO smsTemplate01 = randomSmsTemplateDO();
  68 + smsTemplateMapper.insert(smsTemplate01);
  69 + SysSmsTemplateDO smsTemplate02 = randomSmsTemplateDO();
  70 + smsTemplateMapper.insert(smsTemplate02);
  71 +
  72 + // 调用
  73 + smsTemplateService.initLocalCache();
  74 + // 断言 deptCache 缓存
  75 + Map<String, SysSmsTemplateDO> smsTemplateCache = (Map<String, SysSmsTemplateDO>) getFieldValue(smsTemplateService, "smsTemplateCache");
  76 + assertEquals(2, smsTemplateCache.size());
  77 + assertPojoEquals(smsTemplate01, smsTemplateCache.get(smsTemplate01.getCode()));
  78 + assertPojoEquals(smsTemplate02, smsTemplateCache.get(smsTemplate02.getCode()));
  79 + // 断言 maxUpdateTime 缓存
  80 + Date maxUpdateTime = (Date) getFieldValue(smsTemplateService, "maxUpdateTime");
  81 + assertEquals(max(smsTemplate01.getUpdateTime(), smsTemplate02.getUpdateTime()), maxUpdateTime);
  82 + }
  83 +
  84 + @Test
60 public void testParseTemplateContentParams() { 85 public void testParseTemplateContentParams() {
61 // 准备参数 86 // 准备参数
62 String content = "正在进行登录操作{operation},您的验证码是{code}"; 87 String content = "正在进行登录操作{operation},您的验证码是{code}";
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/sms/SysSmsCoreServiceTest.java renamed to yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SysSmsSendServiceTest.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.sms; 1 +package cn.iocoder.yudao.module.system.service.sms;
2 2
3 import cn.hutool.core.map.MapUtil; 3 import cn.hutool.core.map.MapUtil;
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.sms.SysSmsTemplateDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.mq.message.sms.SysSmsSendMessage;  
6 -import cn.iocoder.yudao.coreservice.modules.system.mq.producer.sms.SysSmsCoreProducer;  
7 -import cn.iocoder.yudao.coreservice.modules.system.service.sms.impl.SysSmsCoreServiceImpl; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
  5 +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
  6 +import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
8 import cn.iocoder.yudao.framework.common.core.KeyValue; 7 import cn.iocoder.yudao.framework.common.core.KeyValue;
9 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 8 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
10 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
@@ -24,29 +23,24 @@ import java.util.List; @@ -24,29 +23,24 @@ import java.util.List;
24 import java.util.Map; 23 import java.util.Map;
25 24
26 import static cn.hutool.core.util.RandomUtil.randomEle; 25 import static cn.hutool.core.util.RandomUtil.randomEle;
27 -import static cn.iocoder.yudao.coreservice.modules.system.enums.SysErrorCodeConstants.*; 26 +import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.*;
28 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; 27 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
29 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; 28 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
30 import static org.junit.jupiter.api.Assertions.assertEquals; 29 import static org.junit.jupiter.api.Assertions.assertEquals;
31 import static org.mockito.ArgumentMatchers.eq; 30 import static org.mockito.ArgumentMatchers.eq;
32 import static org.mockito.Mockito.*; 31 import static org.mockito.Mockito.*;
33 32
34 -/**  
35 - * {@link SysSmsCoreService} 的单元测试类  
36 - *  
37 - * @author 芋道源码  
38 - */  
39 -public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { 33 +public class SysSmsSendServiceTest extends BaseMockitoUnitTest {
40 34
41 @InjectMocks 35 @InjectMocks
42 - private SysSmsCoreServiceImpl smsCoreService; 36 + private SysSmsSendServiceImpl smsService;
43 37
44 @Mock 38 @Mock
45 - private SysSmsTemplateCoreService smsTemplateCoreService; 39 + private SmsTemplateService smsTemplateService;
46 @Mock 40 @Mock
47 - private SysSmsLogCoreService smsLogCoreService; 41 + private SmsLogService smsLogService;
48 @Mock 42 @Mock
49 - private SysSmsCoreProducer smsCoreProducer; 43 + private SmsProducer smsProducer;
50 @Mock 44 @Mock
51 private SmsClientFactory smsClientFactory; 45 private SmsClientFactory smsClientFactory;
52 46
@@ -68,21 +62,21 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -68,21 +62,21 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
68 o.setContent("验证码为{code}, 操作为{op}"); 62 o.setContent("验证码为{code}, 操作为{op}");
69 o.setParams(Lists.newArrayList("code", "op")); 63 o.setParams(Lists.newArrayList("code", "op"));
70 }); 64 });
71 - when(smsTemplateCoreService.getSmsTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); 65 + when(smsTemplateService.getSmsTemplateByCodeFromCache(eq(templateCode))).thenReturn(template);
72 String content = randomString(); 66 String content = randomString();
73 - when(smsTemplateCoreService.formatSmsTemplateContent(eq(template.getContent()), eq(templateParams))) 67 + when(smsTemplateService.formatSmsTemplateContent(eq(template.getContent()), eq(templateParams)))
74 .thenReturn(content); 68 .thenReturn(content);
75 // mock SmsLogService 的方法 69 // mock SmsLogService 的方法
76 Long smsLogId = randomLongId(); 70 Long smsLogId = randomLongId();
77 - when(smsLogCoreService.createSmsLog(eq(mobile), eq(userId), eq(userType), eq(Boolean.TRUE), eq(template), 71 + when(smsLogService.createSmsLog(eq(mobile), eq(userId), eq(userType), eq(Boolean.TRUE), eq(template),
78 eq(content), eq(templateParams))).thenReturn(smsLogId); 72 eq(content), eq(templateParams))).thenReturn(smsLogId);
79 73
80 // 调用 74 // 调用
81 - Long resultSmsLogId = smsCoreService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); 75 + Long resultSmsLogId = smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams);
82 // 断言 76 // 断言
83 assertEquals(smsLogId, resultSmsLogId); 77 assertEquals(smsLogId, resultSmsLogId);
84 // 断言调用 78 // 断言调用
85 - verify(smsCoreProducer, times(1)).sendSmsSendMessage(eq(smsLogId), eq(mobile), 79 + verify(smsProducer, times(1)).sendSmsSendMessage(eq(smsLogId), eq(mobile),
86 eq(template.getChannelId()), eq(template.getApiTemplateId()), 80 eq(template.getChannelId()), eq(template.getApiTemplateId()),
87 eq(Lists.newArrayList(new KeyValue<>("code", "1234"), new KeyValue<>("op", "login")))); 81 eq(Lists.newArrayList(new KeyValue<>("code", "1234"), new KeyValue<>("op", "login"))));
88 } 82 }
@@ -105,21 +99,21 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -105,21 +99,21 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
105 o.setContent("验证码为{code}, 操作为{op}"); 99 o.setContent("验证码为{code}, 操作为{op}");
106 o.setParams(Lists.newArrayList("code", "op")); 100 o.setParams(Lists.newArrayList("code", "op"));
107 }); 101 });
108 - when(smsTemplateCoreService.getSmsTemplateByCodeFromCache(eq(templateCode))).thenReturn(template); 102 + when(smsTemplateService.getSmsTemplateByCodeFromCache(eq(templateCode))).thenReturn(template);
109 String content = randomString(); 103 String content = randomString();
110 - when(smsTemplateCoreService.formatSmsTemplateContent(eq(template.getContent()), eq(templateParams))) 104 + when(smsTemplateService.formatSmsTemplateContent(eq(template.getContent()), eq(templateParams)))
111 .thenReturn(content); 105 .thenReturn(content);
112 // mock SmsLogService 的方法 106 // mock SmsLogService 的方法
113 Long smsLogId = randomLongId(); 107 Long smsLogId = randomLongId();
114 - when(smsLogCoreService.createSmsLog(eq(mobile), eq(userId), eq(userType), eq(Boolean.FALSE), eq(template), 108 + when(smsLogService.createSmsLog(eq(mobile), eq(userId), eq(userType), eq(Boolean.FALSE), eq(template),
115 eq(content), eq(templateParams))).thenReturn(smsLogId); 109 eq(content), eq(templateParams))).thenReturn(smsLogId);
116 110
117 // 调用 111 // 调用
118 - Long resultSmsLogId = smsCoreService.sendSingleSms(mobile, userId, userType, templateCode, templateParams); 112 + Long resultSmsLogId = smsService.sendSingleSms(mobile, userId, userType, templateCode, templateParams);
119 // 断言 113 // 断言
120 assertEquals(smsLogId, resultSmsLogId); 114 assertEquals(smsLogId, resultSmsLogId);
121 // 断言调用 115 // 断言调用
122 - verify(smsCoreProducer, times(0)).sendSmsSendMessage(anyLong(), anyString(), 116 + verify(smsProducer, times(0)).sendSmsSendMessage(anyLong(), anyString(),
123 anyLong(), any(), anyList()); 117 anyLong(), any(), anyList());
124 } 118 }
125 119
@@ -130,7 +124,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -130,7 +124,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
130 // mock 方法 124 // mock 方法
131 125
132 // 调用,并断言异常 126 // 调用,并断言异常
133 - assertServiceException(() -> smsCoreService.checkSmsTemplateValid(templateCode), 127 + assertServiceException(() -> smsService.checkSmsTemplateValid(templateCode),
134 SMS_SEND_TEMPLATE_NOT_EXISTS); 128 SMS_SEND_TEMPLATE_NOT_EXISTS);
135 } 129 }
136 130
@@ -143,7 +137,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -143,7 +137,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
143 // mock 方法 137 // mock 方法
144 138
145 // 调用,并断言异常 139 // 调用,并断言异常
146 - assertServiceException(() -> smsCoreService.buildTemplateParams(template, templateParams), 140 + assertServiceException(() -> smsService.buildTemplateParams(template, templateParams),
147 SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS, "code"); 141 SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS, "code");
148 } 142 }
149 143
@@ -153,7 +147,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -153,7 +147,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
153 // mock 方法 147 // mock 方法
154 148
155 // 调用,并断言异常 149 // 调用,并断言异常
156 - assertServiceException(() -> smsCoreService.checkMobile(null), 150 + assertServiceException(() -> smsService.checkMobile(null),
157 SMS_SEND_MOBILE_NOT_EXISTS); 151 SMS_SEND_MOBILE_NOT_EXISTS);
158 } 152 }
159 153
@@ -161,7 +155,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -161,7 +155,7 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
161 @SuppressWarnings("unchecked") 155 @SuppressWarnings("unchecked")
162 public void testDoSendSms() { 156 public void testDoSendSms() {
163 // 准备参数 157 // 准备参数
164 - SysSmsSendMessage message = randomPojo(SysSmsSendMessage.class); 158 + SmsSendMessage message = randomPojo(SmsSendMessage.class);
165 // mock SmsClientFactory 的方法 159 // mock SmsClientFactory 的方法
166 SmsClient smsClient = spy(SmsClient.class); 160 SmsClient smsClient = spy(SmsClient.class);
167 when(smsClientFactory.getSmsClient(eq(message.getChannelId()))).thenReturn(smsClient); 161 when(smsClientFactory.getSmsClient(eq(message.getChannelId()))).thenReturn(smsClient);
@@ -171,9 +165,9 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -171,9 +165,9 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
171 eq(message.getTemplateParams()))).thenReturn(sendResult); 165 eq(message.getTemplateParams()))).thenReturn(sendResult);
172 166
173 // 调用 167 // 调用
174 - smsCoreService.doSendSms(message); 168 + smsService.doSendSms(message);
175 // 断言 169 // 断言
176 - verify(smsLogCoreService, times(1)).updateSmsSendResult(eq(message.getLogId()), 170 + verify(smsLogService, times(1)).updateSmsSendResult(eq(message.getLogId()),
177 eq(sendResult.getCode()), eq(sendResult.getMsg()), eq(sendResult.getApiCode()), 171 eq(sendResult.getCode()), eq(sendResult.getMsg()), eq(sendResult.getApiCode()),
178 eq(sendResult.getApiMsg()), eq(sendResult.getApiRequestId()), eq(sendResult.getData().getSerialNo())); 172 eq(sendResult.getApiMsg()), eq(sendResult.getApiRequestId()), eq(sendResult.getData().getSerialNo()));
179 } 173 }
@@ -190,9 +184,9 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest { @@ -190,9 +184,9 @@ public class SysSmsCoreServiceTest extends BaseMockitoUnitTest {
190 List<SmsReceiveRespDTO> receiveResults = randomPojoList(SmsReceiveRespDTO.class); 184 List<SmsReceiveRespDTO> receiveResults = randomPojoList(SmsReceiveRespDTO.class);
191 185
192 // 调用 186 // 调用
193 - smsCoreService.receiveSmsStatus(channelCode, text); 187 + smsService.receiveSmsStatus(channelCode, text);
194 // 断言 188 // 断言
195 - receiveResults.forEach(result -> smsLogCoreService.updateSmsReceiveResult(eq(result.getLogId()), eq(result.getSuccess()), 189 + receiveResults.forEach(result -> smsLogService.updateSmsReceiveResult(eq(result.getLogId()), eq(result.getSuccess()),
196 eq(result.getReceiveTime()), eq(result.getErrorCode()), eq(result.getErrorCode()))); 190 eq(result.getReceiveTime()), eq(result.getErrorCode()), eq(result.getErrorCode())));
197 } 191 }
198 192
yudao-core-service/src/test/java/cn/iocoder/yudao/coreservice/modules/system/service/social/SysSocialCoreServiceTest.java renamed to yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUsererviceTest.java
1 -package cn.iocoder.yudao.coreservice.modules.system.service.social;  
2 -  
3 -import cn.iocoder.yudao.coreservice.BaseDbAndRedisUnitTest;  
4 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.social.SysSocialUserDO;  
5 -import cn.iocoder.yudao.coreservice.modules.system.dal.mysql.social.SysSocialUserCoreMapper;  
6 -import cn.iocoder.yudao.coreservice.modules.system.dal.redis.social.SysSocialAuthUserRedisDAO;  
7 -import cn.iocoder.yudao.coreservice.modules.system.enums.social.SysSocialTypeEnum;  
8 -import cn.iocoder.yudao.coreservice.modules.system.service.social.impl.SysSocialCoreServiceImpl; 1 +package cn.iocoder.yudao.module.system.service.social;
  2 +
  3 +import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
  4 +import cn.iocoder.yudao.module.system.dal.mysql.social.SysSocialUserMapper;
  5 +import cn.iocoder.yudao.module.system.dal.redis.social.SocialAuthUserRedisDAO;
  6 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 7 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
  8 +import cn.iocoder.yudao.module.system.test.BaseDbAndRedisUnitTest;
10 import com.xkcoding.justauth.AuthRequestFactory; 9 import com.xkcoding.justauth.AuthRequestFactory;
11 import me.zhyd.oauth.model.AuthUser; 10 import me.zhyd.oauth.model.AuthUser;
12 import org.junit.jupiter.api.Test; 11 import org.junit.jupiter.api.Test;
@@ -23,19 +22,14 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId @@ -23,19 +22,14 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomLongId
23 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; 22 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
24 import static org.junit.jupiter.api.Assertions.assertEquals; 23 import static org.junit.jupiter.api.Assertions.assertEquals;
25 24
26 -/**  
27 - * {@link SysSocialCoreServiceImpl} 的单元测试类  
28 - *  
29 - * @author 芋道源码  
30 - */  
31 -@Import({SysSocialCoreServiceImpl.class, SysSocialAuthUserRedisDAO.class})  
32 -public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest { 25 +@Import({SocialUserServiceImpl.class, SocialAuthUserRedisDAO.class})
  26 +public class SocialUsererviceTest extends BaseDbAndRedisUnitTest {
33 27
34 @Resource 28 @Resource
35 - private SysSocialCoreServiceImpl socialService; 29 + private SocialUserServiceImpl socialService;
36 30
37 @Resource 31 @Resource
38 - private SysSocialUserCoreMapper socialUserMapper; 32 + private SysSocialUserMapper socialUserMapper;
39 33
40 @MockBean 34 @MockBean
41 private AuthRequestFactory authRequestFactory; 35 private AuthRequestFactory authRequestFactory;
@@ -48,7 +42,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest { @@ -48,7 +42,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest {
48 // mock 数据 42 // mock 数据
49 // 准备参数 43 // 准备参数
50 Long userId = randomLongId(); 44 Long userId = randomLongId();
51 - Integer type = randomEle(SysSocialTypeEnum.values()).getType(); 45 + Integer type = randomEle(SocialTypeEnum.values()).getType();
52 AuthUser authUser = randomPojo(AuthUser.class); 46 AuthUser authUser = randomPojo(AuthUser.class);
53 // mock 方法 47 // mock 方法
54 48
@@ -68,7 +62,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest { @@ -68,7 +62,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest {
68 // mock 数据 62 // mock 数据
69 SysSocialUserDO dbSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { 63 SysSocialUserDO dbSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> {
70 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); 64 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue());
71 - socialUserDO.setType(randomEle(SysSocialTypeEnum.values()).getType()); 65 + socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType());
72 }); 66 });
73 socialUserMapper.insert(dbSocialUser); 67 socialUserMapper.insert(dbSocialUser);
74 // 准备参数 68 // 准备参数
@@ -93,7 +87,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest { @@ -93,7 +87,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest {
93 // mock 数据 87 // mock 数据
94 SysSocialUserDO dbSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { 88 SysSocialUserDO dbSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> {
95 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); 89 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue());
96 - socialUserDO.setType(randomEle(SysSocialTypeEnum.values()).getType()); 90 + socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType());
97 }); 91 });
98 socialUserMapper.insert(dbSocialUser); 92 socialUserMapper.insert(dbSocialUser);
99 // 准备参数 93 // 准备参数
@@ -131,7 +125,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest { @@ -131,7 +125,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest {
131 // mock 数据 125 // mock 数据
132 SysSocialUserDO oldSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { 126 SysSocialUserDO oldSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> {
133 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); 127 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue());
134 - socialUserDO.setType(randomEle(SysSocialTypeEnum.values()).getType()); 128 + socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType());
135 }); 129 });
136 socialUserMapper.insert(oldSocialUser); 130 socialUserMapper.insert(oldSocialUser);
137 // 准备参数 131 // 准备参数
@@ -154,7 +148,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest { @@ -154,7 +148,7 @@ public class SysSocialCoreServiceTest extends BaseDbAndRedisUnitTest {
154 // mock 数据 148 // mock 数据
155 SysSocialUserDO oldSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> { 149 SysSocialUserDO oldSocialUser = randomPojo(SysSocialUserDO.class, socialUserDO -> {
156 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue()); 150 socialUserDO.setUserType(UserTypeEnum.ADMIN.getValue());
157 - socialUserDO.setType(randomEle(SysSocialTypeEnum.values()).getType()); 151 + socialUserDO.setType(randomEle(SocialTypeEnum.values()).getType());
158 }); 152 });
159 socialUserMapper.insert(oldSocialUser); 153 socialUserMapper.insert(oldSocialUser);
160 // 准备参数 154 // 准备参数
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceTest.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExportReq @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantExportReq
5 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantPageReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.tenant.vo.TenantUpdateReqVO;
7 import cn.iocoder.yudao.module.system.dal.mysql.tenant.SysTenantMapper; 7 import cn.iocoder.yudao.module.system.dal.mysql.tenant.SysTenantMapper;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.tenant.SysTenantDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.tenant.SysTenantDO;
9 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 9 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
10 import cn.iocoder.yudao.framework.common.pojo.PageResult; 10 import cn.iocoder.yudao.framework.common.pojo.PageResult;
11 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; 11 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/user/UserServiceImplTest.java
@@ -5,16 +5,16 @@ import cn.hutool.core.util.RandomUtil; @@ -5,16 +5,16 @@ import cn.hutool.core.util.RandomUtil;
5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 7 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
8 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysDeptDO;  
9 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.dept.SysPostDO;  
10 -import cn.iocoder.yudao.module.system.dal.mysql.user.SysUserMapper; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
  10 +import cn.iocoder.yudao.module.system.dal.mysql.user.UserMapper;
11 import cn.iocoder.yudao.module.system.service.dept.DeptService; 11 import cn.iocoder.yudao.module.system.service.dept.DeptService;
12 import cn.iocoder.yudao.module.system.service.dept.PostService; 12 import cn.iocoder.yudao.module.system.service.dept.PostService;
13 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 13 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
14 import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService; 14 import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;
15 -import cn.iocoder.yudao.coreservice.modules.system.dal.dataobject.user.SysUserDO;  
16 -import cn.iocoder.yudao.coreservice.modules.system.enums.common.SysSexEnum;  
17 -import cn.iocoder.yudao.coreservice.modules.system.service.dept.SysDeptCoreService; 15 +import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;
  16 +import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
  17 +import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;
18 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 18 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
19 import cn.iocoder.yudao.framework.common.pojo.PageResult; 19 import cn.iocoder.yudao.framework.common.pojo.PageResult;
20 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 20 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
@@ -52,7 +52,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -52,7 +52,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
52 private UserServiceImpl userService; 52 private UserServiceImpl userService;
53 53
54 @Resource 54 @Resource
55 - private SysUserMapper userMapper; 55 + private UserMapper userMapper;
56 56
57 @MockBean 57 @MockBean
58 private DeptService deptService; 58 private DeptService deptService;
@@ -94,7 +94,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -94,7 +94,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
94 // 调用 94 // 调用
95 Long userId = userService.createUser(reqVO); 95 Long userId = userService.createUser(reqVO);
96 // 断言 96 // 断言
97 - SysUserDO user = userMapper.selectById(userId); 97 + UserDO user = userMapper.selectById(userId);
98 assertPojoEquals(reqVO, user, "password"); 98 assertPojoEquals(reqVO, user, "password");
99 assertEquals("yudaoyuanma", user.getPassword()); 99 assertEquals("yudaoyuanma", user.getPassword());
100 assertEquals(CommonStatusEnum.ENABLE.getStatus(), user.getStatus()); 100 assertEquals(CommonStatusEnum.ENABLE.getStatus(), user.getStatus());
@@ -103,7 +103,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -103,7 +103,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
103 @Test 103 @Test
104 public void testUpdateUser_success() { 104 public void testUpdateUser_success() {
105 // mock 数据 105 // mock 数据
106 - SysUserDO dbUser = randomSysUserDO(); 106 + UserDO dbUser = randomSysUserDO();
107 userMapper.insert(dbUser); 107 userMapper.insert(dbUser);
108 // 准备参数 108 // 准备参数
109 UserUpdateReqVO reqVO = randomPojo(UserUpdateReqVO.class, o -> { 109 UserUpdateReqVO reqVO = randomPojo(UserUpdateReqVO.class, o -> {
@@ -128,14 +128,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -128,14 +128,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
128 // 调用 128 // 调用
129 userService.updateUser(reqVO); 129 userService.updateUser(reqVO);
130 // 断言 130 // 断言
131 - SysUserDO user = userMapper.selectById(reqVO.getId()); 131 + UserDO user = userMapper.selectById(reqVO.getId());
132 assertPojoEquals(reqVO, user); 132 assertPojoEquals(reqVO, user);
133 } 133 }
134 134
135 @Test 135 @Test
136 public void testUpdateUserProfile_success() { 136 public void testUpdateUserProfile_success() {
137 // mock 数据 137 // mock 数据
138 - SysUserDO dbUser = randomSysUserDO(); 138 + UserDO dbUser = randomSysUserDO();
139 userMapper.insert(dbUser); 139 userMapper.insert(dbUser);
140 // 准备参数 140 // 准备参数
141 Long userId = dbUser.getId(); 141 Long userId = dbUser.getId();
@@ -147,14 +147,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -147,14 +147,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
147 // 调用 147 // 调用
148 userService.updateUserProfile(userId, reqVO); 148 userService.updateUserProfile(userId, reqVO);
149 // 断言 149 // 断言
150 - SysUserDO user = userMapper.selectById(userId); 150 + UserDO user = userMapper.selectById(userId);
151 assertPojoEquals(reqVO, user); 151 assertPojoEquals(reqVO, user);
152 } 152 }
153 153
154 @Test 154 @Test
155 public void testUpdateUserPassword_success() { 155 public void testUpdateUserPassword_success() {
156 // mock 数据 156 // mock 数据
157 - SysUserDO dbUser = randomSysUserDO(o -> o.setPassword("encode:yudao")); 157 + UserDO dbUser = randomSysUserDO(o -> o.setPassword("encode:yudao"));
158 userMapper.insert(dbUser); 158 userMapper.insert(dbUser);
159 // 准备参数 159 // 准备参数
160 Long userId = dbUser.getId(); 160 Long userId = dbUser.getId();
@@ -170,14 +170,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -170,14 +170,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
170 // 调用 170 // 调用
171 userService.updateUserPassword(userId, reqVO); 171 userService.updateUserPassword(userId, reqVO);
172 // 断言 172 // 断言
173 - SysUserDO user = userMapper.selectById(userId); 173 + UserDO user = userMapper.selectById(userId);
174 assertEquals("encode:yuanma", user.getPassword()); 174 assertEquals("encode:yuanma", user.getPassword());
175 } 175 }
176 176
177 @Test 177 @Test
178 public void testUpdateUserAvatar_success() { 178 public void testUpdateUserAvatar_success() {
179 // mock 数据 179 // mock 数据
180 - SysUserDO dbUser = randomSysUserDO(); 180 + UserDO dbUser = randomSysUserDO();
181 userMapper.insert(dbUser); 181 userMapper.insert(dbUser);
182 // 准备参数 182 // 准备参数
183 Long userId = dbUser.getId(); 183 Long userId = dbUser.getId();
@@ -190,14 +190,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -190,14 +190,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
190 // 调用 190 // 调用
191 userService.updateUserAvatar(userId, avatarFile); 191 userService.updateUserAvatar(userId, avatarFile);
192 // 断言 192 // 断言
193 - SysUserDO user = userMapper.selectById(userId); 193 + UserDO user = userMapper.selectById(userId);
194 assertEquals(avatar, user.getAvatar()); 194 assertEquals(avatar, user.getAvatar());
195 } 195 }
196 196
197 @Test 197 @Test
198 public void testUpdateUserPassword02_success() { 198 public void testUpdateUserPassword02_success() {
199 // mock 数据 199 // mock 数据
200 - SysUserDO dbUser = randomSysUserDO(); 200 + UserDO dbUser = randomSysUserDO();
201 userMapper.insert(dbUser); 201 userMapper.insert(dbUser);
202 // 准备参数 202 // 准备参数
203 Long userId = dbUser.getId(); 203 Long userId = dbUser.getId();
@@ -209,14 +209,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -209,14 +209,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
209 // 调用 209 // 调用
210 userService.updateUserPassword(userId, password); 210 userService.updateUserPassword(userId, password);
211 // 断言 211 // 断言
212 - SysUserDO user = userMapper.selectById(userId); 212 + UserDO user = userMapper.selectById(userId);
213 assertEquals("encode:" + password, user.getPassword()); 213 assertEquals("encode:" + password, user.getPassword());
214 } 214 }
215 215
216 @Test 216 @Test
217 public void testUpdateUserStatus() { 217 public void testUpdateUserStatus() {
218 // mock 数据 218 // mock 数据
219 - SysUserDO dbUser = randomSysUserDO(); 219 + UserDO dbUser = randomSysUserDO();
220 userMapper.insert(dbUser); 220 userMapper.insert(dbUser);
221 // 准备参数 221 // 准备参数
222 Long userId = dbUser.getId(); 222 Long userId = dbUser.getId();
@@ -225,14 +225,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -225,14 +225,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
225 // 调用 225 // 调用
226 userService.updateUserStatus(userId, status); 226 userService.updateUserStatus(userId, status);
227 // 断言 227 // 断言
228 - SysUserDO user = userMapper.selectById(userId); 228 + UserDO user = userMapper.selectById(userId);
229 assertEquals(status, user.getStatus()); 229 assertEquals(status, user.getStatus());
230 } 230 }
231 231
232 @Test 232 @Test
233 public void testDeleteUser_success(){ 233 public void testDeleteUser_success(){
234 // mock 数据 234 // mock 数据
235 - SysUserDO dbUser = randomSysUserDO(); 235 + UserDO dbUser = randomSysUserDO();
236 userMapper.insert(dbUser); 236 userMapper.insert(dbUser);
237 // 准备参数 237 // 准备参数
238 Long userId = dbUser.getId(); 238 Long userId = dbUser.getId();
@@ -248,7 +248,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -248,7 +248,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
248 @Test 248 @Test
249 public void testGetUserPage() { 249 public void testGetUserPage() {
250 // mock 数据 250 // mock 数据
251 - SysUserDO dbUser = initGetUserPageData(); 251 + UserDO dbUser = initGetUserPageData();
252 // 准备参数 252 // 准备参数
253 UserPageReqVO reqVO = new UserPageReqVO(); 253 UserPageReqVO reqVO = new UserPageReqVO();
254 reqVO.setUsername("yudao"); 254 reqVO.setUsername("yudao");
@@ -262,7 +262,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -262,7 +262,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
262 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); 262 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList);
263 263
264 // 调用 264 // 调用
265 - PageResult<SysUserDO> pageResult = userService.getUserPage(reqVO); 265 + PageResult<UserDO> pageResult = userService.getUserPage(reqVO);
266 // 断言 266 // 断言
267 assertEquals(1, pageResult.getTotal()); 267 assertEquals(1, pageResult.getTotal());
268 assertEquals(1, pageResult.getList().size()); 268 assertEquals(1, pageResult.getList().size());
@@ -272,7 +272,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -272,7 +272,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
272 @Test 272 @Test
273 public void testGetUsers() { 273 public void testGetUsers() {
274 // mock 数据 274 // mock 数据
275 - SysUserDO dbUser = initGetUserPageData(); 275 + UserDO dbUser = initGetUserPageData();
276 // 准备参数 276 // 准备参数
277 UserExportReqVO reqVO = new UserExportReqVO(); 277 UserExportReqVO reqVO = new UserExportReqVO();
278 reqVO.setUsername("yudao"); 278 reqVO.setUsername("yudao");
@@ -286,7 +286,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -286,7 +286,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
286 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); 286 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList);
287 287
288 // 调用 288 // 调用
289 - List<SysUserDO> list = userService.getUsers(reqVO); 289 + List<UserDO> list = userService.getUsers(reqVO);
290 // 断言 290 // 断言
291 assertEquals(1, list.size()); 291 assertEquals(1, list.size());
292 assertPojoEquals(dbUser, list.get(0)); 292 assertPojoEquals(dbUser, list.get(0));
@@ -295,9 +295,9 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -295,9 +295,9 @@ public class UserServiceImplTest extends BaseDbUnitTest {
295 /** 295 /**
296 * 初始化 getUserPage 方法的测试数据 296 * 初始化 getUserPage 方法的测试数据
297 */ 297 */
298 - private SysUserDO initGetUserPageData() { 298 + private UserDO initGetUserPageData() {
299 // mock 数据 299 // mock 数据
300 - SysUserDO dbUser = randomSysUserDO(o -> { // 等会查询到 300 + UserDO dbUser = randomSysUserDO(o -> { // 等会查询到
301 o.setUsername("yudaoyuanma"); 301 o.setUsername("yudaoyuanma");
302 o.setMobile("15601691300"); 302 o.setMobile("15601691300");
303 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 303 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
@@ -359,7 +359,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -359,7 +359,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
359 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true); 359 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true);
360 // 断言 360 // 断言
361 assertEquals(1, respVO.getCreateUsernames().size()); 361 assertEquals(1, respVO.getCreateUsernames().size());
362 - SysUserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0)); 362 + UserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0));
363 assertPojoEquals(importUser, user); 363 assertPojoEquals(importUser, user);
364 assertEquals("java", user.getPassword()); 364 assertEquals("java", user.getPassword());
365 assertEquals(0, respVO.getUpdateUsernames().size()); 365 assertEquals(0, respVO.getUpdateUsernames().size());
@@ -372,7 +372,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -372,7 +372,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
372 @Test 372 @Test
373 public void testImportUsers_03() { 373 public void testImportUsers_03() {
374 // mock 数据 374 // mock 数据
375 - SysUserDO dbUser = randomSysUserDO(); 375 + UserDO dbUser = randomSysUserDO();
376 userMapper.insert(dbUser); 376 userMapper.insert(dbUser);
377 // 准备参数 377 // 准备参数
378 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { 378 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
@@ -402,7 +402,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -402,7 +402,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
402 @Test 402 @Test
403 public void testImportUsers_04() { 403 public void testImportUsers_04() {
404 // mock 数据 404 // mock 数据
405 - SysUserDO dbUser = randomSysUserDO(); 405 + UserDO dbUser = randomSysUserDO();
406 userMapper.insert(dbUser); 406 userMapper.insert(dbUser);
407 // 准备参数 407 // 准备参数
408 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { 408 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
@@ -422,7 +422,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -422,7 +422,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
422 // 断言 422 // 断言
423 assertEquals(0, respVO.getCreateUsernames().size()); 423 assertEquals(0, respVO.getCreateUsernames().size());
424 assertEquals(1, respVO.getUpdateUsernames().size()); 424 assertEquals(1, respVO.getUpdateUsernames().size());
425 - SysUserDO user = userMapper.selectByUsername(respVO.getUpdateUsernames().get(0)); 425 + UserDO user = userMapper.selectByUsername(respVO.getUpdateUsernames().get(0));
426 assertPojoEquals(importUser, user); 426 assertPojoEquals(importUser, user);
427 assertEquals(0, respVO.getFailureUsernames().size()); 427 assertEquals(0, respVO.getFailureUsernames().size());
428 } 428 }
@@ -561,7 +561,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -561,7 +561,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
561 @Test 561 @Test
562 public void testCheckOldPassword_passwordFailed() { 562 public void testCheckOldPassword_passwordFailed() {
563 // mock 数据 563 // mock 数据
564 - SysUserDO user = randomSysUserDO(); 564 + UserDO user = randomSysUserDO();
565 userMapper.insert(user); 565 userMapper.insert(user);
566 // 准备参数 566 // 准备参数
567 Long id = user.getId(); 567 Long id = user.getId();
@@ -594,12 +594,12 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -594,12 +594,12 @@ public class UserServiceImplTest extends BaseDbUnitTest {
594 // ========== 随机对象 ========== 594 // ========== 随机对象 ==========
595 595
596 @SafeVarargs 596 @SafeVarargs
597 - private static SysUserDO randomSysUserDO(Consumer<SysUserDO>... consumers) {  
598 - Consumer<SysUserDO> consumer = (o) -> { 597 + private static UserDO randomSysUserDO(Consumer<UserDO>... consumers) {
  598 + Consumer<UserDO> consumer = (o) -> {
599 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 599 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
600 o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围 600 o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围
601 }; 601 };
602 - return randomPojo(SysUserDO.class, ArrayUtils.append(consumer, consumers)); 602 + return randomPojo(UserDO.class, ArrayUtils.append(consumer, consumers));
603 } 603 }
604 604
605 } 605 }