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