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