Commit add08b1ecd6e0e516318ff7265e3e6ab509e38fd

Authored by YunaiV
1 parent ab6ec2f0

多模块重构 4:system 模块的调整,实现 social API~~

Showing 127 changed files with 1490 additions and 1428 deletions
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/UserTypeEnum.java
1 package cn.iocoder.yudao.framework.common.enums; 1 package cn.iocoder.yudao.framework.common.enums;
2 2
3 -import cn.hutool.core.lang.Matcher;  
4 import cn.hutool.core.util.ArrayUtil; 3 import cn.hutool.core.util.ArrayUtil;
  4 +import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
5 import lombok.AllArgsConstructor; 5 import lombok.AllArgsConstructor;
6 import lombok.Getter; 6 import lombok.Getter;
7 7
  8 +import java.util.Arrays;
  9 +
8 /** 10 /**
9 * 全局用户类型枚举 11 * 全局用户类型枚举
10 */ 12 */
11 @AllArgsConstructor 13 @AllArgsConstructor
12 @Getter 14 @Getter
13 -public enum UserTypeEnum { 15 +public enum UserTypeEnum implements IntArrayValuable {
14 16
15 MEMBER(1, "会员"), // 面向 c 端,普通用户 17 MEMBER(1, "会员"), // 面向 c 端,普通用户
16 ADMIN(2, "管理员"); // 面向 b 端,管理后台 18 ADMIN(2, "管理员"); // 面向 b 端,管理后台
17 19
  20 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(UserTypeEnum::getValue).toArray();
  21 +
18 /** 22 /**
19 * 类型 23 * 类型
20 */ 24 */
@@ -28,4 +32,8 @@ public enum UserTypeEnum { @@ -28,4 +32,8 @@ public enum UserTypeEnum {
28 return ArrayUtil.firstMatch(userType -> userType.getValue().equals(value), UserTypeEnum.values()); 32 return ArrayUtil.firstMatch(userType -> userType.getValue().equals(value), UserTypeEnum.values());
29 } 33 }
30 34
  35 + @Override
  36 + public int[] array() {
  37 + return ARRAYS;
  38 + }
31 } 39 }
yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/UserApi.java renamed to yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApi.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO; @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO;
7 * 7 *
8 * @author 芋道源码 8 * @author 芋道源码
9 */ 9 */
10 -public interface UserApi { 10 +public interface MemberUserApi {
11 11
12 /** 12 /**
13 * 获得会员用户信息 13 * 获得会员用户信息
yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/user/dto/UserRespDTO.java
1 package cn.iocoder.yudao.module.member.api.user.dto; 1 package cn.iocoder.yudao.module.member.api.user.dto;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  4 +import lombok.Data;
4 5
5 /** 6 /**
6 * 用户信息 Response DTO 7 * 用户信息 Response DTO
7 * 8 *
8 * @author 芋道源码 9 * @author 芋道源码
9 */ 10 */
  11 +@Data
10 public class UserRespDTO { 12 public class UserRespDTO {
11 13
12 /** 14 /**
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/enums/MemberErrorCodeConstants.java renamed to yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java
@@ -7,12 +7,21 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode; @@ -7,12 +7,21 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
7 * 7 *
8 * member 系统,使用 1-004-000-000 段 8 * member 系统,使用 1-004-000-000 段
9 */ 9 */
10 -public interface MemberErrorCodeConstants { 10 +public interface ErrorCodeConstants {
11 11
12 - // ==========用户相关 1004001000============ 12 + // ========== 用户相关 1004001000============
13 ErrorCode USER_NOT_EXISTS = new ErrorCode(1004001000, "用户不存在"); 13 ErrorCode USER_NOT_EXISTS = new ErrorCode(1004001000, "用户不存在");
  14 + ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1004001001, "密码校验失败");
14 15
15 - // ==========文件相关 1004002000 =========== 16 + // ========== 文件相关 1004002000 ===========
  17 + // TODO 芋艿:可以删除
16 ErrorCode FILE_IS_EMPTY = new ErrorCode(1004002000, "文件为空"); 18 ErrorCode FILE_IS_EMPTY = new ErrorCode(1004002000, "文件为空");
17 19
  20 + // ========== AUTH 模块 1004003000 ==========
  21 + ErrorCode AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1004003000, "登录失败,账号密码不正确");
  22 + ErrorCode AUTH_LOGIN_USER_DISABLED = new ErrorCode(1004003001, "登录失败,账号被禁用");
  23 + ErrorCode AUTH_LOGIN_FAIL_UNKNOWN = new ErrorCode(1004003002, "登录失败"); // 登录失败的兜底,未知原因
  24 + ErrorCode AUTH_TOKEN_EXPIRED = new ErrorCode(1004003004, "Token 已经过期");
  25 + ErrorCode AUTH_THIRD_LOGIN_NOT_BIND = new ErrorCode(1004003005, "未绑定账号,需要进行绑定");
  26 +
18 } 27 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/api/user/UserApiImpl.java renamed to yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/api/user/MemberUserApiImpl.java
@@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.member.api.user; @@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.member.api.user;
2 2
3 import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO; 3 import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO;
4 import cn.iocoder.yudao.module.member.convert.user.UserConvert; 4 import cn.iocoder.yudao.module.member.convert.user.UserConvert;
5 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;  
6 -import cn.iocoder.yudao.module.member.service.user.UserService; 5 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
  6 +import cn.iocoder.yudao.module.member.service.user.MemberUserService;
7 import org.springframework.stereotype.Service; 7 import org.springframework.stereotype.Service;
8 import org.springframework.validation.annotation.Validated; 8 import org.springframework.validation.annotation.Validated;
9 9
@@ -16,14 +16,14 @@ import javax.annotation.Resource; @@ -16,14 +16,14 @@ import javax.annotation.Resource;
16 */ 16 */
17 @Service 17 @Service
18 @Validated 18 @Validated
19 -public class UserApiImpl implements UserApi { 19 +public class MemberUserApiImpl implements MemberUserApi {
20 20
21 @Resource 21 @Resource
22 - private UserService userService; 22 + private MemberUserService userService;
23 23
24 @Override 24 @Override
25 public UserRespDTO getUser(Long id) { 25 public UserRespDTO getUser(Long id) {
26 - UserDO user = userService.getUser(id); 26 + MemberUserDO user = userService.getUser(id);
27 return UserConvert.INSTANCE.convert2(user); 27 return UserConvert.INSTANCE.convert2(user);
28 } 28 }
29 29
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/AppAuthController.java
1 package cn.iocoder.yudao.module.member.controller.app.auth; 1 package cn.iocoder.yudao.module.member.controller.app.auth;
2 2
3 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 4 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
6 import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; 5 import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
7 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; 6 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*;
8 -import cn.iocoder.yudao.module.member.service.auth.AuthService;  
9 -import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService; 7 +import cn.iocoder.yudao.module.member.service.auth.MemberAuthService;
10 import io.swagger.annotations.Api; 8 import io.swagger.annotations.Api;
11 import io.swagger.annotations.ApiImplicitParam; 9 import io.swagger.annotations.ApiImplicitParam;
12 import io.swagger.annotations.ApiImplicitParams; 10 import io.swagger.annotations.ApiImplicitParams;
13 import io.swagger.annotations.ApiOperation; 11 import io.swagger.annotations.ApiOperation;
14 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
15 -import org.springframework.beans.factory.annotation.Autowired;  
16 import org.springframework.validation.annotation.Validated; 13 import org.springframework.validation.annotation.Validated;
17 import org.springframework.web.bind.annotation.*; 14 import org.springframework.web.bind.annotation.*;
18 15
@@ -31,14 +28,8 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @@ -31,14 +28,8 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
31 @Slf4j 28 @Slf4j
32 public class AppAuthController { 29 public class AppAuthController {
33 30
34 - @Autowired  
35 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // AuthService 存在重名  
36 - private AuthService authService;  
37 -  
38 - @Resource  
39 - private SysSmsCodeService smsCodeService;  
40 @Resource 31 @Resource
41 - private SysSocialCoreService socialService; 32 + private MemberAuthService authService;
42 33
43 @PostMapping("/login") 34 @PostMapping("/login")
44 @ApiOperation("使用手机 + 密码登录") 35 @ApiOperation("使用手机 + 密码登录")
@@ -62,14 +53,7 @@ public class AppAuthController { @@ -62,14 +53,7 @@ public class AppAuthController {
62 @ApiOperation(value = "发送手机验证码") 53 @ApiOperation(value = "发送手机验证码")
63 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 54 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
64 public CommonResult<Boolean> sendSmsCode(@RequestBody @Valid AppAuthSendSmsReqVO reqVO) { 55 public CommonResult<Boolean> sendSmsCode(@RequestBody @Valid AppAuthSendSmsReqVO reqVO) {
65 - smsCodeService.sendSmsCode(reqVO.getMobile(), reqVO.getScene(), getClientIP());  
66 - return success(true);  
67 - }  
68 -  
69 - @GetMapping("/send-sms-code-login") // TODO 芋艿:post 比较合理  
70 - @ApiOperation(value = "向已登录用户发送验证码",notes = "修改手机时验证原手机号使用")  
71 - public CommonResult<Boolean> sendSmsCodeLogin() {  
72 - smsCodeService.sendSmsCodeLogin(getLoginUserId()); 56 + authService.sendSmsCode(getLoginUserId(), reqVO);
73 return success(true); 57 return success(true);
74 } 58 }
75 59
@@ -100,18 +84,18 @@ public class AppAuthController { @@ -100,18 +84,18 @@ public class AppAuthController {
100 }) 84 })
101 public CommonResult<String> socialAuthRedirect(@RequestParam("type") Integer type, 85 public CommonResult<String> socialAuthRedirect(@RequestParam("type") Integer type,
102 @RequestParam("redirectUri") String redirectUri) { 86 @RequestParam("redirectUri") String redirectUri) {
103 - return CommonResult.success(socialService.getAuthorizeUrl(type, redirectUri)); 87 + return CommonResult.success(authService.getSocialAuthorizeUrl(type, redirectUri));
104 } 88 }
105 89
106 @PostMapping("/social-login") 90 @PostMapping("/social-login")
107 - @ApiOperation("社交登录,使用 code 授权码") 91 + @ApiOperation(value = "社交登录,使用 code 授权码", notes = "适合未登录的用户,但是社交账号已绑定用户")
108 public CommonResult<AppAuthLoginRespVO> socialLogin(@RequestBody @Valid AppAuthSocialLoginReqVO reqVO) { 92 public CommonResult<AppAuthLoginRespVO> socialLogin(@RequestBody @Valid AppAuthSocialLoginReqVO reqVO) {
109 String token = authService.socialLogin(reqVO, getClientIP(), getUserAgent()); 93 String token = authService.socialLogin(reqVO, getClientIP(), getUserAgent());
110 return success(AppAuthLoginRespVO.builder().token(token).build()); 94 return success(AppAuthLoginRespVO.builder().token(token).build());
111 } 95 }
112 96
113 @PostMapping("/social-login2") 97 @PostMapping("/social-login2")
114 - @ApiOperation("社交登录,使用 手机号 + 手机验证码") 98 + @ApiOperation(value = "社交登录,使用 手机号 + 手机验证码", notes = "适合未登录的用户,进行登录 + 绑定")
115 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志 99 @OperateLog(enable = false) // 避免 Post 请求被记录操作日志
116 public CommonResult<AppAuthLoginRespVO> socialLogin2(@RequestBody @Valid AppAuthSocialLogin2ReqVO reqVO) { 100 public CommonResult<AppAuthLoginRespVO> socialLogin2(@RequestBody @Valid AppAuthSocialLogin2ReqVO reqVO) {
117 String token = authService.socialLogin2(reqVO, getClientIP(), getUserAgent()); 101 String token = authService.socialLogin2(reqVO, getClientIP(), getUserAgent());
@@ -119,7 +103,7 @@ public class AppAuthController { @@ -119,7 +103,7 @@ public class AppAuthController {
119 } 103 }
120 104
121 @PostMapping("/social-bind") 105 @PostMapping("/social-bind")
122 - @ApiOperation("社交绑定,使用 code 授权码") 106 + @ApiOperation(value = "社交绑定,使用 code 授权码", notes = "使用在用户已经登录的情况下")
123 @PreAuthenticated 107 @PreAuthenticated
124 public CommonResult<Boolean> socialBind(@RequestBody @Valid AppAuthSocialBindReqVO reqVO) { 108 public CommonResult<Boolean> socialBind(@RequestBody @Valid AppAuthSocialBindReqVO reqVO) {
125 authService.socialBind(getLoginUserId(), reqVO); 109 authService.socialBind(getLoginUserId(), reqVO);
@@ -130,7 +114,7 @@ public class AppAuthController { @@ -130,7 +114,7 @@ public class AppAuthController {
130 @ApiOperation("取消社交绑定") 114 @ApiOperation("取消社交绑定")
131 @PreAuthenticated 115 @PreAuthenticated
132 public CommonResult<Boolean> socialUnbind(@RequestBody AppAuthSocialUnbindReqVO reqVO) { 116 public CommonResult<Boolean> socialUnbind(@RequestBody AppAuthSocialUnbindReqVO reqVO) {
133 - socialService.unbindSocialUser(getLoginUserId(), reqVO.getType(), reqVO.getUnionId(), UserTypeEnum.MEMBER); 117 + authService.unbindSocialUser(getLoginUserId(), reqVO);
134 return CommonResult.success(true); 118 return CommonResult.success(true);
135 } 119 }
136 120
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.member.controller.app.auth.vo; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.member.controller.app.auth.vo;
2 2
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import cn.iocoder.yudao.framework.common.validation.Mobile; 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
5 -import cn.iocoder.yudao.module.member.enums.sms.SysSmsSceneEnum; 5 +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
6 import io.swagger.annotations.ApiModel; 6 import io.swagger.annotations.ApiModel;
7 import io.swagger.annotations.ApiModelProperty; 7 import io.swagger.annotations.ApiModelProperty;
8 import lombok.AllArgsConstructor; 8 import lombok.AllArgsConstructor;
@@ -36,7 +36,7 @@ public class AppAuthCheckCodeReqVO { @@ -36,7 +36,7 @@ public class AppAuthCheckCodeReqVO {
36 36
37 @ApiModelProperty(value = "发送场景", example = "1", notes = "对应 MbrSmsSceneEnum 枚举") 37 @ApiModelProperty(value = "发送场景", example = "1", notes = "对应 MbrSmsSceneEnum 枚举")
38 @NotNull(message = "发送场景不能为空") 38 @NotNull(message = "发送场景不能为空")
39 - @InEnum(SysSmsSceneEnum.class) 39 + @InEnum(SmsSceneEnum.class)
40 private Integer scene; 40 private Integer scene;
41 41
42 } 42 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSendSmsReqVO.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.member.controller.app.auth.vo; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.member.controller.app.auth.vo;
2 2
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import cn.iocoder.yudao.framework.common.validation.Mobile; 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
5 -import cn.iocoder.yudao.module.member.enums.sms.SysSmsSceneEnum; 5 +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
6 import io.swagger.annotations.ApiModel; 6 import io.swagger.annotations.ApiModel;
7 import io.swagger.annotations.ApiModelProperty; 7 import io.swagger.annotations.ApiModelProperty;
8 import lombok.Data; 8 import lombok.Data;
@@ -21,7 +21,7 @@ public class AppAuthSendSmsReqVO { @@ -21,7 +21,7 @@ public class AppAuthSendSmsReqVO {
21 21
22 @ApiModelProperty(value = "发送场景", example = "1", notes = "对应 MbrSmsSceneEnum 枚举") 22 @ApiModelProperty(value = "发送场景", example = "1", notes = "对应 MbrSmsSceneEnum 枚举")
23 @NotNull(message = "发送场景不能为空") 23 @NotNull(message = "发送场景不能为空")
24 - @InEnum(SysSmsSceneEnum.class) 24 + @InEnum(SmsSceneEnum.class)
25 private Integer scene; 25 private Integer scene;
26 26
27 } 27 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/auth/vo/AppAuthSocialBindReqVO.java
1 package cn.iocoder.yudao.module.member.controller.app.auth.vo; 1 package cn.iocoder.yudao.module.member.controller.app.auth.vo;
2 2
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 3 import cn.iocoder.yudao.framework.common.validation.InEnum;
  4 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
4 import io.swagger.annotations.ApiModel; 5 import io.swagger.annotations.ApiModel;
5 import io.swagger.annotations.ApiModelProperty; 6 import io.swagger.annotations.ApiModelProperty;
6 import lombok.AllArgsConstructor; 7 import lombok.AllArgsConstructor;
@@ -19,7 +20,7 @@ import javax.validation.constraints.NotNull; @@ -19,7 +20,7 @@ import javax.validation.constraints.NotNull;
19 public class AppAuthSocialBindReqVO { 20 public class AppAuthSocialBindReqVO {
20 21
21 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值") 22 @ApiModelProperty(value = "社交平台的类型", required = true, example = "10", notes = "参见 SysUserSocialTypeEnum 枚举值")
22 - @InEnum(SysSocialTypeEnum.class) 23 + @InEnum(SocialTypeEnum.class)
23 @NotNull(message = "社交平台的类型不能为空") 24 @NotNull(message = "社交平台的类型不能为空")
24 private Integer type; 25 private Integer type;
25 26
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/controller/app/user/AppUserController.java
@@ -5,8 +5,8 @@ import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated; @@ -5,8 +5,8 @@ import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
5 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO; 5 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO;
6 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 6 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO;
7 import cn.iocoder.yudao.module.member.convert.user.UserConvert; 7 import cn.iocoder.yudao.module.member.convert.user.UserConvert;
8 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;  
9 -import cn.iocoder.yudao.module.member.service.user.UserService; 8 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
  9 +import cn.iocoder.yudao.module.member.service.user.MemberUserService;
10 import io.swagger.annotations.Api; 10 import io.swagger.annotations.Api;
11 import io.swagger.annotations.ApiOperation; 11 import io.swagger.annotations.ApiOperation;
12 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
@@ -21,7 +21,7 @@ import java.io.IOException; @@ -21,7 +21,7 @@ import java.io.IOException;
21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.*; 21 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.*;
22 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 22 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
23 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; 23 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
24 -import static cn.iocoder.yudao.module.member.enums.MemberErrorCodeConstants.FILE_IS_EMPTY; 24 +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.FILE_IS_EMPTY;
25 25
26 @Api(tags = "用户 APP - 用户个人中心") 26 @Api(tags = "用户 APP - 用户个人中心")
27 @RestController 27 @RestController
@@ -31,7 +31,7 @@ import static cn.iocoder.yudao.module.member.enums.MemberErrorCodeConstants.FILE @@ -31,7 +31,7 @@ import static cn.iocoder.yudao.module.member.enums.MemberErrorCodeConstants.FILE
31 public class AppUserController { 31 public class AppUserController {
32 32
33 @Resource 33 @Resource
34 - private UserService userService; 34 + private MemberUserService userService;
35 35
36 @PutMapping("/update-nickname") 36 @PutMapping("/update-nickname")
37 @ApiOperation("修改用户昵称") 37 @ApiOperation("修改用户昵称")
@@ -56,7 +56,7 @@ public class AppUserController { @@ -56,7 +56,7 @@ public class AppUserController {
56 @ApiOperation("获得基本信息") 56 @ApiOperation("获得基本信息")
57 @PreAuthenticated 57 @PreAuthenticated
58 public CommonResult<AppUserInfoRespVO> getUserInfo() { 58 public CommonResult<AppUserInfoRespVO> getUserInfo() {
59 - UserDO user = userService.getUser(getLoginUserId()); 59 + MemberUserDO user = userService.getUser(getLoginUserId());
60 return success(UserConvert.INSTANCE.convert(user)); 60 return success(UserConvert.INSTANCE.convert(user));
61 } 61 }
62 62
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/convert/auth/AuthConvert.java
@@ -2,7 +2,13 @@ package cn.iocoder.yudao.module.member.convert.auth; @@ -2,7 +2,13 @@ package cn.iocoder.yudao.module.member.convert.auth;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.security.core.LoginUser; 4 import cn.iocoder.yudao.framework.security.core.LoginUser;
5 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO; 5 +import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthSocialBindReqVO;
  6 +import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthSocialLogin2ReqVO;
  7 +import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthSocialLoginReqVO;
  8 +import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthSocialUnbindReqVO;
  9 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
  10 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
  11 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO;
6 import org.mapstruct.Mapper; 12 import org.mapstruct.Mapper;
7 import org.mapstruct.Mapping; 13 import org.mapstruct.Mapping;
8 import org.mapstruct.factory.Mappers; 14 import org.mapstruct.factory.Mappers;
@@ -13,11 +19,16 @@ public interface AuthConvert { @@ -13,11 +19,16 @@ public interface AuthConvert {
13 AuthConvert INSTANCE = Mappers.getMapper(AuthConvert.class); 19 AuthConvert INSTANCE = Mappers.getMapper(AuthConvert.class);
14 20
15 @Mapping(source = "mobile", target = "username") 21 @Mapping(source = "mobile", target = "username")
16 - LoginUser convert0(UserDO bean); 22 + LoginUser convert0(MemberUserDO bean);
17 23
18 - default LoginUser convert(UserDO bean) { 24 + default LoginUser convert(MemberUserDO bean) {
19 // 目的,为了设置 UserTypeEnum.MEMBER.getValue() 25 // 目的,为了设置 UserTypeEnum.MEMBER.getValue()
20 return convert0(bean).setUserType(UserTypeEnum.MEMBER.getValue()); 26 return convert0(bean).setUserType(UserTypeEnum.MEMBER.getValue());
21 } 27 }
22 28
  29 + SocialUserBindReqDTO convert(Long userId, Integer value, AppAuthSocialBindReqVO reqVO);
  30 + SocialUserBindReqDTO convert(Long userId, Integer value, AppAuthSocialLogin2ReqVO reqVO);
  31 + SocialUserBindReqDTO convert(Long userId, Integer value, AppAuthSocialLoginReqVO reqVO);
  32 + SocialUserUnbindReqDTO convert(Long userId, Integer value, AppAuthSocialUnbindReqVO reqVO);
  33 +
23 } 34 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/convert/user/UserConvert.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.member.convert.user; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.member.convert.user;
2 2
3 import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO; 3 import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO;
4 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO; 4 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO;
5 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO; 5 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
6 import org.mapstruct.Mapper; 6 import org.mapstruct.Mapper;
7 import org.mapstruct.factory.Mappers; 7 import org.mapstruct.factory.Mappers;
8 8
@@ -11,7 +11,7 @@ public interface UserConvert { @@ -11,7 +11,7 @@ public interface UserConvert {
11 11
12 UserConvert INSTANCE = Mappers.getMapper(UserConvert.class); 12 UserConvert INSTANCE = Mappers.getMapper(UserConvert.class);
13 13
14 - AppUserInfoRespVO convert(UserDO bean); 14 + AppUserInfoRespVO convert(MemberUserDO bean);
15 15
16 - UserRespDTO convert2(UserDO bean); 16 + UserRespDTO convert2(MemberUserDO bean);
17 } 17 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/address/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.member.dal.dataobject.address;
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/UserDO.java renamed to yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java
@@ -22,7 +22,7 @@ import java.util.Date; @@ -22,7 +22,7 @@ import java.util.Date;
22 @Builder 22 @Builder
23 @NoArgsConstructor 23 @NoArgsConstructor
24 @AllArgsConstructor 24 @AllArgsConstructor
25 -public class UserDO extends TenantBaseDO { 25 +public class MemberUserDO extends TenantBaseDO {
26 26
27 /** 27 /**
28 * 用户ID 28 * 用户ID
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/user/UserMapper.java renamed to yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/user/MemberUserMapper.java
1 package cn.iocoder.yudao.module.member.dal.mysql.user; 1 package cn.iocoder.yudao.module.member.dal.mysql.user;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO; 4 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
5 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
6 6
7 /** 7 /**
@@ -10,10 +10,10 @@ import org.apache.ibatis.annotations.Mapper; @@ -10,10 +10,10 @@ import org.apache.ibatis.annotations.Mapper;
10 * @author 芋道源码 10 * @author 芋道源码
11 */ 11 */
12 @Mapper 12 @Mapper
13 -public interface UserMapper extends BaseMapperX<UserDO> { 13 +public interface MemberUserMapper extends BaseMapperX<MemberUserDO> {
14 14
15 - default UserDO selectByMobile(String mobile) {  
16 - return selectOne(UserDO::getMobile, mobile); 15 + default MemberUserDO selectByMobile(String mobile) {
  16 + return selectOne(MemberUserDO::getMobile, mobile);
17 } 17 }
18 18
19 } 19 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/enums/SysErrorCodeConstants.java deleted
1 -package cn.iocoder.yudao.module.member.enums;  
2 -  
3 -import cn.iocoder.yudao.framework.common.exception.ErrorCode;  
4 -  
5 -/**  
6 - * System 错误码枚举类  
7 - *  
8 - * system 系统,使用 1-005-000-000 段  
9 - */  
10 -public interface SysErrorCodeConstants {  
11 -  
12 - // ========== AUTH 模块 1005000000 ==========  
13 - ErrorCode AUTH_LOGIN_BAD_CREDENTIALS = new ErrorCode(1005000000, "登录失败,账号密码不正确");  
14 - ErrorCode AUTH_LOGIN_USER_DISABLED = new ErrorCode(1005000001, "登录失败,账号被禁用");  
15 - ErrorCode AUTH_LOGIN_FAIL_UNKNOWN = new ErrorCode(1005000002, "登录失败"); // 登录失败的兜底,未知原因  
16 - ErrorCode AUTH_TOKEN_EXPIRED = new ErrorCode(1005000003, "Token 已经过期");  
17 - ErrorCode AUTH_THIRD_LOGIN_NOT_BIND = new ErrorCode(1005000004, "未绑定账号,需要进行绑定");  
18 -  
19 - // ========== SMS CODE 模块 1005001000 ==========  
20 - ErrorCode USER_SMS_CODE_NOT_FOUND = new ErrorCode(1005001000, "验证码不存在");  
21 - ErrorCode USER_SMS_CODE_EXPIRED = new ErrorCode(1005001001, "验证码已过期");  
22 - ErrorCode USER_SMS_CODE_USED = new ErrorCode(1005001002, "验证码已使用");  
23 - ErrorCode USER_SMS_CODE_NOT_CORRECT = new ErrorCode(1005001003, "验证码不正确");  
24 - ErrorCode USER_SMS_CODE_EXCEED_SEND_MAXIMUM_QUANTITY_PER_DAY = new ErrorCode(1005001004, "超过每日短信发送数量");  
25 - ErrorCode USER_SMS_CODE_SEND_TOO_FAST = new ErrorCode(1005001005, "短信发送过于频率");  
26 - ErrorCode USER_SMS_CODE_IS_EXISTS = new ErrorCode(1005001006, "手机号已被使用");  
27 - ErrorCode USER_SMS_CODE_IS_UNUSED = new ErrorCode(1005001006, "验证码未被使用");  
28 -  
29 - // ========== 用户模块 1005002000 ==========  
30 - ErrorCode USER_NOT_EXISTS = new ErrorCode(1005002001, "用户不存在");  
31 - ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1005002003, "密码校验失败");  
32 -}  
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/enums/package-info.java 0 → 100644
  1 +/**
  2 + * 占位
  3 + */
  4 +package cn.iocoder.yudao.module.member.enums;
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/enums/sms/SysSmsTemplateCodeConstants.java deleted
1 -package cn.iocoder.yudao.module.member.enums.sms;  
2 -  
3 -/**  
4 - * yudao-user-server 使用到的短信模板的 Code 编码的枚举  
5 - *  
6 - * @author 芋道源码  
7 - */  
8 -public interface SysSmsTemplateCodeConstants {  
9 -  
10 - /**  
11 - * 前台用户短信登录  
12 - */  
13 - String USER_SMS_LOGIN = "user-sms-login";  
14 -  
15 - /**  
16 - * 用户忘记密码  
17 - */  
18 - String USER_SMS_RESET_PASSWORD = "user-sms-reset-password";  
19 -  
20 - /**  
21 - * 用户更新手机号  
22 - */  
23 - String USER_SMS_UPDATE_MOBILE = "user-sms-update-mobile";  
24 -  
25 -}  
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/AuthService.java renamed to yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthService.java
@@ -12,7 +12,7 @@ import javax.validation.Valid; @@ -12,7 +12,7 @@ import javax.validation.Valid;
12 * 12 *
13 * @author 芋道源码 13 * @author 芋道源码
14 */ 14 */
15 -public interface AuthService extends SecurityAuthFrameworkService { 15 +public interface MemberAuthService extends SecurityAuthFrameworkService {
16 16
17 /** 17 /**
18 * 手机 + 密码登录 18 * 手机 + 密码登录
@@ -64,6 +64,23 @@ public interface AuthService extends SecurityAuthFrameworkService { @@ -64,6 +64,23 @@ public interface AuthService extends SecurityAuthFrameworkService {
64 void socialBind(Long userId, @Valid AppAuthSocialBindReqVO reqVO); 64 void socialBind(Long userId, @Valid AppAuthSocialBindReqVO reqVO);
65 65
66 /** 66 /**
  67 + * 取消社交绑定
  68 + *
  69 + * @param userId 用户编号
  70 + * @param reqVO 解绑信息
  71 + */
  72 + void unbindSocialUser(Long userId, @Valid AppAuthSocialUnbindReqVO reqVO);
  73 +
  74 + /**
  75 + * 获得社交认证 URL
  76 + *
  77 + * @param type 社交平台类型
  78 + * @param redirectUri 跳转地址
  79 + * @return 认证 URL
  80 + */
  81 + String getSocialAuthorizeUrl(Integer type, String redirectUri);
  82 +
  83 + /**
67 * 修改用户密码 84 * 修改用户密码
68 * @param userId 用户id 85 * @param userId 用户id
69 * @param userReqVO 用户请求实体类 86 * @param userReqVO 用户请求实体类
@@ -76,4 +93,12 @@ public interface AuthService extends SecurityAuthFrameworkService { @@ -76,4 +93,12 @@ public interface AuthService extends SecurityAuthFrameworkService {
76 */ 93 */
77 void resetPassword(AppAuthResetPasswordReqVO userReqVO); 94 void resetPassword(AppAuthResetPasswordReqVO userReqVO);
78 95
  96 + /**
  97 + * 给用户发送短信验证码
  98 + *
  99 + * @param userId 用户编号
  100 + * @param reqVO 发送信息
  101 + */
  102 + void sendSmsCode(Long userId, AppAuthSendSmsReqVO reqVO);
  103 +
79 } 104 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/AuthServiceImpl.java renamed to yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/auth/MemberAuthServiceImpl.java
1 package cn.iocoder.yudao.module.member.service.auth; 1 package cn.iocoder.yudao.module.member.service.auth;
2 2
3 -import cn.hutool.core.collection.CollUtil;  
4 import cn.hutool.core.lang.Assert; 3 import cn.hutool.core.lang.Assert;
5 -import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;  
6 -import cn.iocoder.yudao.module.system.enums.logger.SysLoginLogTypeEnum;  
7 -import cn.iocoder.yudao.module.system.enums.logger.SysLoginResultEnum;  
8 -import cn.iocoder.yudao.module.system.service.auth.SysUserSessionCoreService;  
9 -import cn.iocoder.yudao.module.system.service.logger.SysLoginLogCoreService;  
10 -import cn.iocoder.yudao.module.system.service.logger.dto.SysLoginLogCreateReqDTO;  
11 -import cn.iocoder.yudao.module.system.service.social.SysSocialCoreService;  
12 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
13 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 5 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
14 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 6 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
@@ -17,14 +9,18 @@ import cn.iocoder.yudao.framework.security.core.LoginUser; @@ -17,14 +9,18 @@ import cn.iocoder.yudao.framework.security.core.LoginUser;
17 import cn.iocoder.yudao.framework.security.core.authentication.MultiUsernamePasswordAuthenticationToken; 9 import cn.iocoder.yudao.framework.security.core.authentication.MultiUsernamePasswordAuthenticationToken;
18 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*; 10 import cn.iocoder.yudao.module.member.controller.app.auth.vo.*;
19 import cn.iocoder.yudao.module.member.convert.auth.AuthConvert; 11 import cn.iocoder.yudao.module.member.convert.auth.AuthConvert;
20 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;  
21 -import cn.iocoder.yudao.module.member.dal.mysql.user.UserMapper;  
22 -import cn.iocoder.yudao.module.member.enums.sms.SysSmsSceneEnum;  
23 -import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService;  
24 -import cn.iocoder.yudao.module.member.service.user.UserService; 12 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
  13 +import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
  14 +import cn.iocoder.yudao.module.member.service.user.MemberUserService;
  15 +import cn.iocoder.yudao.module.system.api.auth.UserSessionApi;
  16 +import cn.iocoder.yudao.module.system.api.logger.LoginLogApi;
  17 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
  18 +import cn.iocoder.yudao.module.system.api.social.SocialUserApi;
  19 +import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
  20 +import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
  21 +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
25 import com.google.common.annotations.VisibleForTesting; 22 import com.google.common.annotations.VisibleForTesting;
26 import lombok.extern.slf4j.Slf4j; 23 import lombok.extern.slf4j.Slf4j;
27 -import me.zhyd.oauth.model.AuthUser;  
28 import org.springframework.context.annotation.Lazy; 24 import org.springframework.context.annotation.Lazy;
29 import org.springframework.security.authentication.AuthenticationManager; 25 import org.springframework.security.authentication.AuthenticationManager;
30 import org.springframework.security.authentication.BadCredentialsException; 26 import org.springframework.security.authentication.BadCredentialsException;
@@ -38,46 +34,45 @@ import org.springframework.stereotype.Service; @@ -38,46 +34,45 @@ import org.springframework.stereotype.Service;
38 import org.springframework.transaction.annotation.Transactional; 34 import org.springframework.transaction.annotation.Transactional;
39 35
40 import javax.annotation.Resource; 36 import javax.annotation.Resource;
41 -import java.util.List;  
42 import java.util.Objects; 37 import java.util.Objects;
43 38
44 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 39 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
45 import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP; 40 import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
46 -import static cn.iocoder.yudao.module.member.enums.SysErrorCodeConstants.*; 41 +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
47 42
48 /** 43 /**
49 * 会员的认证 Service 接口 44 * 会员的认证 Service 接口
50 * 45 *
51 * @author 芋道源码 46 * @author 芋道源码
52 */ 47 */
53 -@Service("memberAuthService") 48 +@Service
54 @Slf4j 49 @Slf4j
55 -public class AuthServiceImpl implements AuthService { 50 +public class MemberAuthServiceImpl implements MemberAuthService {
56 51
57 @Resource 52 @Resource
58 @Lazy // 延迟加载,因为存在相互依赖的问题 53 @Lazy // 延迟加载,因为存在相互依赖的问题
59 private AuthenticationManager authenticationManager; 54 private AuthenticationManager authenticationManager;
60 55
61 @Resource 56 @Resource
62 - private UserService userService; 57 + private MemberUserService userService;
63 @Resource 58 @Resource
64 private SysSmsCodeService smsCodeService; 59 private SysSmsCodeService smsCodeService;
65 @Resource 60 @Resource
66 - private SysLoginLogCoreService loginLogCoreService; 61 + private LoginLogApi loginLogApi;
67 @Resource 62 @Resource
68 - private SysUserSessionCoreService userSessionCoreService; 63 + private UserSessionApi userSessionApi;
69 @Resource 64 @Resource
70 - private SysSocialCoreService socialService; 65 + private SocialUserApi socialUserApi;
71 66
72 @Resource 67 @Resource
73 private PasswordEncoder passwordEncoder; 68 private PasswordEncoder passwordEncoder;
74 @Resource 69 @Resource
75 - private UserMapper userMapper; 70 + private MemberUserMapper userMapper;
76 71
77 @Override 72 @Override
78 public UserDetails loadUserByUsername(String mobile) throws UsernameNotFoundException { 73 public UserDetails loadUserByUsername(String mobile) throws UsernameNotFoundException {
79 // 获取 username 对应的 SysUserDO 74 // 获取 username 对应的 SysUserDO
80 - UserDO user = userService.getUserByMobile(mobile); 75 + MemberUserDO user = userService.getUserByMobile(mobile);
81 if (user == null) { 76 if (user == null) {
82 throw new UsernameNotFoundException(mobile); 77 throw new UsernameNotFoundException(mobile);
83 } 78 }
@@ -91,86 +86,87 @@ public class AuthServiceImpl implements AuthService { @@ -91,86 +86,87 @@ public class AuthServiceImpl implements AuthService {
91 LoginUser loginUser = this.login0(reqVO.getMobile(), reqVO.getPassword()); 86 LoginUser loginUser = this.login0(reqVO.getMobile(), reqVO.getPassword());
92 87
93 // 缓存登录用户到 Redis 中,返回 sessionId 编号 88 // 缓存登录用户到 Redis 中,返回 sessionId 编号
94 - return userSessionCoreService.createUserSession(loginUser, userIp, userAgent); 89 + return userSessionApi.createUserSession(loginUser, userIp, userAgent);
95 } 90 }
96 91
97 @Override 92 @Override
98 @Transactional 93 @Transactional
99 public String smsLogin(AppAuthSmsLoginReqVO reqVO, String userIp, String userAgent) { 94 public String smsLogin(AppAuthSmsLoginReqVO reqVO, String userIp, String userAgent) {
100 // 校验验证码 95 // 校验验证码
101 - smsCodeService.useSmsCode(reqVO.getMobile(), SysSmsSceneEnum.LOGIN_BY_SMS.getScene(), 96 + smsCodeService.useSmsCode(reqVO.getMobile(), SmsSceneEnum.MEMBER_LOGIN.getScene(),
102 reqVO.getCode(), userIp); 97 reqVO.getCode(), userIp);
103 98
104 // 获得获得注册用户 99 // 获得获得注册用户
105 - UserDO user = userService.createUserIfAbsent(reqVO.getMobile(), userIp); 100 + MemberUserDO user = userService.createUserIfAbsent(reqVO.getMobile(), userIp);
106 Assert.notNull(user, "获取用户失败,结果为空"); 101 Assert.notNull(user, "获取用户失败,结果为空");
107 102
108 // 执行登陆 103 // 执行登陆
109 - this.createLoginLog(user.getMobile(), SysLoginLogTypeEnum.LOGIN_SMS, SysLoginResultEnum.SUCCESS); 104 + this.createLoginLog(user.getMobile(), LoginLogTypeEnum.LOGIN_SMS, LoginResultEnum.SUCCESS);
110 LoginUser loginUser = AuthConvert.INSTANCE.convert(user); 105 LoginUser loginUser = AuthConvert.INSTANCE.convert(user);
111 106
112 // 缓存登录用户到 Redis 中,返回 sessionId 编号 107 // 缓存登录用户到 Redis 中,返回 sessionId 编号
113 - return userSessionCoreService.createUserSession(loginUser, userIp, userAgent); 108 + return userSessionApi.createUserSession(loginUser, userIp, userAgent);
114 } 109 }
115 110
116 @Override 111 @Override
117 public String socialLogin(AppAuthSocialLoginReqVO reqVO, String userIp, String userAgent) { 112 public String socialLogin(AppAuthSocialLoginReqVO reqVO, String userIp, String userAgent) {
118 - // 使用 code 授权码,进行登录  
119 - AuthUser authUser = socialService.getAuthUser(reqVO.getType(), reqVO.getCode(), reqVO.getState());  
120 - org.springframework.util.Assert.notNull(authUser, "授权用户不为空");  
121 -  
122 - // 如果未绑定 SysSocialUserDO 用户,则无法自动登录,进行报错  
123 - String unionId = socialService.getAuthUserUnionId(authUser);  
124 - List<SysSocialUserDO> socialUsers = socialService.getAllSocialUserList(reqVO.getType(), unionId, getUserType());  
125 - if (CollUtil.isEmpty(socialUsers)) { 113 + // 使用 code 授权码,进行登录。然后,获得到绑定的用户编号
  114 + Long userId = socialUserApi.getBindUserId(UserTypeEnum.MEMBER.getValue(), reqVO.getType(),
  115 + reqVO.getCode(), reqVO.getState());
  116 + if (userId == null) {
126 throw exception(AUTH_THIRD_LOGIN_NOT_BIND); 117 throw exception(AUTH_THIRD_LOGIN_NOT_BIND);
127 } 118 }
128 119
129 // 自动登录 120 // 自动登录
130 - UserDO user = userService.getUser(socialUsers.get(0).getUserId()); 121 + MemberUserDO user = userService.getUser(userId);
131 if (user == null) { 122 if (user == null) {
132 throw exception(USER_NOT_EXISTS); 123 throw exception(USER_NOT_EXISTS);
133 } 124 }
134 - this.createLoginLog(user.getMobile(), SysLoginLogTypeEnum.LOGIN_SOCIAL, SysLoginResultEnum.SUCCESS); 125 + this.createLoginLog(user.getMobile(), LoginLogTypeEnum.LOGIN_SOCIAL, LoginResultEnum.SUCCESS);
135 126
136 // 创建 LoginUser 对象 127 // 创建 LoginUser 对象
137 LoginUser loginUser = AuthConvert.INSTANCE.convert(user); 128 LoginUser loginUser = AuthConvert.INSTANCE.convert(user);
138 129
139 // 绑定社交用户(更新) 130 // 绑定社交用户(更新)
140 - socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType()); 131 + socialUserApi.bindSocialUser(AuthConvert.INSTANCE.convert(loginUser.getId(), getUserType().getValue(), reqVO));
141 132
142 // 缓存登录用户到 Redis 中,返回 sessionId 编号 133 // 缓存登录用户到 Redis 中,返回 sessionId 编号
143 - return userSessionCoreService.createUserSession(loginUser, userIp, userAgent); 134 + return userSessionApi.createUserSession(loginUser, userIp, userAgent);
144 } 135 }
145 136
146 @Override 137 @Override
147 public String socialLogin2(AppAuthSocialLogin2ReqVO reqVO, String userIp, String userAgent) { 138 public String socialLogin2(AppAuthSocialLogin2ReqVO reqVO, String userIp, String userAgent) {
148 - AuthUser authUser = socialService.getAuthUser(reqVO.getType(), reqVO.getCode(), reqVO.getState());  
149 - org.springframework.util.Assert.notNull(authUser, "授权用户不为空"); 139 + // 校验社交平台的认证信息是否正确
  140 + socialUserApi.checkSocialUser(reqVO.getType(), reqVO.getCode(), reqVO.getState());
150 141
151 // 使用手机号、手机验证码登录 142 // 使用手机号、手机验证码登录
152 AppAuthSmsLoginReqVO loginReqVO = AppAuthSmsLoginReqVO.builder() 143 AppAuthSmsLoginReqVO loginReqVO = AppAuthSmsLoginReqVO.builder()
153 .mobile(reqVO.getMobile()).code(reqVO.getSmsCode()).build(); 144 .mobile(reqVO.getMobile()).code(reqVO.getSmsCode()).build();
154 String sessionId = this.smsLogin(loginReqVO, userIp, userAgent); 145 String sessionId = this.smsLogin(loginReqVO, userIp, userAgent);
155 - LoginUser loginUser = userSessionCoreService.getLoginUser(sessionId); 146 + LoginUser loginUser = userSessionApi.getLoginUser(sessionId);
156 147
157 // 绑定社交用户(新增) 148 // 绑定社交用户(新增)
158 - socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType()); 149 + socialUserApi.bindSocialUser(AuthConvert.INSTANCE.convert(loginUser.getId(), getUserType().getValue(), reqVO));
159 return sessionId; 150 return sessionId;
160 } 151 }
161 152
162 @Override 153 @Override
163 public void socialBind(Long userId, AppAuthSocialBindReqVO reqVO) { 154 public void socialBind(Long userId, AppAuthSocialBindReqVO reqVO) {
164 - // 使用 code 授权码,进行登录  
165 - AuthUser authUser = socialService.getAuthUser(reqVO.getType(), reqVO.getCode(), reqVO.getState());  
166 - org.springframework.util.Assert.notNull(authUser, "授权用户不为空"); 155 + socialUserApi.bindSocialUser(AuthConvert.INSTANCE.convert(userId, getUserType().getValue(), reqVO));
  156 + }
167 157
168 - // 绑定社交用户(新增)  
169 - socialService.bindSocialUser(userId, reqVO.getType(), authUser, getUserType()); 158 + @Override
  159 + public void unbindSocialUser(Long userId, AppAuthSocialUnbindReqVO reqVO) {
  160 + socialUserApi.unbindSocialUser(AuthConvert.INSTANCE.convert(userId, getUserType().getValue(), reqVO));
  161 + }
  162 +
  163 + @Override
  164 + public String getSocialAuthorizeUrl(Integer type, String redirectUri) {
  165 + return socialUserApi.getAuthorizeUrl(type, redirectUri);
170 } 166 }
171 167
172 private LoginUser login0(String username, String password) { 168 private LoginUser login0(String username, String password) {
173 - final SysLoginLogTypeEnum logTypeEnum = SysLoginLogTypeEnum.LOGIN_USERNAME; 169 + final LoginLogTypeEnum logType = LoginLogTypeEnum.LOGIN_USERNAME;
174 // 用户验证 170 // 用户验证
175 Authentication authentication; 171 Authentication authentication;
176 try { 172 try {
@@ -179,28 +175,28 @@ public class AuthServiceImpl implements AuthService { @@ -179,28 +175,28 @@ public class AuthServiceImpl implements AuthService {
179 authentication = authenticationManager.authenticate(new MultiUsernamePasswordAuthenticationToken( 175 authentication = authenticationManager.authenticate(new MultiUsernamePasswordAuthenticationToken(
180 username, password, getUserType())); 176 username, password, getUserType()));
181 } catch (BadCredentialsException badCredentialsException) { 177 } catch (BadCredentialsException badCredentialsException) {
182 - this.createLoginLog(username, logTypeEnum, SysLoginResultEnum.BAD_CREDENTIALS); 178 + this.createLoginLog(username, logType, LoginResultEnum.BAD_CREDENTIALS);
183 throw exception(AUTH_LOGIN_BAD_CREDENTIALS); 179 throw exception(AUTH_LOGIN_BAD_CREDENTIALS);
184 } catch (DisabledException disabledException) { 180 } catch (DisabledException disabledException) {
185 - this.createLoginLog(username, logTypeEnum, SysLoginResultEnum.USER_DISABLED); 181 + this.createLoginLog(username, logType, LoginResultEnum.USER_DISABLED);
186 throw exception(AUTH_LOGIN_USER_DISABLED); 182 throw exception(AUTH_LOGIN_USER_DISABLED);
187 } catch (AuthenticationException authenticationException) { 183 } catch (AuthenticationException authenticationException) {
188 log.error("[login0][username({}) 发生未知异常]", username, authenticationException); 184 log.error("[login0][username({}) 发生未知异常]", username, authenticationException);
189 - this.createLoginLog(username, logTypeEnum, SysLoginResultEnum.UNKNOWN_ERROR); 185 + this.createLoginLog(username, logType, LoginResultEnum.UNKNOWN_ERROR);
190 throw exception(AUTH_LOGIN_FAIL_UNKNOWN); 186 throw exception(AUTH_LOGIN_FAIL_UNKNOWN);
191 } 187 }
192 // 登录成功的日志 188 // 登录成功的日志
193 Assert.notNull(authentication.getPrincipal(), "Principal 不会为空"); 189 Assert.notNull(authentication.getPrincipal(), "Principal 不会为空");
194 - this.createLoginLog(username, logTypeEnum, SysLoginResultEnum.SUCCESS); 190 + this.createLoginLog(username, logType, LoginResultEnum.SUCCESS);
195 return (LoginUser) authentication.getPrincipal(); 191 return (LoginUser) authentication.getPrincipal();
196 } 192 }
197 193
198 - private void createLoginLog(String mobile, SysLoginLogTypeEnum logTypeEnum, SysLoginResultEnum loginResult) { 194 + private void createLoginLog(String mobile, LoginLogTypeEnum logType, LoginResultEnum loginResult) {
199 // 获得用户 195 // 获得用户
200 - UserDO user = userService.getUserByMobile(mobile); 196 + MemberUserDO user = userService.getUserByMobile(mobile);
201 // 插入登录日志 197 // 插入登录日志
202 - SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO();  
203 - reqDTO.setLogType(logTypeEnum.getType()); 198 + LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
  199 + reqDTO.setLogType(logType.getType());
204 reqDTO.setTraceId(TracerUtils.getTraceId()); 200 reqDTO.setTraceId(TracerUtils.getTraceId());
205 if (user != null) { 201 if (user != null) {
206 reqDTO.setUserId(user.getId()); 202 reqDTO.setUserId(user.getId());
@@ -209,9 +205,9 @@ public class AuthServiceImpl implements AuthService { @@ -209,9 +205,9 @@ public class AuthServiceImpl implements AuthService {
209 reqDTO.setUserAgent(ServletUtils.getUserAgent()); 205 reqDTO.setUserAgent(ServletUtils.getUserAgent());
210 reqDTO.setUserIp(getClientIP()); 206 reqDTO.setUserIp(getClientIP());
211 reqDTO.setResult(loginResult.getResult()); 207 reqDTO.setResult(loginResult.getResult());
212 - loginLogCoreService.createLoginLog(reqDTO); 208 + loginLogApi.createLoginLog(reqDTO);
213 // 更新最后登录时间 209 // 更新最后登录时间
214 - if (user != null && Objects.equals(SysLoginResultEnum.SUCCESS.getResult(), loginResult.getResult())) { 210 + if (user != null && Objects.equals(LoginResultEnum.SUCCESS.getResult(), loginResult.getResult())) {
215 userService.updateUserLogin(user.getId(), getClientIP()); 211 userService.updateUserLogin(user.getId(), getClientIP());
216 } 212 }
217 } 213 }
@@ -219,7 +215,7 @@ public class AuthServiceImpl implements AuthService { @@ -219,7 +215,7 @@ public class AuthServiceImpl implements AuthService {
219 @Override 215 @Override
220 public LoginUser verifyTokenAndRefresh(String token) { 216 public LoginUser verifyTokenAndRefresh(String token) {
221 // 获得 LoginUser 217 // 获得 LoginUser
222 - LoginUser loginUser = userSessionCoreService.getLoginUser(token); 218 + LoginUser loginUser = userSessionApi.getLoginUser(token);
223 if (loginUser == null) { 219 if (loginUser == null) {
224 return null; 220 return null;
225 } 221 }
@@ -231,31 +227,31 @@ public class AuthServiceImpl implements AuthService { @@ -231,31 +227,31 @@ public class AuthServiceImpl implements AuthService {
231 private void refreshLoginUserCache(String token, LoginUser loginUser) { 227 private void refreshLoginUserCache(String token, LoginUser loginUser) {
232 // 每 1/3 的 Session 超时时间,刷新 LoginUser 缓存 228 // 每 1/3 的 Session 超时时间,刷新 LoginUser 缓存
233 if (System.currentTimeMillis() - loginUser.getUpdateTime().getTime() < 229 if (System.currentTimeMillis() - loginUser.getUpdateTime().getTime() <
234 - userSessionCoreService.getSessionTimeoutMillis() / 3) { 230 + userSessionApi.getSessionTimeoutMillis() / 3) {
235 return; 231 return;
236 } 232 }
237 233
238 // 重新加载 UserDO 信息 234 // 重新加载 UserDO 信息
239 - UserDO user = userService.getUser(loginUser.getId()); 235 + MemberUserDO user = userService.getUser(loginUser.getId());
240 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) { 236 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) {
241 // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面 237 // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面
242 throw exception(AUTH_TOKEN_EXPIRED); 238 throw exception(AUTH_TOKEN_EXPIRED);
243 } 239 }
244 240
245 // 刷新 LoginUser 缓存 241 // 刷新 LoginUser 缓存
246 - userSessionCoreService.refreshUserSession(token, loginUser); 242 + userSessionApi.refreshUserSession(token, loginUser);
247 } 243 }
248 244
249 @Override 245 @Override
250 public LoginUser mockLogin(Long userId) { 246 public LoginUser mockLogin(Long userId) {
251 // 获取用户编号对应的 UserDO 247 // 获取用户编号对应的 UserDO
252 - UserDO user = userService.getUser(userId); 248 + MemberUserDO user = userService.getUser(userId);
253 if (user == null) { 249 if (user == null) {
254 throw new UsernameNotFoundException(String.valueOf(userId)); 250 throw new UsernameNotFoundException(String.valueOf(userId));
255 } 251 }
256 252
257 // 执行登陆 253 // 执行登陆
258 - this.createLoginLog(user.getMobile(), SysLoginLogTypeEnum.LOGIN_MOCK, SysLoginResultEnum.SUCCESS); 254 + this.createLoginLog(user.getMobile(), LoginLogTypeEnum.LOGIN_MOCK, LoginResultEnum.SUCCESS);
259 255
260 // 创建 LoginUser 对象 256 // 创建 LoginUser 对象
261 return AuthConvert.INSTANCE.convert(user); 257 return AuthConvert.INSTANCE.convert(user);
@@ -264,12 +260,12 @@ public class AuthServiceImpl implements AuthService { @@ -264,12 +260,12 @@ public class AuthServiceImpl implements AuthService {
264 @Override 260 @Override
265 public void logout(String token) { 261 public void logout(String token) {
266 // 查询用户信息 262 // 查询用户信息
267 - LoginUser loginUser = userSessionCoreService.getLoginUser(token); 263 + LoginUser loginUser = userSessionApi.getLoginUser(token);
268 if (loginUser == null) { 264 if (loginUser == null) {
269 return; 265 return;
270 } 266 }
271 // 删除 session 267 // 删除 session
272 - userSessionCoreService.deleteUserSession(token); 268 + userSessionApi.deleteUserSession(token);
273 // 记录登出日志 269 // 记录登出日志
274 this.createLogoutLog(loginUser.getId(), loginUser.getUsername()); 270 this.createLogoutLog(loginUser.getId(), loginUser.getUsername());
275 } 271 }
@@ -282,10 +278,10 @@ public class AuthServiceImpl implements AuthService { @@ -282,10 +278,10 @@ public class AuthServiceImpl implements AuthService {
282 @Override 278 @Override
283 public void updatePassword(Long userId, AppAuthUpdatePasswordReqVO reqVO) { 279 public void updatePassword(Long userId, AppAuthUpdatePasswordReqVO reqVO) {
284 // 检验旧密码 280 // 检验旧密码
285 - UserDO userDO = checkOldPassword(userId, reqVO.getOldPassword()); 281 + MemberUserDO userDO = checkOldPassword(userId, reqVO.getOldPassword());
286 282
287 // 更新用户密码 283 // 更新用户密码
288 - UserDO mbrUserDO = UserDO.builder().id(userDO.getId()) 284 + MemberUserDO mbrUserDO = MemberUserDO.builder().id(userDO.getId())
289 .password(passwordEncoder.encode(reqVO.getPassword())).build(); 285 .password(passwordEncoder.encode(reqVO.getPassword())).build();
290 userMapper.updateById(mbrUserDO); 286 userMapper.updateById(mbrUserDO);
291 } 287 }
@@ -293,19 +289,24 @@ public class AuthServiceImpl implements AuthService { @@ -293,19 +289,24 @@ public class AuthServiceImpl implements AuthService {
293 @Override 289 @Override
294 public void resetPassword(AppAuthResetPasswordReqVO reqVO) { 290 public void resetPassword(AppAuthResetPasswordReqVO reqVO) {
295 // 检验用户是否存在 291 // 检验用户是否存在
296 - UserDO userDO = checkUserIfExists(reqVO.getMobile()); 292 + MemberUserDO userDO = checkUserIfExists(reqVO.getMobile());
297 293
298 // 使用验证码 294 // 使用验证码
299 - smsCodeService.useSmsCode(reqVO.getMobile(),SysSmsSceneEnum.FORGET_MOBILE_BY_SMS.getScene(), reqVO.getCode(), 295 + smsCodeService.useSmsCode(reqVO.getMobile(), SmsSceneEnum.MEMBER_FORGET_PASSWORD.getScene(), reqVO.getCode(),
300 getClientIP()); 296 getClientIP());
301 297
302 // 更新密码 298 // 更新密码
303 - UserDO mbrUserDO = UserDO.builder().build(); 299 + MemberUserDO mbrUserDO = MemberUserDO.builder().build();
304 mbrUserDO.setId(userDO.getId()); 300 mbrUserDO.setId(userDO.getId());
305 mbrUserDO.setPassword(passwordEncoder.encode(reqVO.getPassword())); 301 mbrUserDO.setPassword(passwordEncoder.encode(reqVO.getPassword()));
306 userMapper.updateById(mbrUserDO); 302 userMapper.updateById(mbrUserDO);
307 } 303 }
308 304
  305 + @Override
  306 + public void sendSmsCode(Long userId, AppAuthSendSmsReqVO reqVO) {
  307 + // TODO 芋艿:修改
  308 + }
  309 +
309 /** 310 /**
310 * 校验旧密码 311 * 校验旧密码
311 * 312 *
@@ -314,8 +315,8 @@ public class AuthServiceImpl implements AuthService { @@ -314,8 +315,8 @@ public class AuthServiceImpl implements AuthService {
314 * @return MemberUserDO 用户实体 315 * @return MemberUserDO 用户实体
315 */ 316 */
316 @VisibleForTesting 317 @VisibleForTesting
317 - public UserDO checkOldPassword(Long id, String oldPassword) {  
318 - UserDO user = userMapper.selectById(id); 318 + public MemberUserDO checkOldPassword(Long id, String oldPassword) {
  319 + MemberUserDO user = userMapper.selectById(id);
319 if (user == null) { 320 if (user == null) {
320 throw exception(USER_NOT_EXISTS); 321 throw exception(USER_NOT_EXISTS);
321 } 322 }
@@ -326,8 +327,8 @@ public class AuthServiceImpl implements AuthService { @@ -326,8 +327,8 @@ public class AuthServiceImpl implements AuthService {
326 return user; 327 return user;
327 } 328 }
328 329
329 - public UserDO checkUserIfExists(String mobile) {  
330 - UserDO user = userMapper.selectByMobile(mobile); 330 + public MemberUserDO checkUserIfExists(String mobile) {
  331 + MemberUserDO user = userMapper.selectByMobile(mobile);
331 if (user == null) { 332 if (user == null) {
332 throw exception(USER_NOT_EXISTS); 333 throw exception(USER_NOT_EXISTS);
333 } 334 }
@@ -335,16 +336,16 @@ public class AuthServiceImpl implements AuthService { @@ -335,16 +336,16 @@ public class AuthServiceImpl implements AuthService {
335 } 336 }
336 337
337 private void createLogoutLog(Long userId, String username) { 338 private void createLogoutLog(Long userId, String username) {
338 - SysLoginLogCreateReqDTO reqDTO = new SysLoginLogCreateReqDTO();  
339 - reqDTO.setLogType(SysLoginLogTypeEnum.LOGOUT_SELF.getType()); 339 + LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
  340 + reqDTO.setLogType(LoginLogTypeEnum.LOGOUT_SELF.getType());
340 reqDTO.setTraceId(TracerUtils.getTraceId()); 341 reqDTO.setTraceId(TracerUtils.getTraceId());
341 reqDTO.setUserId(userId); 342 reqDTO.setUserId(userId);
342 reqDTO.setUserType(getUserType().getValue()); 343 reqDTO.setUserType(getUserType().getValue());
343 reqDTO.setUsername(username); 344 reqDTO.setUsername(username);
344 reqDTO.setUserAgent(ServletUtils.getUserAgent()); 345 reqDTO.setUserAgent(ServletUtils.getUserAgent());
345 reqDTO.setUserIp(getClientIP()); 346 reqDTO.setUserIp(getClientIP());
346 - reqDTO.setResult(SysLoginResultEnum.SUCCESS.getResult());  
347 - loginLogCoreService.createLoginLog(reqDTO); 347 + reqDTO.setResult(LoginResultEnum.SUCCESS.getResult());
  348 + loginLogApi.createLoginLog(reqDTO);
348 } 349 }
349 350
350 } 351 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/user/UserService.java renamed to yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserService.java
1 package cn.iocoder.yudao.module.member.service.user; 1 package cn.iocoder.yudao.module.member.service.user;
2 2
3 import cn.iocoder.yudao.framework.common.validation.Mobile; 3 import cn.iocoder.yudao.framework.common.validation.Mobile;
4 -import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserInfoRespVO;  
5 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 4 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO;
6 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO; 5 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
7 6
8 import java.io.InputStream; 7 import java.io.InputStream;
9 8
@@ -12,7 +11,7 @@ import java.io.InputStream; @@ -12,7 +11,7 @@ import java.io.InputStream;
12 * 11 *
13 * @author 芋道源码 12 * @author 芋道源码
14 */ 13 */
15 -public interface UserService { 14 +public interface MemberUserService {
16 15
17 /** 16 /**
18 * 通过手机查询用户 17 * 通过手机查询用户
@@ -20,7 +19,7 @@ public interface UserService { @@ -20,7 +19,7 @@ public interface UserService {
20 * @param mobile 手机 19 * @param mobile 手机
21 * @return 用户对象 20 * @return 用户对象
22 */ 21 */
23 - UserDO getUserByMobile(String mobile); 22 + MemberUserDO getUserByMobile(String mobile);
24 23
25 /** 24 /**
26 * 基于手机号创建用户。 25 * 基于手机号创建用户。
@@ -30,7 +29,7 @@ public interface UserService { @@ -30,7 +29,7 @@ public interface UserService {
30 * @param registerIp 注册 IP 29 * @param registerIp 注册 IP
31 * @return 用户对象 30 * @return 用户对象
32 */ 31 */
33 - UserDO createUserIfAbsent(@Mobile String mobile, String registerIp); 32 + MemberUserDO createUserIfAbsent(@Mobile String mobile, String registerIp);
34 33
35 /** 34 /**
36 * 更新用户的最后登陆信息 35 * 更新用户的最后登陆信息
@@ -46,7 +45,7 @@ public interface UserService { @@ -46,7 +45,7 @@ public interface UserService {
46 * @param id 用户ID 45 * @param id 用户ID
47 * @return 用户对象信息 46 * @return 用户对象信息
48 */ 47 */
49 - UserDO getUser(Long id); 48 + MemberUserDO getUser(Long id);
50 49
51 /** 50 /**
52 * 修改用户昵称 51 * 修改用户昵称
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/user/UserServiceImpl.java renamed to yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImpl.java
@@ -6,11 +6,11 @@ import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreServic @@ -6,11 +6,11 @@ import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreServic
6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
7 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 7 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
8 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 8 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO;
9 -import cn.iocoder.yudao.module.member.dal.dataobject.sms.SysSmsCodeDO;  
10 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;  
11 -import cn.iocoder.yudao.module.member.dal.mysql.user.UserMapper; 9 +import cn.iocoder.yudao.module.member.dal.dataobject.sms.SmsCodeDO;
  10 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
  11 +import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
12 import cn.iocoder.yudao.module.member.enums.SysErrorCodeConstants; 12 import cn.iocoder.yudao.module.member.enums.SysErrorCodeConstants;
13 -import cn.iocoder.yudao.module.member.enums.sms.SysSmsSceneEnum; 13 +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
14 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService; 14 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService;
15 import com.google.common.annotations.VisibleForTesting; 15 import com.google.common.annotations.VisibleForTesting;
16 import lombok.extern.slf4j.Slf4j; 16 import lombok.extern.slf4j.Slf4j;
@@ -25,20 +25,20 @@ import java.util.Date; @@ -25,20 +25,20 @@ import java.util.Date;
25 25
26 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 26 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
27 import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP; 27 import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
28 -import static cn.iocoder.yudao.module.member.enums.MemberErrorCodeConstants.USER_NOT_EXISTS; 28 +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.USER_NOT_EXISTS;
29 29
30 /** 30 /**
31 * 会员 User Service 实现类 31 * 会员 User Service 实现类
32 * 32 *
33 * @author 芋道源码 33 * @author 芋道源码
34 */ 34 */
35 -@Service("memberUserService") 35 +@Service
36 @Valid 36 @Valid
37 @Slf4j 37 @Slf4j
38 -public class UserServiceImpl implements UserService { 38 +public class MemberUserServiceImpl implements MemberUserService {
39 39
40 @Resource 40 @Resource
41 - private UserMapper memberUserMapper; 41 + private MemberUserMapper memberUserMapper;
42 42
43 @Resource 43 @Resource
44 private InfFileCoreService fileCoreService; 44 private InfFileCoreService fileCoreService;
@@ -49,14 +49,14 @@ public class UserServiceImpl implements UserService { @@ -49,14 +49,14 @@ public class UserServiceImpl implements UserService {
49 private PasswordEncoder passwordEncoder; 49 private PasswordEncoder passwordEncoder;
50 50
51 @Override 51 @Override
52 - public UserDO getUserByMobile(String mobile) { 52 + public MemberUserDO getUserByMobile(String mobile) {
53 return memberUserMapper.selectByMobile(mobile); 53 return memberUserMapper.selectByMobile(mobile);
54 } 54 }
55 55
56 @Override 56 @Override
57 - public UserDO createUserIfAbsent(String mobile, String registerIp) { 57 + public MemberUserDO createUserIfAbsent(String mobile, String registerIp) {
58 // 用户已经存在 58 // 用户已经存在
59 - UserDO user = memberUserMapper.selectByMobile(mobile); 59 + MemberUserDO user = memberUserMapper.selectByMobile(mobile);
60 if (user != null) { 60 if (user != null) {
61 return user; 61 return user;
62 } 62 }
@@ -64,11 +64,11 @@ public class UserServiceImpl implements UserService { @@ -64,11 +64,11 @@ public class UserServiceImpl implements UserService {
64 return this.createUser(mobile, registerIp); 64 return this.createUser(mobile, registerIp);
65 } 65 }
66 66
67 - private UserDO createUser(String mobile, String registerIp) { 67 + private MemberUserDO createUser(String mobile, String registerIp) {
68 // 生成密码 68 // 生成密码
69 String password = IdUtil.fastSimpleUUID(); 69 String password = IdUtil.fastSimpleUUID();
70 // 插入用户 70 // 插入用户
71 - UserDO user = new UserDO(); 71 + MemberUserDO user = new MemberUserDO();
72 user.setMobile(mobile); 72 user.setMobile(mobile);
73 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 73 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
74 user.setPassword(passwordEncoder.encode(password)); // 加密密码 74 user.setPassword(passwordEncoder.encode(password)); // 加密密码
@@ -79,23 +79,23 @@ public class UserServiceImpl implements UserService { @@ -79,23 +79,23 @@ public class UserServiceImpl implements UserService {
79 79
80 @Override 80 @Override
81 public void updateUserLogin(Long id, String loginIp) { 81 public void updateUserLogin(Long id, String loginIp) {
82 - memberUserMapper.updateById(new UserDO().setId(id) 82 + memberUserMapper.updateById(new MemberUserDO().setId(id)
83 .setLoginIp(loginIp).setLoginDate(new Date())); 83 .setLoginIp(loginIp).setLoginDate(new Date()));
84 } 84 }
85 85
86 @Override 86 @Override
87 - public UserDO getUser(Long id) { 87 + public MemberUserDO getUser(Long id) {
88 return memberUserMapper.selectById(id); 88 return memberUserMapper.selectById(id);
89 } 89 }
90 90
91 @Override 91 @Override
92 public void updateUserNickname(Long userId, String nickname) { 92 public void updateUserNickname(Long userId, String nickname) {
93 - UserDO user = this.checkUserExists(userId); 93 + MemberUserDO user = this.checkUserExists(userId);
94 // 仅当新昵称不等于旧昵称时进行修改 94 // 仅当新昵称不等于旧昵称时进行修改
95 if (nickname.equals(user.getNickname())){ 95 if (nickname.equals(user.getNickname())){
96 return; 96 return;
97 } 97 }
98 - UserDO userDO = new UserDO(); 98 + MemberUserDO userDO = new MemberUserDO();
99 userDO.setId(user.getId()); 99 userDO.setId(user.getId());
100 userDO.setNickname(nickname); 100 userDO.setNickname(nickname);
101 memberUserMapper.updateById(userDO); 101 memberUserMapper.updateById(userDO);
@@ -107,7 +107,7 @@ public class UserServiceImpl implements UserService { @@ -107,7 +107,7 @@ public class UserServiceImpl implements UserService {
107 // 创建文件 107 // 创建文件
108 String avatar = fileCoreService.createFile(IdUtil.fastUUID(), IoUtil.readBytes(avatarFile)); 108 String avatar = fileCoreService.createFile(IdUtil.fastUUID(), IoUtil.readBytes(avatarFile));
109 // 更新头像路径 109 // 更新头像路径
110 - memberUserMapper.updateById(UserDO.builder().id(userId).avatar(avatar).build()); 110 + memberUserMapper.updateById(MemberUserDO.builder().id(userId).avatar(avatar).build());
111 return avatar; 111 return avatar;
112 } 112 }
113 113
@@ -117,27 +117,27 @@ public class UserServiceImpl implements UserService { @@ -117,27 +117,27 @@ public class UserServiceImpl implements UserService {
117 checkUserExists(userId); 117 checkUserExists(userId);
118 118
119 // 校验旧手机和旧验证码 119 // 校验旧手机和旧验证码
120 - SysSmsCodeDO sysSmsCodeDO = smsCodeService.checkCodeIsExpired(reqVO.getOldMobile(), reqVO.getOldCode(),  
121 - SysSmsSceneEnum.CHANGE_MOBILE_BY_SMS.getScene()); 120 + SmsCodeDO sysSmsCodeDO = smsCodeService.checkCodeIsExpired(reqVO.getOldMobile(), reqVO.getOldCode(),
  121 + SmsSceneEnum.MEMBER_UPDATE_MOBILE.getScene());
122 // 判断旧 code 是否未被使用,如果是,抛出异常 122 // 判断旧 code 是否未被使用,如果是,抛出异常
123 if (Boolean.FALSE.equals(sysSmsCodeDO.getUsed())){ 123 if (Boolean.FALSE.equals(sysSmsCodeDO.getUsed())){
124 throw ServiceExceptionUtil.exception(SysErrorCodeConstants.USER_SMS_CODE_IS_UNUSED); 124 throw ServiceExceptionUtil.exception(SysErrorCodeConstants.USER_SMS_CODE_IS_UNUSED);
125 } 125 }
126 126
127 // 使用新验证码 127 // 使用新验证码
128 - smsCodeService.useSmsCode(reqVO.getMobile(), SysSmsSceneEnum.CHANGE_MOBILE_BY_SMS.getScene(), 128 + smsCodeService.useSmsCode(reqVO.getMobile(), SmsSceneEnum.MEMBER_UPDATE_MOBILE.getScene(),
129 reqVO.getCode(),getClientIP()); 129 reqVO.getCode(),getClientIP());
130 130
131 // 更新用户手机 131 // 更新用户手机
132 - memberUserMapper.updateById(UserDO.builder().id(userId).mobile(reqVO.getMobile()).build()); 132 + memberUserMapper.updateById(MemberUserDO.builder().id(userId).mobile(reqVO.getMobile()).build());
133 } 133 }
134 134
135 @VisibleForTesting 135 @VisibleForTesting
136 - public UserDO checkUserExists(Long id) { 136 + public MemberUserDO checkUserExists(Long id) {
137 if (id == null) { 137 if (id == null) {
138 return null; 138 return null;
139 } 139 }
140 - UserDO user = memberUserMapper.selectById(id); 140 + MemberUserDO user = memberUserMapper.selectById(id);
141 if (user == null) { 141 if (user == null) {
142 throw exception(USER_NOT_EXISTS); 142 throw exception(USER_NOT_EXISTS);
143 } 143 }
yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/auth/SysAuthServiceTest.java
1 package cn.iocoder.yudao.module.member.service.auth; 1 package cn.iocoder.yudao.module.member.service.auth;
2 2
  3 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
3 import cn.iocoder.yudao.module.system.service.auth.SysUserSessionCoreService; 4 import cn.iocoder.yudao.module.system.service.auth.SysUserSessionCoreService;
4 import cn.iocoder.yudao.module.system.service.logger.SysLoginLogCoreService; 5 import cn.iocoder.yudao.module.system.service.logger.SysLoginLogCoreService;
5 import cn.iocoder.yudao.module.system.service.social.SysSocialCoreService; 6 import cn.iocoder.yudao.module.system.service.social.SysSocialCoreService;
@@ -8,10 +9,9 @@ import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; @@ -8,10 +9,9 @@ import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
8 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; 9 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
9 import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthResetPasswordReqVO; 10 import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthResetPasswordReqVO;
10 import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthUpdatePasswordReqVO; 11 import cn.iocoder.yudao.module.member.controller.app.auth.vo.AppAuthUpdatePasswordReqVO;
11 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;  
12 -import cn.iocoder.yudao.module.member.dal.mysql.user.UserMapper; 12 +import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
13 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService; 13 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService;
14 -import cn.iocoder.yudao.module.member.service.user.UserService; 14 +import cn.iocoder.yudao.module.member.service.user.MemberUserService;
15 import cn.iocoder.yudao.module.member.test.BaseDbAndRedisUnitTest; 15 import cn.iocoder.yudao.module.member.test.BaseDbAndRedisUnitTest;
16 import org.junit.jupiter.api.Test; 16 import org.junit.jupiter.api.Test;
17 import org.springframework.boot.test.mock.mockito.MockBean; 17 import org.springframework.boot.test.mock.mockito.MockBean;
@@ -32,17 +32,17 @@ import static org.mockito.Mockito.when; @@ -32,17 +32,17 @@ import static org.mockito.Mockito.when;
32 32
33 // TODO @芋艿:单测的 review,等逻辑都达成一致后 33 // TODO @芋艿:单测的 review,等逻辑都达成一致后
34 /** 34 /**
35 - * {@link AuthService} 的单元测试类 35 + * {@link MemberAuthService} 的单元测试类
36 * 36 *
37 * @author 宋天 37 * @author 宋天
38 */ 38 */
39 -@Import({AuthServiceImpl.class, YudaoRedisAutoConfiguration.class}) 39 +@Import({MemberAuthServiceImpl.class, YudaoRedisAutoConfiguration.class})
40 public class SysAuthServiceTest extends BaseDbAndRedisUnitTest { 40 public class SysAuthServiceTest extends BaseDbAndRedisUnitTest {
41 41
42 @MockBean 42 @MockBean
43 private AuthenticationManager authenticationManager; 43 private AuthenticationManager authenticationManager;
44 @MockBean 44 @MockBean
45 - private UserService userService; 45 + private MemberUserService userService;
46 @MockBean 46 @MockBean
47 private SysSmsCodeService smsCodeService; 47 private SysSmsCodeService smsCodeService;
48 @MockBean 48 @MockBean
@@ -56,14 +56,14 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest { @@ -56,14 +56,14 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest {
56 @MockBean 56 @MockBean
57 private PasswordEncoder passwordEncoder; 57 private PasswordEncoder passwordEncoder;
58 @Resource 58 @Resource
59 - private UserMapper mbrUserMapper; 59 + private MemberUserMapper mbrUserMapper;
60 @Resource 60 @Resource
61 - private AuthServiceImpl authService; 61 + private MemberAuthServiceImpl authService;
62 62
63 @Test 63 @Test
64 public void testUpdatePassword_success(){ 64 public void testUpdatePassword_success(){
65 // 准备参数 65 // 准备参数
66 - UserDO userDO = randomUserDO(); 66 + MemberUserDO userDO = randomUserDO();
67 mbrUserMapper.insert(userDO); 67 mbrUserMapper.insert(userDO);
68 68
69 // 新密码 69 // 新密码
@@ -88,7 +88,7 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest { @@ -88,7 +88,7 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest {
88 @Test 88 @Test
89 public void testResetPassword_success(){ 89 public void testResetPassword_success(){
90 // 准备参数 90 // 准备参数
91 - UserDO userDO = randomUserDO(); 91 + MemberUserDO userDO = randomUserDO();
92 mbrUserMapper.insert(userDO); 92 mbrUserMapper.insert(userDO);
93 93
94 // 随机密码 94 // 随机密码
@@ -113,12 +113,12 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest { @@ -113,12 +113,12 @@ public class SysAuthServiceTest extends BaseDbAndRedisUnitTest {
113 // ========== 随机对象 ========== 113 // ========== 随机对象 ==========
114 114
115 @SafeVarargs 115 @SafeVarargs
116 - private static UserDO randomUserDO(Consumer<UserDO>... consumers) {  
117 - Consumer<UserDO> consumer = (o) -> { 116 + private static MemberUserDO randomUserDO(Consumer<MemberUserDO>... consumers) {
  117 + Consumer<MemberUserDO> consumer = (o) -> {
118 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 118 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
119 o.setPassword(randomString()); 119 o.setPassword(randomString());
120 }; 120 };
121 - return randomPojo(UserDO.class, ArrayUtils.append(consumer, consumers)); 121 + return randomPojo(MemberUserDO.class, ArrayUtils.append(consumer, consumers));
122 } 122 }
123 123
124 124
yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/user/MbrUserServiceImplTest.java renamed to yudao-module-member/yudao-module-member-impl/src/test/java/cn/iocoder/yudao/module/member/service/user/UserServiceImplTest.java
@@ -6,11 +6,11 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; @@ -6,11 +6,11 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 6 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
7 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration; 7 import cn.iocoder.yudao.framework.redis.config.YudaoRedisAutoConfiguration;
8 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO; 8 import cn.iocoder.yudao.module.member.controller.app.user.vo.AppUserUpdateMobileReqVO;
9 -import cn.iocoder.yudao.module.member.dal.dataobject.sms.SysSmsCodeDO;  
10 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;  
11 -import cn.iocoder.yudao.module.member.dal.mysql.user.UserMapper;  
12 -import cn.iocoder.yudao.module.member.enums.sms.SysSmsSceneEnum;  
13 -import cn.iocoder.yudao.module.member.service.auth.AuthServiceImpl; 9 +import cn.iocoder.yudao.module.member.dal.dataobject.sms.SmsCodeDO;
  10 +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
  11 +import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
  12 +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
  13 +import cn.iocoder.yudao.module.member.service.auth.MemberAuthServiceImpl;
14 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService; 14 import cn.iocoder.yudao.module.member.service.sms.SysSmsCodeService;
15 import cn.iocoder.yudao.module.member.test.BaseDbAndRedisUnitTest; 15 import cn.iocoder.yudao.module.member.test.BaseDbAndRedisUnitTest;
16 import org.junit.jupiter.api.Test; 16 import org.junit.jupiter.api.Test;
@@ -31,24 +31,24 @@ import static org.mockito.Mockito.*; @@ -31,24 +31,24 @@ import static org.mockito.Mockito.*;
31 31
32 // TODO @芋艿:单测的 review,等逻辑都达成一致后 32 // TODO @芋艿:单测的 review,等逻辑都达成一致后
33 /** 33 /**
34 - * {@link UserServiceImpl} 的单元测试类 34 + * {@link MemberUserServiceImpl} 的单元测试类
35 * 35 *
36 * @author 宋天 36 * @author 宋天
37 */ 37 */
38 -@Import({UserServiceImpl.class, YudaoRedisAutoConfiguration.class})  
39 -public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest { 38 +@Import({MemberUserServiceImpl.class, YudaoRedisAutoConfiguration.class})
  39 +public class UserServiceImplTest extends BaseDbAndRedisUnitTest {
40 40
41 @Resource 41 @Resource
42 - private UserServiceImpl mbrUserService; 42 + private MemberUserServiceImpl mbrUserService;
43 43
44 @Resource 44 @Resource
45 private StringRedisTemplate stringRedisTemplate; 45 private StringRedisTemplate stringRedisTemplate;
46 46
47 @Resource 47 @Resource
48 - private UserMapper userMapper; 48 + private MemberUserMapper userMapper;
49 49
50 @MockBean 50 @MockBean
51 - private AuthServiceImpl authService; 51 + private MemberAuthServiceImpl authService;
52 52
53 @MockBean 53 @MockBean
54 private InfFileCoreService fileCoreService; 54 private InfFileCoreService fileCoreService;
@@ -57,12 +57,12 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest { @@ -57,12 +57,12 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest {
57 private PasswordEncoder passwordEncoder; 57 private PasswordEncoder passwordEncoder;
58 58
59 @MockBean 59 @MockBean
60 - private SysSmsCodeService sysSmsCodeService; 60 + private SmsCodeService smsCodeService;
61 61
62 @Test 62 @Test
63 public void testUpdateNickName_success(){ 63 public void testUpdateNickName_success(){
64 // mock 数据 64 // mock 数据
65 - UserDO userDO = randomUserDO(); 65 + MemberUserDO userDO = randomUserDO();
66 userMapper.insert(userDO); 66 userMapper.insert(userDO);
67 67
68 // 随机昵称 68 // 随机昵称
@@ -79,7 +79,7 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest { @@ -79,7 +79,7 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest {
79 @Test 79 @Test
80 public void testUpdateAvatar_success(){ 80 public void testUpdateAvatar_success(){
81 // mock 数据 81 // mock 数据
82 - UserDO dbUser = randomUserDO(); 82 + MemberUserDO dbUser = randomUserDO();
83 userMapper.insert(dbUser); 83 userMapper.insert(dbUser);
84 84
85 // 准备参数 85 // 准备参数
@@ -99,18 +99,18 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest { @@ -99,18 +99,18 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest {
99 public void updateMobile_success(){ 99 public void updateMobile_success(){
100 // mock数据 100 // mock数据
101 String oldMobile = randomNumbers(11); 101 String oldMobile = randomNumbers(11);
102 - UserDO userDO = randomUserDO(); 102 + MemberUserDO userDO = randomUserDO();
103 userDO.setMobile(oldMobile); 103 userDO.setMobile(oldMobile);
104 userMapper.insert(userDO); 104 userMapper.insert(userDO);
105 105
106 // 旧手机和旧验证码 106 // 旧手机和旧验证码
107 - SysSmsCodeDO codeDO = new SysSmsCodeDO(); 107 + SmsCodeDO codeDO = new SmsCodeDO();
108 String oldCode = RandomUtil.randomString(4); 108 String oldCode = RandomUtil.randomString(4);
109 codeDO.setMobile(userDO.getMobile()); 109 codeDO.setMobile(userDO.getMobile());
110 codeDO.setCode(oldCode); 110 codeDO.setCode(oldCode);
111 - codeDO.setScene(SysSmsSceneEnum.CHANGE_MOBILE_BY_SMS.getScene()); 111 + codeDO.setScene(SmsSceneEnum.MEMBER_UPDATE_MOBILE.getScene());
112 codeDO.setUsed(Boolean.FALSE); 112 codeDO.setUsed(Boolean.FALSE);
113 - when(sysSmsCodeService.checkCodeIsExpired(codeDO.getMobile(),codeDO.getCode(),codeDO.getScene())).thenReturn(codeDO); 113 + when(smsCodeService.checkCodeIsExpired(codeDO.getMobile(),codeDO.getCode(),codeDO.getScene())).thenReturn(codeDO);
114 114
115 // 更新手机号 115 // 更新手机号
116 String newMobile = randomNumbers(11); 116 String newMobile = randomNumbers(11);
@@ -128,11 +128,11 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest { @@ -128,11 +128,11 @@ public class MbrUserServiceImplTest extends BaseDbAndRedisUnitTest {
128 // ========== 随机对象 ========== 128 // ========== 随机对象 ==========
129 129
130 @SafeVarargs 130 @SafeVarargs
131 - private static UserDO randomUserDO(Consumer<UserDO>... consumers) {  
132 - Consumer<UserDO> consumer = (o) -> { 131 + private static MemberUserDO randomUserDO(Consumer<MemberUserDO>... consumers) {
  132 + Consumer<MemberUserDO> consumer = (o) -> {
133 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 133 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
134 }; 134 };
135 - return randomPojo(UserDO.class, ArrayUtils.append(consumer, consumers)); 135 + return randomPojo(MemberUserDO.class, ArrayUtils.append(consumer, consumers));
136 } 136 }
137 137
138 } 138 }
yudao-module-system/yudao-module-system-api/pom.xml
@@ -21,6 +21,20 @@ @@ -21,6 +21,20 @@
21 <groupId>cn.iocoder.boot</groupId> 21 <groupId>cn.iocoder.boot</groupId>
22 <artifactId>yudao-common</artifactId> 22 <artifactId>yudao-common</artifactId>
23 </dependency> 23 </dependency>
  24 +
  25 + <!-- 参数校验 -->
  26 + <dependency>
  27 + <groupId>org.springframework.boot</groupId>
  28 + <artifactId>spring-boot-starter-validation</artifactId>
  29 + <optional>true</optional>
  30 + </dependency>
  31 + <!-- 用户信息 -->
  32 + <dependency>
  33 + <groupId>cn.iocoder.boot</groupId>
  34 + <artifactId>yudao-spring-boot-starter-security</artifactId>
  35 + <optional>true</optional>
  36 + </dependency>
  37 +
24 </dependencies> 38 </dependencies>
25 39
26 </project> 40 </project>
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/auth/UserSessionApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.auth;
  2 +
  3 +import cn.iocoder.yudao.framework.security.core.LoginUser;
  4 +
  5 +import javax.validation.constraints.NotEmpty;
  6 +import javax.validation.constraints.NotNull;
  7 +
  8 +/**
  9 + * 在线用户 Session API 接口
  10 + *
  11 + * @author 芋道源码
  12 + */
  13 +public interface UserSessionApi {
  14 +
  15 + /**
  16 + * 创建在线用户 Session
  17 + *
  18 + * @param loginUser 登录用户
  19 + * @param userIp 用户 IP
  20 + * @param userAgent 用户 UA
  21 + * @return Session 编号
  22 + */
  23 + String createUserSession(@NotNull(message = "登录用户不能为空") LoginUser loginUser, String userIp, String userAgent);
  24 +
  25 + /**
  26 + * 刷新在线用户 Session 的更新时间
  27 + *
  28 + * @param sessionId Session 编号
  29 + * @param loginUser 登录用户
  30 + */
  31 + void refreshUserSession(@NotEmpty(message = "Session编号不能为空") String sessionId,
  32 + @NotNull(message = "登录用户不能为空") LoginUser loginUser);
  33 +
  34 + /**
  35 + * 删除在线用户 Session
  36 + *
  37 + * @param sessionId Session 编号
  38 + */
  39 + void deleteUserSession(String sessionId);
  40 +
  41 + /**
  42 + * 获得 Session 编号对应的在线用户
  43 + *
  44 + * @param sessionId Session 编号
  45 + * @return 在线用户
  46 + */
  47 + LoginUser getLoginUser(String sessionId);
  48 +
  49 + /**
  50 + * 获得 Session 超时时间,单位:毫秒
  51 + *
  52 + * @return 超时时间
  53 + */
  54 + Long getSessionTimeoutMillis();
  55 +
  56 +}
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.logger;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
  4 +
  5 +import javax.validation.Valid;
  6 +
  7 +/**
  8 + * 登录日志的 API 接口
  9 + *
  10 + * @author 芋道源码
  11 + */
  12 +public interface LoginLogApi {
  13 +
  14 + /**
  15 + * 创建登录日志
  16 + *
  17 + * @param reqDTO 日志信息
  18 + */
  19 + void createLoginLog(@Valid LoginLogCreateReqDTO reqDTO);
  20 +
  21 +}
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/dto/LoginLogCreateReqDTO.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/LoginLogCreateReqDTO.java
1 -package cn.iocoder.yudao.module.system.service.logger.dto; 1 +package cn.iocoder.yudao.module.system.api.logger.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 4
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/package-info.java 0 → 100644
  1 +/**
  2 + * System API 包,定义暴露给其它模块的 API
  3 + */
  4 +package cn.iocoder.yudao.module.system.api;
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApi.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.social;
  2 +
  3 +import cn.iocoder.yudao.framework.common.exception.ServiceException;
  4 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
  5 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO;
  6 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
  7 +
  8 +import javax.validation.Valid;
  9 +
  10 +/**
  11 + * 社交用户的 API 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +public interface SocialUserApi {
  16 +
  17 + /**
  18 + * 获得社交平台的授权 URL
  19 + *
  20 + * @param type 社交平台的类型 {@link SocialTypeEnum}
  21 + * @param redirectUri 重定向 URL
  22 + * @return 社交平台的授权 URL
  23 + */
  24 + String getAuthorizeUrl(Integer type, String redirectUri);
  25 +
  26 + /**
  27 + * 绑定社交用户
  28 + *
  29 + * @param reqDTO 绑定信息
  30 + */
  31 + void bindSocialUser(@Valid SocialUserBindReqDTO reqDTO);
  32 +
  33 + /**
  34 + * 取消绑定社交用户
  35 + *
  36 + * @param reqDTO 解绑
  37 + */
  38 + void unbindSocialUser(@Valid SocialUserUnbindReqDTO reqDTO);
  39 +
  40 + /**
  41 + * 校验社交用户的认证信息是否正确
  42 + * 如果校验不通过,则抛出 {@link ServiceException} 业务异常
  43 + *
  44 + * @param type 社交平台的类型
  45 + * @param code 授权码
  46 + * @param state state
  47 + */
  48 + void checkSocialUser(Integer type, String code, String state);
  49 +
  50 + /**
  51 + * 获得社交用户的绑定用户编号
  52 + * 注意,返回的是 MemberUser 或者 AdminUser 的 id 编号!
  53 + * 该方法会执行和 {@link #checkSocialUser(Integer, String, String)} 一样的逻辑。
  54 + * 所以在认证信息不正确的情况下,也会抛出 {@link ServiceException} 业务异常
  55 + *
  56 + * @param userType 用户类型
  57 + * @param type 社交平台的类型
  58 + * @param code 授权码
  59 + * @param state state
  60 + * @return 绑定用户编号
  61 + */
  62 + Long getBindUserId(Integer userType, Integer type, String code, String state);
  63 +
  64 +}
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserBindReqDTO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.social.dto;
  2 +
  3 +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
  4 +import cn.iocoder.yudao.framework.common.validation.InEnum;
  5 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
  6 +import lombok.Data;
  7 +
  8 +import javax.validation.constraints.NotEmpty;
  9 +import javax.validation.constraints.NotNull;
  10 +
  11 +/**
  12 + * 取消绑定社交用户 Request DTO
  13 + *
  14 + * @author 芋道源码
  15 + */
  16 +@Data
  17 +public class SocialUserBindReqDTO {
  18 +
  19 + /**
  20 + * 用户编号
  21 + */
  22 + @NotNull(message = "用户编号不能为空")
  23 + private Long userId;
  24 + /**
  25 + * 用户类型
  26 + */
  27 + @InEnum(UserTypeEnum.class)
  28 + @NotNull(message = "用户类型不能为空")
  29 + private Integer userType;
  30 +
  31 + /**
  32 + * 社交平台的类型
  33 + */
  34 + @InEnum(SocialTypeEnum.class)
  35 + @NotNull(message = "社交平台的类型不能为空")
  36 + private Integer type;
  37 + /**
  38 + * 授权码
  39 + */
  40 + @NotEmpty(message = "授权码不能为空")
  41 + private String code;
  42 + /**
  43 + * state
  44 + */
  45 + @NotEmpty(message = "state 不能为空")
  46 + private String state;
  47 +
  48 +}
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/social/dto/SocialUserUnbindReqDTO.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.social.dto;
  2 +
  3 +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
  4 +import cn.iocoder.yudao.framework.common.validation.InEnum;
  5 +import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
  6 +import lombok.Data;
  7 +
  8 +import javax.validation.constraints.NotEmpty;
  9 +import javax.validation.constraints.NotNull;
  10 +
  11 +/**
  12 + * 社交绑定 Request DTO,使用 code 授权码
  13 + *
  14 + * @author 芋道源码
  15 + */
  16 +@Data
  17 +public class SocialUserUnbindReqDTO {
  18 +
  19 + /**
  20 + * 用户编号
  21 + */
  22 + @NotNull(message = "用户编号不能为空")
  23 + private Long userId;
  24 + /**
  25 + * 用户类型
  26 + */
  27 + @InEnum(UserTypeEnum.class)
  28 + @NotNull(message = "用户类型不能为空")
  29 + private Integer userType;
  30 +
  31 + /**
  32 + * 社交平台的类型
  33 + */
  34 + @InEnum(SocialTypeEnum.class)
  35 + @NotNull(message = "社交平台的类型不能为空")
  36 + private Integer type;
  37 +
  38 + /**
  39 + * 社交平台的 unionId
  40 + */
  41 + @NotEmpty(message = "社交平台的 unionId 不能为空")
  42 + private String unionId;
  43 +
  44 +}
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/ErrorCodeConstants.java
@@ -87,12 +87,31 @@ public interface ErrorCodeConstants { @@ -87,12 +87,31 @@ public interface ErrorCodeConstants {
87 ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002011000, "短信模板不存在"); 87 ErrorCode SMS_TEMPLATE_NOT_EXISTS = new ErrorCode(1002011000, "短信模板不存在");
88 ErrorCode SMS_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1002011001, "已经存在编码为【{}】的短信模板"); 88 ErrorCode SMS_TEMPLATE_CODE_DUPLICATE = new ErrorCode(1002011001, "已经存在编码为【{}】的短信模板");
89 89
90 - // ========== 租户模块 1002012000 ==========  
91 - ErrorCode TENANT_NOT_EXISTS = new ErrorCode(1002012000, "租户不存在");  
92 -  
93 - // ========== 错误码模块 1002013000 ==========  
94 - ErrorCode ERROR_CODE_NOT_EXISTS = new ErrorCode(1002013000, "错误码不存在");  
95 - ErrorCode ERROR_CODE_DUPLICATE = new ErrorCode(1002013001, "已经存在编码为【{}】的错误码");  
96 - 90 + // ========== 短信发送 1002012000 ==========
  91 + ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1002012000, "手机号不存在");
  92 + ErrorCode SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS = new ErrorCode(1002012001, "模板参数({})缺失");
  93 + ErrorCode SMS_SEND_TEMPLATE_NOT_EXISTS = new ErrorCode(1002012002, "短信模板不存在");
  94 +
  95 + // ========== 短信验证码 1002013000 ==========
  96 + ErrorCode SMS_CODE_NOT_FOUND = new ErrorCode(1002013000, "验证码不存在");
  97 + ErrorCode SMS_CODE_EXPIRED = new ErrorCode(1002013001, "验证码已过期");
  98 + ErrorCode SMS_CODE_USED = new ErrorCode(1002013002, "验证码已使用");
  99 + ErrorCode SMS_CODE_NOT_CORRECT = new ErrorCode(1002013004, "验证码不正确");
  100 + ErrorCode SMS_CODE_EXCEED_SEND_MAXIMUM_QUANTITY_PER_DAY = new ErrorCode(1002013005, "超过每日短信发送数量");
  101 + ErrorCode SMS_CODE_SEND_TOO_FAST = new ErrorCode(1002013006, "短信发送过于频率");
  102 + ErrorCode SMS_CODE_IS_EXISTS = new ErrorCode(1002013007, "手机号已被使用");
  103 + ErrorCode SMS_CODE_IS_UNUSED = new ErrorCode(1002013008, "验证码未被使用");
  104 +
  105 + // ========== 租户模块 1002014000 ==========
  106 + ErrorCode TENANT_NOT_EXISTS = new ErrorCode(1002014000, "租户不存在");
  107 +
  108 + // ========== 错误码模块 1002015000 ==========
  109 + ErrorCode ERROR_CODE_NOT_EXISTS = new ErrorCode(1002015000, "错误码不存在");
  110 + ErrorCode ERROR_CODE_DUPLICATE = new ErrorCode(1002015001, "已经存在编码为【{}】的错误码");
  111 +
  112 + // ========== 社交用户 1002015000 ==========
  113 + ErrorCode SOCIAL_USER_AUTH_FAILURE = new ErrorCode(1002015000, "社交授权失败,原因是:{}");
  114 + ErrorCode SOCIAL_USER_UNBIND_NOT_SELF = new ErrorCode(1002015001, "社交解绑失败,非当前用户绑定");
  115 + ErrorCode SOCIAL_USER_NOT_FOUND = new ErrorCode(1002015001, "社交授权失败,找不到对应的用户");
97 116
98 } 117 }
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/SysErrorCodeConstants.java deleted
1 -package cn.iocoder.yudao.module.system.enums;  
2 -  
3 -import cn.iocoder.yudao.framework.common.exception.ErrorCode;  
4 -  
5 -/**  
6 - * System 错误码枚举类  
7 - *  
8 - * system 系统,使用 1-006-000-000 段  
9 - */  
10 -public interface SysErrorCodeConstants {  
11 -  
12 - // ========== 短信发送 1006000000 ==========  
13 - ErrorCode SMS_SEND_MOBILE_NOT_EXISTS = new ErrorCode(1006000000, "手机号不存在");  
14 - ErrorCode SMS_SEND_MOBILE_TEMPLATE_PARAM_MISS = new ErrorCode(1006000001, "模板参数({})缺失");  
15 - ErrorCode SMS_SEND_TEMPLATE_NOT_EXISTS = new ErrorCode(1006000000, "短信模板不存在");  
16 -  
17 - // ========== 社交模块 1006002000 ==========  
18 - ErrorCode SOCIAL_AUTH_FAILURE = new ErrorCode(1006002000, "社交授权失败,原因是:{}");  
19 - ErrorCode SOCIAL_UNBIND_NOT_SELF = new ErrorCode(1006002001, "社交解绑失败,非当前用户绑定");  
20 -  
21 - // ========== 用户模块 1006003000 ==========  
22 - ErrorCode USER_NOT_EXISTS = new ErrorCode(1006003000, "用户不存在");  
23 - ErrorCode USER_IS_DISABLE = new ErrorCode(1006003001, "名字为【{}】的用户已被禁用");  
24 -  
25 - // ========== 部门模块 1006004000 ==========  
26 - ErrorCode DEPT_NOT_FOUND = new ErrorCode(1006004000, "当前部门不存在");  
27 - ErrorCode DEPT_NOT_ENABLE = new ErrorCode(1006004001, "部门不处于开启状态,不允许选择");  
28 -  
29 - // ========== 角色模块 1006005000 ==========  
30 - ErrorCode ROLE_NOT_EXISTS = new ErrorCode(1006005000, "角色不存在");  
31 - ErrorCode ROLE_IS_DISABLE = new ErrorCode(1006005001, "名字为【{}】的角色已被禁用");  
32 -  
33 - // ========== 岗位模块 1006007000 ==========  
34 - ErrorCode POST_NOT_FOUND = new ErrorCode(1006007000, "当前岗位不存在");  
35 - ErrorCode POST_NOT_ENABLE = new ErrorCode(1006007001, "岗位({}) 不处于开启状态,不允许选择");  
36 -  
37 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/logger/SysLoginLogTypeEnum.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginLogTypeEnum.java
@@ -8,7 +8,7 @@ import lombok.Getter; @@ -8,7 +8,7 @@ import lombok.Getter;
8 */ 8 */
9 @Getter 9 @Getter
10 @AllArgsConstructor 10 @AllArgsConstructor
11 -public enum SysLoginLogTypeEnum { 11 +public enum LoginLogTypeEnum {
12 12
13 LOGIN_USERNAME(100), // 使用账号登录 13 LOGIN_USERNAME(100), // 使用账号登录
14 LOGIN_SOCIAL(101), // 使用社交登录 14 LOGIN_SOCIAL(101), // 使用社交登录
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/enums/logger/SysLoginResultEnum.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/logger/LoginResultEnum.java
@@ -8,7 +8,7 @@ import lombok.Getter; @@ -8,7 +8,7 @@ import lombok.Getter;
8 */ 8 */
9 @Getter 9 @Getter
10 @AllArgsConstructor 10 @AllArgsConstructor
11 -public enum SysLoginResultEnum { 11 +public enum LoginResultEnum {
12 12
13 SUCCESS(0), // 成功 13 SUCCESS(0), // 成功
14 BAD_CREDENTIALS(10), // 账号或密码不正确 14 BAD_CREDENTIALS(10), // 账号或密码不正确
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/enums/sms/SysSmsSceneEnum.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/enums/sms/SmsSceneEnum.java
1 -package cn.iocoder.yudao.module.member.enums.sms; 1 +package cn.iocoder.yudao.module.system.enums.sms;
2 2
  3 +import cn.hutool.core.util.ArrayUtil;
3 import cn.iocoder.yudao.framework.common.core.IntArrayValuable; 4 import cn.iocoder.yudao.framework.common.core.IntArrayValuable;
4 import lombok.AllArgsConstructor; 5 import lombok.AllArgsConstructor;
5 import lombok.Getter; 6 import lombok.Getter;
@@ -13,42 +14,36 @@ import java.util.Arrays; @@ -13,42 +14,36 @@ import java.util.Arrays;
13 */ 14 */
14 @Getter 15 @Getter
15 @AllArgsConstructor 16 @AllArgsConstructor
16 -public enum SysSmsSceneEnum implements IntArrayValuable { 17 +public enum SmsSceneEnum implements IntArrayValuable {
17 18
18 - LOGIN_BY_SMS(1,SysSmsTemplateCodeConstants.USER_SMS_LOGIN, "手机号登陆"),  
19 - CHANGE_MOBILE_BY_SMS(2,SysSmsTemplateCodeConstants.USER_SMS_UPDATE_MOBILE, "更换手机号"),  
20 - FORGET_MOBILE_BY_SMS(3,SysSmsTemplateCodeConstants.USER_SMS_RESET_PASSWORD, "忘记密码"),  
21 - ; 19 + MEMBER_LOGIN(1, "user-sms-login", "会员用户 - 手机号登陆"),
  20 + MEMBER_UPDATE_MOBILE(2, "user-sms-reset-password", "会员用户 - 修改手机"),
  21 + MEMBER_FORGET_PASSWORD(3, "user-sms-update-mobile", "会员用户 - 忘记密码");
22 22
23 - public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SysSmsSceneEnum::getScene).toArray(); 23 + // 如果未来希望管理后台支持手机验证码登陆,可以通过添加 ADMIN_MEMBER_LOGIN 枚举
  24 +
  25 + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(SmsSceneEnum::getScene).toArray();
24 26
25 /** 27 /**
26 - * 验证那场景编号 28 + * 验证场景的编号
27 */ 29 */
28 private final Integer scene; 30 private final Integer scene;
29 -  
30 /** 31 /**
31 * 模版编码 32 * 模版编码
32 */ 33 */
33 - private final String code;  
34 - 34 + private final String templateCode;
35 /** 35 /**
36 * 描述 36 * 描述
37 */ 37 */
38 - private final String name; 38 + private final String description;
39 39
40 @Override 40 @Override
41 public int[] array() { 41 public int[] array() {
42 return ARRAYS; 42 return ARRAYS;
43 } 43 }
44 44
45 - public static String getCodeByScene(Integer scene){  
46 - for (SysSmsSceneEnum value : values()) {  
47 - if (value.getScene().equals(scene)){  
48 - return value.getCode();  
49 - }  
50 - }  
51 - return null; 45 + public static SmsSceneEnum getCodeByScene(Integer scene) {
  46 + return ArrayUtil.firstMatch(sceneEnum -> sceneEnum.getScene().equals(scene));
52 } 47 }
53 48
54 } 49 }
yudao-module-system/yudao-module-system-impl/pom.xml
@@ -23,6 +23,11 @@ @@ -23,6 +23,11 @@
23 <artifactId>yudao-module-system-api</artifactId> 23 <artifactId>yudao-module-system-api</artifactId>
24 <version>${revision}</version> 24 <version>${revision}</version>
25 </dependency> 25 </dependency>
  26 + <dependency>
  27 + <groupId>cn.iocoder.boot</groupId>
  28 + <artifactId>yudao-module-member-api</artifactId>
  29 + <version>${revision}</version>
  30 + </dependency>
26 31
27 <!-- 业务组件 --> 32 <!-- 业务组件 -->
28 <dependency> 33 <dependency>
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/auth/UserSessionApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.auth;
  2 +
  3 +import cn.iocoder.yudao.framework.security.core.LoginUser;
  4 +import cn.iocoder.yudao.module.system.service.auth.UserSessionService;
  5 +import org.springframework.stereotype.Service;
  6 +import org.springframework.validation.annotation.Validated;
  7 +
  8 +import javax.annotation.Resource;
  9 +
  10 +/**
  11 + * 在线用户 Session API 实现类
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +@Service
  16 +@Validated
  17 +public class UserSessionApiImpl implements UserSessionApi {
  18 +
  19 + @Resource
  20 + private UserSessionService userSessionService;
  21 +
  22 + @Override
  23 + public String createUserSession(LoginUser loginUser, String userIp, String userAgent) {
  24 + return userSessionService.createUserSession(loginUser, userIp, userAgent);
  25 + }
  26 +
  27 + @Override
  28 + public void refreshUserSession(String sessionId, LoginUser loginUser) {
  29 + userSessionService.refreshUserSession(sessionId, loginUser);
  30 + }
  31 +
  32 + @Override
  33 + public void deleteUserSession(String sessionId) {
  34 + userSessionService.deleteUserSession(sessionId);
  35 + }
  36 +
  37 + @Override
  38 + public LoginUser getLoginUser(String sessionId) {
  39 + return userSessionService.getLoginUser(sessionId);
  40 + }
  41 +
  42 + @Override
  43 + public Long getSessionTimeoutMillis() {
  44 + return userSessionService.getSessionTimeoutMillis();
  45 + }
  46 +
  47 +}
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/logger/LoginLogApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.logger;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
  4 +import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
  5 +import org.springframework.stereotype.Service;
  6 +import org.springframework.validation.annotation.Validated;
  7 +
  8 +import javax.annotation.Resource;
  9 +
  10 +/**
  11 + * 登录日志的 API 实现类
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +@Service
  16 +@Validated
  17 +public class LoginLogApiImpl implements LoginLogApi {
  18 +
  19 + @Resource
  20 + private LoginLogService loginLogService;
  21 +
  22 + @Override
  23 + public void createLoginLog(LoginLogCreateReqDTO reqDTO) {
  24 + loginLogService.createLoginLog(reqDTO);
  25 + }
  26 +
  27 +}
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/package-info.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/api/social/SocialUserApiImpl.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.api.social;
  2 +
  3 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserBindReqDTO;
  4 +import cn.iocoder.yudao.module.system.api.social.dto.SocialUserUnbindReqDTO;
  5 +import cn.iocoder.yudao.module.system.service.social.SocialUserService;
  6 +import me.zhyd.oauth.model.AuthUser;
  7 +import org.springframework.stereotype.Service;
  8 +import org.springframework.validation.annotation.Validated;
  9 +
  10 +import javax.annotation.Resource;
  11 +
  12 +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  13 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SOCIAL_USER_NOT_FOUND;
  14 +
  15 +/**
  16 + * 社交用户的 API 实现类
  17 + *
  18 + * @author 芋道源码
  19 + */
  20 +@Service
  21 +@Validated
  22 +public class SocialUserApiImpl implements SocialUserApi {
  23 +
  24 + @Resource
  25 + private SocialUserService socialUserService;
  26 +
  27 + @Override
  28 + public String getAuthorizeUrl(Integer type, String redirectUri) {
  29 + return socialUserService.getAuthorizeUrl(type, redirectUri);
  30 + }
  31 +
  32 + @Override
  33 + public void bindSocialUser(SocialUserBindReqDTO reqDTO) {
  34 + // 使用 code 授权
  35 + AuthUser authUser = socialUserService.getAuthUser(reqDTO.getType(), reqDTO.getCode(),
  36 + reqDTO.getState());
  37 + if (authUser == null) {
  38 + throw exception(SOCIAL_USER_NOT_FOUND);
  39 + }
  40 +
  41 + // 绑定社交用户(新增)
  42 + socialUserService.bindSocialUser(reqDTO.getUserId(), reqDTO.getUserType(),
  43 + reqDTO.getType(), authUser);
  44 + }
  45 +
  46 + @Override
  47 + public void unbindSocialUser(SocialUserUnbindReqDTO reqDTO) {
  48 + socialUserService.unbindSocialUser(reqDTO.getUserId(), reqDTO.getUserType(),
  49 + reqDTO.getType(), reqDTO.getUnionId());
  50 + }
  51 +
  52 + @Override
  53 + public void checkSocialUser(Integer type, String code, String state) {
  54 + AuthUser authUser = socialUserService.getAuthUser(type, code, state);
  55 + if (authUser == null) {
  56 + throw exception(SOCIAL_USER_NOT_FOUND);
  57 + }
  58 + }
  59 +
  60 + @Override
  61 + public Long getBindUserId(Integer userType, Integer type, String code, String state) {
  62 + AuthUser authUser = socialUserService.getAuthUser(type, code, state);
  63 + if (authUser == null) {
  64 + throw exception(SOCIAL_USER_NOT_FOUND);
  65 + }
  66 +
  67 + //
  68 + return null;
  69 + }
  70 +
  71 +}
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/AuthController.java
1 package cn.iocoder.yudao.module.system.controller.admin.auth; 1 package cn.iocoder.yudao.module.system.controller.admin.auth;
2 2
  3 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  4 +import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
  5 +import cn.iocoder.yudao.framework.common.pojo.CommonResult;
  6 +import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
  7 +import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*; 8 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.*;
4 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; 9 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
5 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
6 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 11 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
  12 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
7 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; 13 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
8 -import cn.iocoder.yudao.module.system.service.auth.AuthService; 14 +import cn.iocoder.yudao.module.system.service.auth.AdminAuthService;
9 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 15 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
10 import cn.iocoder.yudao.module.system.service.permission.RoleService; 16 import cn.iocoder.yudao.module.system.service.permission.RoleService;
11 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
12 import cn.iocoder.yudao.module.system.service.social.SocialUserService; 17 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
13 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
14 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
15 -import cn.iocoder.yudao.framework.common.pojo.CommonResult;  
16 -import cn.iocoder.yudao.framework.common.util.collection.SetUtils;  
17 -import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;  
18 -import cn.iocoder.yudao.module.system.service.user.UserService; 18 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
19 import io.swagger.annotations.Api; 19 import io.swagger.annotations.Api;
20 import io.swagger.annotations.ApiImplicitParam; 20 import io.swagger.annotations.ApiImplicitParam;
21 import io.swagger.annotations.ApiImplicitParams; 21 import io.swagger.annotations.ApiImplicitParams;
22 import io.swagger.annotations.ApiOperation; 22 import io.swagger.annotations.ApiOperation;
23 import lombok.extern.slf4j.Slf4j; 23 import lombok.extern.slf4j.Slf4j;
24 -import org.springframework.beans.factory.annotation.Autowired;  
25 import org.springframework.validation.annotation.Validated; 24 import org.springframework.validation.annotation.Validated;
26 import org.springframework.web.bind.annotation.*; 25 import org.springframework.web.bind.annotation.*;
27 26
@@ -42,12 +41,10 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @@ -42,12 +41,10 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
42 @Slf4j 41 @Slf4j
43 public class AuthController { 42 public class AuthController {
44 43
45 - @Autowired  
46 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // AuthService 存在重名  
47 - private AuthService authService;  
48 - @Autowired  
49 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名  
50 - private UserService userService; 44 + @Resource
  45 + private AdminAuthService authService;
  46 + @Resource
  47 + private AdminUserService userService;
51 @Resource 48 @Resource
52 private RoleService roleService; 49 private RoleService roleService;
53 @Resource 50 @Resource
@@ -68,12 +65,12 @@ public class AuthController { @@ -68,12 +65,12 @@ public class AuthController {
68 @ApiOperation("获取登录用户的权限信息") 65 @ApiOperation("获取登录用户的权限信息")
69 public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo() { 66 public CommonResult<AuthPermissionInfoRespVO> getPermissionInfo() {
70 // 获得用户信息 67 // 获得用户信息
71 - UserDO user = userService.getUser(getLoginUserId()); 68 + AdminUserDO user = userService.getUser(getLoginUserId());
72 if (user == null) { 69 if (user == null) {
73 return null; 70 return null;
74 } 71 }
75 // 获得角色列表 72 // 获得角色列表
76 - List<SysRoleDO> roleList = roleService.getRolesFromCache(getLoginUserRoleIds()); 73 + List<RoleDO> roleList = roleService.getRolesFromCache(getLoginUserRoleIds());
77 // 获得菜单列表 74 // 获得菜单列表
78 List<MenuDO> menuList = permissionService.getRoleMenusFromCache( 75 List<MenuDO> menuList = permissionService.getRoleMenusFromCache(
79 getLoginUserRoleIds(), // 注意,基于登录的角色,因为后续的权限判断也是基于它 76 getLoginUserRoleIds(), // 注意,基于登录的角色,因为后续的权限判断也是基于它
@@ -136,7 +133,7 @@ public class AuthController { @@ -136,7 +133,7 @@ public class AuthController {
136 @DeleteMapping("/social-unbind") 133 @DeleteMapping("/social-unbind")
137 @ApiOperation("取消社交绑定") 134 @ApiOperation("取消社交绑定")
138 public CommonResult<Boolean> socialUnbind(@RequestBody AuthSocialUnbindReqVO reqVO) { 135 public CommonResult<Boolean> socialUnbind(@RequestBody AuthSocialUnbindReqVO reqVO) {
139 - socialCoreService.unbindSocialUser(getLoginUserId(), reqVO.getType(), reqVO.getUnionId(), UserTypeEnum.ADMIN); 136 + socialCoreService.unbindSocialUser(getLoginUserId(), UserTypeEnum.ADMIN.getValue(), reqVO.getType(), reqVO.getUnionId());
140 return CommonResult.success(true); 137 return CommonResult.success(true);
141 } 138 }
142 139
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/UserSessionController.java
@@ -6,16 +6,15 @@ import cn.iocoder.yudao.module.system.convert.auth.UserSessionConvert; @@ -6,16 +6,15 @@ import cn.iocoder.yudao.module.system.convert.auth.UserSessionConvert;
6 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 import cn.iocoder.yudao.module.system.service.auth.UserSessionService; 7 import cn.iocoder.yudao.module.system.service.auth.UserSessionService;
8 import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
9 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
10 -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
11 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 10 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
12 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 12 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
14 -import cn.iocoder.yudao.module.system.service.user.UserService; 13 +import cn.iocoder.yudao.module.system.service.dept.DeptService;
  14 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
15 import io.swagger.annotations.Api; 15 import io.swagger.annotations.Api;
16 import io.swagger.annotations.ApiImplicitParam; 16 import io.swagger.annotations.ApiImplicitParam;
17 import io.swagger.annotations.ApiOperation; 17 import io.swagger.annotations.ApiOperation;
18 -import org.springframework.beans.factory.annotation.Autowired;  
19 import org.springframework.security.access.prepost.PreAuthorize; 18 import org.springframework.security.access.prepost.PreAuthorize;
20 import org.springframework.validation.annotation.Validated; 19 import org.springframework.validation.annotation.Validated;
21 import org.springframework.web.bind.annotation.*; 20 import org.springframework.web.bind.annotation.*;
@@ -35,12 +34,11 @@ public class UserSessionController { @@ -35,12 +34,11 @@ public class UserSessionController {
35 34
36 @Resource 35 @Resource
37 private UserSessionService userSessionService; 36 private UserSessionService userSessionService;
38 - @Autowired  
39 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名  
40 - private UserService userService; 37 + @Resource
  38 + private AdminUserService userService;
41 39
42 @Resource 40 @Resource
43 - private SysDeptCoreService deptCoreService; 41 + private DeptService deptService;
44 42
45 @GetMapping("/page") 43 @GetMapping("/page")
46 @ApiOperation("获得 Session 分页列表") 44 @ApiOperation("获得 Session 分页列表")
@@ -50,10 +48,10 @@ public class UserSessionController { @@ -50,10 +48,10 @@ public class UserSessionController {
50 PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO); 48 PageResult<SysUserSessionDO> pageResult = userSessionService.getUserSessionPage(reqVO);
51 49
52 // 获得拼接需要的数据 50 // 获得拼接需要的数据
53 - Map<Long, UserDO> userMap = userService.getUserMap( 51 + Map<Long, AdminUserDO> userMap = userService.getUserMap(
54 convertList(pageResult.getList(), SysUserSessionDO::getUserId)); 52 convertList(pageResult.getList(), SysUserSessionDO::getUserId));
55 - Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(  
56 - convertList(userMap.values(), UserDO::getDeptId)); 53 + Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(
  54 + convertList(userMap.values(), AdminUserDO::getDeptId));
57 // 拼接结果返回 55 // 拼接结果返回
58 List<UserSessionPageItemRespVO> sessionList = new ArrayList<>(pageResult.getList().size()); 56 List<UserSessionPageItemRespVO> sessionList = new ArrayList<>(pageResult.getList().size());
59 pageResult.getList().forEach(session -> { 57 pageResult.getList().forEach(session -> {
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/dept/DeptController.java
1 package cn.iocoder.yudao.module.system.controller.admin.dept; 1 package cn.iocoder.yudao.module.system.controller.admin.dept;
2 2
3 -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;  
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.*; 5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.*;
@@ -30,9 +29,6 @@ public class DeptController { @@ -30,9 +29,6 @@ public class DeptController {
30 @Resource 29 @Resource
31 private DeptService deptService; 30 private DeptService deptService;
32 31
33 - @Resource  
34 - private SysDeptCoreService deptCoreService;  
35 -  
36 @PostMapping("create") 32 @PostMapping("create")
37 @ApiOperation("创建部门") 33 @ApiOperation("创建部门")
38 @PreAuthorize("@ss.hasPermission('system:dept:create')") 34 @PreAuthorize("@ss.hasPermission('system:dept:create')")
@@ -84,7 +80,7 @@ public class DeptController { @@ -84,7 +80,7 @@ public class DeptController {
84 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class) 80 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
85 @PreAuthorize("@ss.hasPermission('system:dept:query')") 81 @PreAuthorize("@ss.hasPermission('system:dept:query')")
86 public CommonResult<DeptRespVO> getDept(@RequestParam("id") Long id) { 82 public CommonResult<DeptRespVO> getDept(@RequestParam("id") Long id) {
87 - return success(DeptConvert.INSTANCE.convert(deptCoreService.getDept(id))); 83 + return success(DeptConvert.INSTANCE.convert(deptService.getDept(id)));
88 } 84 }
89 85
90 } 86 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/logger/OperateLogController.java
@@ -6,18 +6,17 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper @@ -6,18 +6,17 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper
6 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; 6 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO;
7 import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; 7 import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert;
8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
9 import cn.iocoder.yudao.module.system.service.logger.OperateLogService; 10 import cn.iocoder.yudao.module.system.service.logger.OperateLogService;
10 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
11 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 11 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
12 import cn.iocoder.yudao.framework.common.pojo.PageResult; 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 13 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
14 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 14 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
15 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 15 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
16 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 16 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
17 -import cn.iocoder.yudao.module.system.service.user.UserService; 17 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
18 import io.swagger.annotations.Api; 18 import io.swagger.annotations.Api;
19 import io.swagger.annotations.ApiOperation; 19 import io.swagger.annotations.ApiOperation;
20 -import org.springframework.beans.factory.annotation.Autowired;  
21 import org.springframework.security.access.prepost.PreAuthorize; 20 import org.springframework.security.access.prepost.PreAuthorize;
22 import org.springframework.validation.annotation.Validated; 21 import org.springframework.validation.annotation.Validated;
23 import org.springframework.web.bind.annotation.GetMapping; 22 import org.springframework.web.bind.annotation.GetMapping;
@@ -44,9 +43,8 @@ public class OperateLogController { @@ -44,9 +43,8 @@ public class OperateLogController {
44 43
45 @Resource 44 @Resource
46 private OperateLogService operateLogService; 45 private OperateLogService operateLogService;
47 - @Autowired  
48 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名  
49 - private UserService userService; 46 + @Resource
  47 + private AdminUserService userService;
50 48
51 @GetMapping("/page") 49 @GetMapping("/page")
52 @ApiOperation("查看操作日志分页列表") 50 @ApiOperation("查看操作日志分页列表")
@@ -56,7 +54,7 @@ public class OperateLogController { @@ -56,7 +54,7 @@ public class OperateLogController {
56 54
57 // 获得拼接需要的数据 55 // 获得拼接需要的数据
58 Collection<Long> userIds = CollectionUtils.convertList(pageResult.getList(), OperateLogDO::getUserId); 56 Collection<Long> userIds = CollectionUtils.convertList(pageResult.getList(), OperateLogDO::getUserId);
59 - Map<Long, UserDO> userMap = userService.getUserMap(userIds); 57 + Map<Long, AdminUserDO> userMap = userService.getUserMap(userIds);
60 // 拼接数据 58 // 拼接数据
61 List<OperateLogRespVO> list = new ArrayList<>(pageResult.getList().size()); 59 List<OperateLogRespVO> list = new ArrayList<>(pageResult.getList().size());
62 pageResult.getList().forEach(operateLog -> { 60 pageResult.getList().forEach(operateLog -> {
@@ -77,7 +75,7 @@ public class OperateLogController { @@ -77,7 +75,7 @@ public class OperateLogController {
77 75
78 // 获得拼接需要的数据 76 // 获得拼接需要的数据
79 Collection<Long> userIds = CollectionUtils.convertList(list, OperateLogDO::getUserId); 77 Collection<Long> userIds = CollectionUtils.convertList(list, OperateLogDO::getUserId);
80 - Map<Long, UserDO> userMap = userService.getUserMap(userIds); 78 + Map<Long, AdminUserDO> userMap = userService.getUserMap(userIds);
81 // 拼接数据 79 // 拼接数据
82 List<OperateLogExcelVO> excelDataList = OperateLogConvert.INSTANCE.convertList(list, userMap); 80 List<OperateLogExcelVO> excelDataList = OperateLogConvert.INSTANCE.convertList(list, userMap);
83 // 输出 81 // 输出
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/RoleController.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; @@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*; 8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*;
9 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert; 9 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert;
10 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
11 import cn.iocoder.yudao.module.system.service.permission.RoleService; 11 import cn.iocoder.yudao.module.system.service.permission.RoleService;
12 import io.swagger.annotations.Api; 12 import io.swagger.annotations.Api;
13 import io.swagger.annotations.ApiImplicitParam; 13 import io.swagger.annotations.ApiImplicitParam;
@@ -72,14 +72,14 @@ public class RoleController { @@ -72,14 +72,14 @@ public class RoleController {
72 @ApiOperation("获得角色信息") 72 @ApiOperation("获得角色信息")
73 @PreAuthorize("@ss.hasPermission('system:role:query')") 73 @PreAuthorize("@ss.hasPermission('system:role:query')")
74 public CommonResult<RoleRespVO> getRole(@RequestParam("id") Long id) { 74 public CommonResult<RoleRespVO> getRole(@RequestParam("id") Long id) {
75 - SysRoleDO role = roleService.getRole(id); 75 + RoleDO role = roleService.getRole(id);
76 return success(RoleConvert.INSTANCE.convert(role)); 76 return success(RoleConvert.INSTANCE.convert(role));
77 } 77 }
78 78
79 @GetMapping("/page") 79 @GetMapping("/page")
80 @ApiOperation("获得角色分页") 80 @ApiOperation("获得角色分页")
81 @PreAuthorize("@ss.hasPermission('system:role:query')") 81 @PreAuthorize("@ss.hasPermission('system:role:query')")
82 - public CommonResult<PageResult<SysRoleDO>> getRolePage(RolePageReqVO reqVO) { 82 + public CommonResult<PageResult<RoleDO>> getRolePage(RolePageReqVO reqVO) {
83 return success(roleService.getRolePage(reqVO)); 83 return success(roleService.getRolePage(reqVO));
84 } 84 }
85 85
@@ -87,9 +87,9 @@ public class RoleController { @@ -87,9 +87,9 @@ public class RoleController {
87 @ApiOperation(value = "获取角色精简信息列表", notes = "只包含被开启的角色,主要用于前端的下拉选项") 87 @ApiOperation(value = "获取角色精简信息列表", notes = "只包含被开启的角色,主要用于前端的下拉选项")
88 public CommonResult<List<RoleSimpleRespVO>> getSimpleRoles() { 88 public CommonResult<List<RoleSimpleRespVO>> getSimpleRoles() {
89 // 获得角色列表,只要开启状态的 89 // 获得角色列表,只要开启状态的
90 - List<SysRoleDO> list = roleService.getRoles(Collections.singleton(CommonStatusEnum.ENABLE.getStatus())); 90 + List<RoleDO> list = roleService.getRoles(Collections.singleton(CommonStatusEnum.ENABLE.getStatus()));
91 // 排序后,返回个诶前端 91 // 排序后,返回个诶前端
92 - list.sort(Comparator.comparing(SysRoleDO::getSort)); 92 + list.sort(Comparator.comparing(RoleDO::getSort));
93 return success(RoleConvert.INSTANCE.convertList02(list)); 93 return success(RoleConvert.INSTANCE.convertList02(list));
94 } 94 }
95 95
@@ -97,7 +97,7 @@ public class RoleController { @@ -97,7 +97,7 @@ public class RoleController {
97 @OperateLog(type = EXPORT) 97 @OperateLog(type = EXPORT)
98 @PreAuthorize("@ss.hasPermission('system:role:export')") 98 @PreAuthorize("@ss.hasPermission('system:role:export')")
99 public void export(HttpServletResponse response, @Validated RoleExportReqVO reqVO) throws IOException { 99 public void export(HttpServletResponse response, @Validated RoleExportReqVO reqVO) throws IOException {
100 - List<SysRoleDO> list = roleService.getRoleList(reqVO); 100 + List<RoleDO> list = roleService.getRoleList(reqVO);
101 List<RoleExcelVO> data = RoleConvert.INSTANCE.convertList03(list); 101 List<RoleExcelVO> data = RoleConvert.INSTANCE.convertList03(list);
102 // 输出 102 // 输出
103 ExcelUtils.write(response, "角色数据.xls", "角色列表", RoleExcelVO.class, data); 103 ExcelUtils.write(response, "角色数据.xls", "角色列表", RoleExcelVO.class, data);
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsCallbackController.java
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms; @@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.system.controller.admin.sms;
2 2
3 import cn.hutool.core.util.URLUtil; 3 import cn.hutool.core.util.URLUtil;
4 import cn.hutool.extra.servlet.ServletUtil; 4 import cn.hutool.extra.servlet.ServletUtil;
5 -import cn.iocoder.yudao.module.system.service.sms.SysSmsSendService; 5 +import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
6 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 6 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; 7 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
8 import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum; 8 import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
@@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @@ -25,7 +25,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25 public class SmsCallbackController { 25 public class SmsCallbackController {
26 26
27 @Resource 27 @Resource
28 - private SysSmsSendService smsCoreService; 28 + private SmsSendService smsCoreService;
29 29
30 @PostMapping("/sms/yunpian") 30 @PostMapping("/sms/yunpian")
31 @ApiOperation(value = "云片短信的回调", notes = "参见 https://www.yunpian.com/official/document/sms/zh_cn/domestic_push_report 文档") 31 @ApiOperation(value = "云片短信的回调", notes = "参见 https://www.yunpian.com/official/document/sms/zh_cn/domestic_push_report 文档")
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/sms/SmsTemplateController.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.*; @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.*;
4 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert; 4 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert;
5 import cn.iocoder.yudao.module.system.service.sms.SmsTemplateService; 5 import cn.iocoder.yudao.module.system.service.sms.SmsTemplateService;
6 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
7 -import cn.iocoder.yudao.module.system.service.sms.SysSmsSendService; 7 +import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
8 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 8 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
9 import cn.iocoder.yudao.framework.common.pojo.PageResult; 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
10 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; 10 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
@@ -32,7 +32,7 @@ public class SmsTemplateController { @@ -32,7 +32,7 @@ public class SmsTemplateController {
32 @Resource 32 @Resource
33 private SmsTemplateService smsTemplateService; 33 private SmsTemplateService smsTemplateService;
34 @Resource 34 @Resource
35 - private SysSmsSendService smsCoreService; 35 + private SmsSendService smsCoreService;
36 36
37 @PostMapping("/create") 37 @PostMapping("/create")
38 @ApiOperation("创建短信模板") 38 @ApiOperation("创建短信模板")
@@ -91,7 +91,7 @@ public class SmsTemplateController { @@ -91,7 +91,7 @@ public class SmsTemplateController {
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 SmsTemplateSendReqVO sendReqVO) { 93 public CommonResult<Long> sendSms(@Valid @RequestBody SmsTemplateSendReqVO sendReqVO) {
94 - return success(smsCoreService.sendSingleSms(sendReqVO.getMobile(), null, null, 94 + return success(smsCoreService.sendSingleSmsToAdmin(sendReqVO.getMobile(), null,
95 sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); 95 sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams()));
96 } 96 }
97 97
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserController.java
@@ -4,10 +4,10 @@ import cn.hutool.core.collection.CollUtil; @@ -4,10 +4,10 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 4 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
5 import cn.iocoder.yudao.module.system.convert.user.UserConvert; 5 import cn.iocoder.yudao.module.system.convert.user.UserConvert;
6 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 -import cn.iocoder.yudao.module.system.service.user.UserService;  
8 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
  8 +import cn.iocoder.yudao.module.system.service.dept.DeptService;
  9 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
9 import cn.iocoder.yudao.module.system.enums.common.SysSexEnum; 10 import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
10 -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;  
11 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 11 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
12 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 12 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
13 import cn.iocoder.yudao.framework.common.pojo.PageResult; 13 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -18,7 +18,6 @@ import io.swagger.annotations.Api; @@ -18,7 +18,6 @@ import io.swagger.annotations.Api;
18 import io.swagger.annotations.ApiImplicitParam; 18 import io.swagger.annotations.ApiImplicitParam;
19 import io.swagger.annotations.ApiImplicitParams; 19 import io.swagger.annotations.ApiImplicitParams;
20 import io.swagger.annotations.ApiOperation; 20 import io.swagger.annotations.ApiOperation;
21 -import org.springframework.beans.factory.annotation.Autowired;  
22 import org.springframework.security.access.prepost.PreAuthorize; 21 import org.springframework.security.access.prepost.PreAuthorize;
23 import org.springframework.validation.annotation.Validated; 22 import org.springframework.validation.annotation.Validated;
24 import org.springframework.web.bind.annotation.*; 23 import org.springframework.web.bind.annotation.*;
@@ -41,11 +40,10 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E @@ -41,11 +40,10 @@ import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.E
41 @Validated 40 @Validated
42 public class UserController { 41 public class UserController {
43 42
44 - @Autowired  
45 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名  
46 - private UserService userService;  
47 @Resource 43 @Resource
48 - private SysDeptCoreService deptCoreService; 44 + private AdminUserService userService;
  45 + @Resource
  46 + private DeptService deptService;
49 47
50 @PostMapping("/create") 48 @PostMapping("/create")
51 @ApiOperation("新增用户") 49 @ApiOperation("新增用户")
@@ -93,14 +91,14 @@ public class UserController { @@ -93,14 +91,14 @@ public class UserController {
93 @PreAuthorize("@ss.hasPermission('system:user:list')") 91 @PreAuthorize("@ss.hasPermission('system:user:list')")
94 public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) { 92 public CommonResult<PageResult<UserPageItemRespVO>> getUserPage(@Valid UserPageReqVO reqVO) {
95 // 获得用户分页列表 93 // 获得用户分页列表
96 - PageResult<UserDO> pageResult = userService.getUserPage(reqVO); 94 + PageResult<AdminUserDO> pageResult = userService.getUserPage(reqVO);
97 if (CollUtil.isEmpty(pageResult.getList())) { 95 if (CollUtil.isEmpty(pageResult.getList())) {
98 return success(new PageResult<>(pageResult.getTotal())); // 返回空 96 return success(new PageResult<>(pageResult.getTotal())); // 返回空
99 } 97 }
100 98
101 // 获得拼接需要的数据 99 // 获得拼接需要的数据
102 - Collection<Long> deptIds = convertList(pageResult.getList(), UserDO::getDeptId);  
103 - Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds); 100 + Collection<Long> deptIds = convertList(pageResult.getList(), AdminUserDO::getDeptId);
  101 + Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds);
104 // 拼接结果返回 102 // 拼接结果返回
105 List<UserPageItemRespVO> userList = new ArrayList<>(pageResult.getList().size()); 103 List<UserPageItemRespVO> userList = new ArrayList<>(pageResult.getList().size());
106 pageResult.getList().forEach(user -> { 104 pageResult.getList().forEach(user -> {
@@ -115,7 +113,7 @@ public class UserController { @@ -115,7 +113,7 @@ public class UserController {
115 @ApiOperation(value = "获取用户精简信息列表", notes = "只包含被开启的用户,主要用于前端的下拉选项") 113 @ApiOperation(value = "获取用户精简信息列表", notes = "只包含被开启的用户,主要用于前端的下拉选项")
116 public CommonResult<List<UserSimpleRespVO>> getSimpleUsers() { 114 public CommonResult<List<UserSimpleRespVO>> getSimpleUsers() {
117 // 获用户门列表,只要开启状态的 115 // 获用户门列表,只要开启状态的
118 - List<UserDO> list = userService.getUsersByStatus(CommonStatusEnum.ENABLE.getStatus()); 116 + List<AdminUserDO> list = userService.getUsersByStatus(CommonStatusEnum.ENABLE.getStatus());
119 // 排序后,返回给前端 117 // 排序后,返回给前端
120 return success(UserConvert.INSTANCE.convertList04(list)); 118 return success(UserConvert.INSTANCE.convertList04(list));
121 } 119 }
@@ -135,12 +133,12 @@ public class UserController { @@ -135,12 +133,12 @@ public class UserController {
135 public void exportUsers(@Validated UserExportReqVO reqVO, 133 public void exportUsers(@Validated UserExportReqVO reqVO,
136 HttpServletResponse response) throws IOException { 134 HttpServletResponse response) throws IOException {
137 // 获得用户列表 135 // 获得用户列表
138 - List<UserDO> users = userService.getUsers(reqVO); 136 + List<AdminUserDO> users = userService.getUsers(reqVO);
139 137
140 // 获得拼接需要的数据 138 // 获得拼接需要的数据
141 - Collection<Long> deptIds = convertList(users, UserDO::getDeptId);  
142 - Map<Long, SysDeptDO> deptMap = deptCoreService.getDeptMap(deptIds);  
143 - Map<Long, UserDO> deptLeaderUserMap = userService.getUserMap( 139 + Collection<Long> deptIds = convertList(users, AdminUserDO::getDeptId);
  140 + Map<Long, SysDeptDO> deptMap = deptService.getDeptMap(deptIds);
  141 + Map<Long, AdminUserDO> deptLeaderUserMap = userService.getUserMap(
144 convertSet(deptMap.values(), SysDeptDO::getLeaderUserId)); 142 convertSet(deptMap.values(), SysDeptDO::getLeaderUserId));
145 // 拼接数据 143 // 拼接数据
146 List<UserExcelVO> excelUsers = new ArrayList<>(users.size()); 144 List<UserExcelVO> excelUsers = new ArrayList<>(users.size());
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java
@@ -5,16 +5,16 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi @@ -5,16 +5,16 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi
5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
7 import cn.iocoder.yudao.module.system.convert.user.UserConvert; 7 import cn.iocoder.yudao.module.system.convert.user.UserConvert;
  8 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
  9 +import cn.iocoder.yudao.module.system.service.dept.DeptService;
8 import cn.iocoder.yudao.module.system.service.dept.PostService; 10 import cn.iocoder.yudao.module.system.service.dept.PostService;
9 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 11 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
10 import cn.iocoder.yudao.module.system.service.permission.RoleService; 12 import cn.iocoder.yudao.module.system.service.permission.RoleService;
11 -import cn.iocoder.yudao.module.system.service.user.UserService; 13 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
12 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 14 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
13 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO; 15 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
14 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 16 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
15 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO; 17 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
16 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
17 -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;  
18 import cn.iocoder.yudao.module.system.service.social.SocialUserService; 18 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
19 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 19 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
20 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 20 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
@@ -22,7 +22,6 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; @@ -22,7 +22,6 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
22 import io.swagger.annotations.Api; 22 import io.swagger.annotations.Api;
23 import io.swagger.annotations.ApiOperation; 23 import io.swagger.annotations.ApiOperation;
24 import lombok.extern.slf4j.Slf4j; 24 import lombok.extern.slf4j.Slf4j;
25 -import org.springframework.beans.factory.annotation.Autowired;  
26 import org.springframework.validation.annotation.Validated; 25 import org.springframework.validation.annotation.Validated;
27 import org.springframework.web.bind.annotation.*; 26 import org.springframework.web.bind.annotation.*;
28 import org.springframework.web.multipart.MultipartFile; 27 import org.springframework.web.multipart.MultipartFile;
@@ -43,11 +42,10 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti @@ -43,11 +42,10 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
43 @Slf4j 42 @Slf4j
44 public class UserProfileController { 43 public class UserProfileController {
45 44
46 - @Autowired  
47 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名  
48 - private UserService userService;  
49 @Resource 45 @Resource
50 - private SysDeptCoreService deptCoreService; 46 + private AdminUserService userService;
  47 + @Resource
  48 + private DeptService deptService;
51 49
52 @Resource 50 @Resource
53 private PostService postService; 51 private PostService postService;
@@ -62,14 +60,14 @@ public class UserProfileController { @@ -62,14 +60,14 @@ public class UserProfileController {
62 @ApiOperation("获得登录用户信息") 60 @ApiOperation("获得登录用户信息")
63 public CommonResult<UserProfileRespVO> profile() { 61 public CommonResult<UserProfileRespVO> profile() {
64 // 获得用户基本信息 62 // 获得用户基本信息
65 - UserDO user = userService.getUser(getLoginUserId()); 63 + AdminUserDO user = userService.getUser(getLoginUserId());
66 UserProfileRespVO resp = UserConvert.INSTANCE.convert03(user); 64 UserProfileRespVO resp = UserConvert.INSTANCE.convert03(user);
67 // 获得用户角色 65 // 获得用户角色
68 - List<SysRoleDO> userRoles = roleService.getRolesFromCache(permissionService.getUserRoleIdListByUserId(user.getId())); 66 + List<RoleDO> userRoles = roleService.getRolesFromCache(permissionService.getUserRoleIdListByUserId(user.getId()));
69 resp.setRoles(UserConvert.INSTANCE.convertList(userRoles)); 67 resp.setRoles(UserConvert.INSTANCE.convertList(userRoles));
70 // 获得部门信息 68 // 获得部门信息
71 if (user.getDeptId() != null) { 69 if (user.getDeptId() != null) {
72 - SysDeptDO dept = deptCoreService.getDept(user.getDeptId()); 70 + SysDeptDO dept = deptService.getDept(user.getDeptId());
73 resp.setDept(UserConvert.INSTANCE.convert02(dept)); 71 resp.setDept(UserConvert.INSTANCE.convert02(dept));
74 } 72 }
75 // 获得岗位信息 73 // 获得岗位信息
@@ -78,7 +76,7 @@ public class UserProfileController { @@ -78,7 +76,7 @@ public class UserProfileController {
78 resp.setPosts(UserConvert.INSTANCE.convertList02(posts)); 76 resp.setPosts(UserConvert.INSTANCE.convertList02(posts));
79 } 77 }
80 // 获得社交用户信息 78 // 获得社交用户信息
81 - List<SysSocialUserDO> socialUsers = socialService.getSocialUserList(user.getId(), UserTypeEnum.ADMIN); 79 + List<SysSocialUserDO> socialUsers = socialService.getSocialUserList(user.getId(), UserTypeEnum.ADMIN.getValue());
82 resp.setSocialUsers(UserConvert.INSTANCE.convertList03(socialUsers)); 80 resp.setSocialUsers(UserConvert.INSTANCE.convertList03(socialUsers));
83 return success(resp); 81 return success(resp);
84 } 82 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/auth/AuthConvert.java
@@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.system.convert.auth; @@ -3,9 +3,9 @@ package cn.iocoder.yudao.module.system.convert.auth;
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthMenuRespVO; 3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthMenuRespVO;
4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthPermissionInfoRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthPermissionInfoRespVO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
6 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
7 import cn.iocoder.yudao.module.system.enums.permission.MenuIdEnum; 8 import cn.iocoder.yudao.module.system.enums.permission.MenuIdEnum;
8 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 9 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 10 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
11 import cn.iocoder.yudao.framework.security.core.LoginUser; 11 import cn.iocoder.yudao.framework.security.core.LoginUser;
@@ -22,17 +22,17 @@ public interface AuthConvert { @@ -22,17 +22,17 @@ public interface AuthConvert {
22 AuthConvert INSTANCE = Mappers.getMapper(AuthConvert.class); 22 AuthConvert INSTANCE = Mappers.getMapper(AuthConvert.class);
23 23
24 @Mapping(source = "updateTime", target = "updateTime", ignore = true) // 字段相同,但是含义不同,忽略 24 @Mapping(source = "updateTime", target = "updateTime", ignore = true) // 字段相同,但是含义不同,忽略
25 - LoginUser convert0(UserDO bean); 25 + LoginUser convert0(AdminUserDO bean);
26 26
27 - default LoginUser convert(UserDO bean) { 27 + default LoginUser convert(AdminUserDO bean) {
28 // 目的,为了设置 UserTypeEnum.ADMIN.getValue() 28 // 目的,为了设置 UserTypeEnum.ADMIN.getValue()
29 return convert0(bean).setUserType(UserTypeEnum.ADMIN.getValue()); 29 return convert0(bean).setUserType(UserTypeEnum.ADMIN.getValue());
30 } 30 }
31 31
32 - default AuthPermissionInfoRespVO convert(UserDO user, List<SysRoleDO> roleList, List<MenuDO> menuList) { 32 + default AuthPermissionInfoRespVO convert(AdminUserDO user, List<RoleDO> roleList, List<MenuDO> menuList) {
33 return AuthPermissionInfoRespVO.builder() 33 return AuthPermissionInfoRespVO.builder()
34 .user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).build()) 34 .user(AuthPermissionInfoRespVO.UserVO.builder().id(user.getId()).nickname(user.getNickname()).avatar(user.getAvatar()).build())
35 - .roles(CollectionUtils.convertSet(roleList, SysRoleDO::getCode)) 35 + .roles(CollectionUtils.convertSet(roleList, RoleDO::getCode))
36 .permissions(CollectionUtils.convertSet(menuList, MenuDO::getPermission)) 36 .permissions(CollectionUtils.convertSet(menuList, MenuDO::getPermission))
37 .build(); 37 .build();
38 } 38 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java
@@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.convert.logger; @@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.system.convert.logger;
3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExcelVO; 3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExcelVO;
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
6 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
7 import cn.iocoder.yudao.framework.common.pojo.PageResult; 7 import cn.iocoder.yudao.framework.common.pojo.PageResult;
8 import cn.iocoder.yudao.framework.common.util.collection.MapUtils; 8 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
9 import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO; 9 import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
@@ -27,7 +27,7 @@ public interface OperateLogConvert { @@ -27,7 +27,7 @@ public interface OperateLogConvert {
27 27
28 OperateLogRespVO convert(OperateLogDO bean); 28 OperateLogRespVO convert(OperateLogDO bean);
29 29
30 - default List<OperateLogExcelVO> convertList(List<OperateLogDO> list, Map<Long, UserDO> userMap) { 30 + default List<OperateLogExcelVO> convertList(List<OperateLogDO> list, Map<Long, AdminUserDO> userMap) {
31 return list.stream().map(operateLog -> { 31 return list.stream().map(operateLog -> {
32 OperateLogExcelVO excelVO = convert02(operateLog); 32 OperateLogExcelVO excelVO = convert02(operateLog);
33 MapUtils.findAndThen(userMap, operateLog.getId(), user -> excelVO.setUserNickname(user.getNickname())); 33 MapUtils.findAndThen(userMap, operateLog.getId(), user -> excelVO.setUserNickname(user.getNickname()));
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/logger/SysLoginLogCoreConvert.java
1 package cn.iocoder.yudao.module.system.convert.logger; 1 package cn.iocoder.yudao.module.system.convert.logger;
2 2
3 import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO; 3 import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
4 -import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO; 4 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
5 import org.mapstruct.Mapper; 5 import org.mapstruct.Mapper;
6 import org.mapstruct.factory.Mappers; 6 import org.mapstruct.factory.Mappers;
7 7
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/permission/RoleConvert.java
1 package cn.iocoder.yudao.module.system.convert.permission; 1 package cn.iocoder.yudao.module.system.convert.permission;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*; 3 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.*;
4 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
5 import org.mapstruct.Mapper; 5 import org.mapstruct.Mapper;
6 import org.mapstruct.factory.Mappers; 6 import org.mapstruct.factory.Mappers;
7 7
@@ -12,14 +12,14 @@ public interface RoleConvert { @@ -12,14 +12,14 @@ public interface RoleConvert {
12 12
13 RoleConvert INSTANCE = Mappers.getMapper(RoleConvert.class); 13 RoleConvert INSTANCE = Mappers.getMapper(RoleConvert.class);
14 14
15 - SysRoleDO convert(RoleUpdateReqVO bean); 15 + RoleDO convert(RoleUpdateReqVO bean);
16 16
17 - RoleRespVO convert(SysRoleDO bean); 17 + RoleRespVO convert(RoleDO bean);
18 18
19 - SysRoleDO convert(RoleCreateReqVO bean); 19 + RoleDO convert(RoleCreateReqVO bean);
20 20
21 - List<RoleSimpleRespVO> convertList02(List<SysRoleDO> list); 21 + List<RoleSimpleRespVO> convertList02(List<RoleDO> list);
22 22
23 - List<RoleExcelVO> convertList03(List<SysRoleDO> list); 23 + List<RoleExcelVO> convertList03(List<RoleDO> list);
24 24
25 } 25 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/convert/user/UserConvert.java
@@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi @@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi
6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
7 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
9 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
10 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
11 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 11 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
12 import org.mapstruct.Mapper; 12 import org.mapstruct.Mapper;
13 import org.mapstruct.factory.Mappers; 13 import org.mapstruct.factory.Mappers;
14 14
@@ -19,31 +19,31 @@ public interface UserConvert { @@ -19,31 +19,31 @@ public interface UserConvert {
19 19
20 UserConvert INSTANCE = Mappers.getMapper(UserConvert.class); 20 UserConvert INSTANCE = Mappers.getMapper(UserConvert.class);
21 21
22 - UserPageItemRespVO convert(UserDO bean); 22 + UserPageItemRespVO convert(AdminUserDO bean);
23 23
24 UserPageItemRespVO.Dept convert(SysDeptDO bean); 24 UserPageItemRespVO.Dept convert(SysDeptDO bean);
25 25
26 - UserDO convert(UserCreateReqVO bean); 26 + AdminUserDO convert(UserCreateReqVO bean);
27 27
28 - UserDO convert(UserUpdateReqVO bean); 28 + AdminUserDO convert(UserUpdateReqVO bean);
29 29
30 - UserExcelVO convert02(UserDO bean); 30 + UserExcelVO convert02(AdminUserDO bean);
31 31
32 - UserDO convert(UserImportExcelVO bean); 32 + AdminUserDO convert(UserImportExcelVO bean);
33 33
34 - UserProfileRespVO convert03(UserDO bean); 34 + UserProfileRespVO convert03(AdminUserDO bean);
35 35
36 - List<UserProfileRespVO.Role> convertList(List<SysRoleDO> list); 36 + List<UserProfileRespVO.Role> convertList(List<RoleDO> list);
37 37
38 UserProfileRespVO.Dept convert02(SysDeptDO bean); 38 UserProfileRespVO.Dept convert02(SysDeptDO bean);
39 39
40 - UserDO convert(UserProfileUpdateReqVO bean); 40 + AdminUserDO convert(UserProfileUpdateReqVO bean);
41 41
42 - UserDO convert(UserProfileUpdatePasswordReqVO bean); 42 + AdminUserDO convert(UserProfileUpdatePasswordReqVO bean);
43 43
44 List<UserProfileRespVO.Post> convertList02(List<SysPostDO> list); 44 List<UserProfileRespVO.Post> convertList02(List<SysPostDO> list);
45 45
46 List<UserProfileRespVO.SocialUser> convertList03(List<SysSocialUserDO> list); 46 List<UserProfileRespVO.SocialUser> convertList03(List<SysSocialUserDO> list);
47 47
48 - List<UserSimpleRespVO> convertList04(List<UserDO> list); 48 + List<UserSimpleRespVO> convertList04(List<AdminUserDO> list);
49 } 49 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/SysDeptDO.java
1 package cn.iocoder.yudao.module.system.dal.dataobject.dept; 1 package cn.iocoder.yudao.module.system.dal.dataobject.dept;
2 2
3 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; 5 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
6 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
@@ -41,7 +41,7 @@ public class SysDeptDO extends TenantBaseDO { @@ -41,7 +41,7 @@ public class SysDeptDO extends TenantBaseDO {
41 /** 41 /**
42 * 负责人 42 * 负责人
43 * 43 *
44 - * 关联 {@link UserDO#getId()} 44 + * 关联 {@link AdminUserDO#getId()}
45 */ 45 */
46 private Long leaderUserId; 46 private Long leaderUserId;
47 /** 47 /**
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
1 package cn.iocoder.yudao.module.system.dal.dataobject.logger; 1 package cn.iocoder.yudao.module.system.dal.dataobject.logger;
2 2
3 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
4 import cn.iocoder.yudao.framework.common.pojo.CommonResult; 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum; 5 import cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum;
6 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO; 6 import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
@@ -48,7 +48,7 @@ public class OperateLogDO extends TenantBaseDO { @@ -48,7 +48,7 @@ public class OperateLogDO extends TenantBaseDO {
48 /** 48 /**
49 * 用户编号 49 * 用户编号
50 * 50 *
51 - * {@link UserDO#getId()} 51 + * {@link AdminUserDO#getId()}
52 */ 52 */
53 private Long userId; 53 private Long userId;
54 /** 54 /**
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/SysLoginLogDO.java
@@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.system.dal.dataobject.logger; @@ -2,8 +2,8 @@ package cn.iocoder.yudao.module.system.dal.dataobject.logger;
2 2
3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 3 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 -import cn.iocoder.yudao.module.system.enums.logger.SysLoginLogTypeEnum;  
6 -import cn.iocoder.yudao.module.system.enums.logger.SysLoginResultEnum; 5 +import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
  6 +import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
7 import com.baomidou.mybatisplus.annotation.TableName; 7 import com.baomidou.mybatisplus.annotation.TableName;
8 import lombok.Data; 8 import lombok.Data;
9 import lombok.EqualsAndHashCode; 9 import lombok.EqualsAndHashCode;
@@ -29,7 +29,7 @@ public class SysLoginLogDO extends BaseDO { @@ -29,7 +29,7 @@ public class SysLoginLogDO extends BaseDO {
29 /** 29 /**
30 * 日志类型 30 * 日志类型
31 * 31 *
32 - * 枚举 {@link SysLoginLogTypeEnum} 32 + * 枚举 {@link LoginLogTypeEnum}
33 */ 33 */
34 private Integer logType; 34 private Integer logType;
35 /** 35 /**
@@ -55,7 +55,7 @@ public class SysLoginLogDO extends BaseDO { @@ -55,7 +55,7 @@ public class SysLoginLogDO extends BaseDO {
55 /** 55 /**
56 * 登录结果 56 * 登录结果
57 * 57 *
58 - * 枚举 {@link SysLoginResultEnum} 58 + * 枚举 {@link LoginResultEnum}
59 */ 59 */
60 private Integer result; 60 private Integer result;
61 /** 61 /**
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/SysRoleDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.java
@@ -17,10 +17,10 @@ import java.util.Set; @@ -17,10 +17,10 @@ import java.util.Set;
17 * 17 *
18 * @author ruoyi 18 * @author ruoyi
19 */ 19 */
20 -@TableName(value = "sys_role", autoResultMap = true) 20 +@TableName(value = "system_role", autoResultMap = true)
21 @Data 21 @Data
22 @EqualsAndHashCode(callSuper = true) 22 @EqualsAndHashCode(callSuper = true)
23 -public class SysRoleDO extends BaseDO { 23 +public class RoleDO extends BaseDO {
24 24
25 /** 25 /**
26 * 角色ID 26 * 角色ID
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/SysUserRoleDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.java
@@ -11,10 +11,10 @@ import lombok.EqualsAndHashCode; @@ -11,10 +11,10 @@ import lombok.EqualsAndHashCode;
11 * 11 *
12 * @author ruoyi 12 * @author ruoyi
13 */ 13 */
14 -@TableName("sys_user_role") 14 +@TableName("system_user_role")
15 @Data 15 @Data
16 @EqualsAndHashCode(callSuper = true) 16 @EqualsAndHashCode(callSuper = true)
17 -public class SysUserRoleDO extends BaseDO { 17 +public class UserRoleDO extends BaseDO {
18 18
19 /** 19 /**
20 * 自增主键 20 * 自增主键
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/sms/SysSmsCodeDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java
1 -package cn.iocoder.yudao.module.member.dal.dataobject.sms; 1 +package cn.iocoder.yudao.module.system.dal.dataobject.sms;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 3 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
4 import com.baomidou.mybatisplus.annotation.TableName; 4 import com.baomidou.mybatisplus.annotation.TableName;
@@ -13,13 +13,13 @@ import java.util.Date; @@ -13,13 +13,13 @@ import java.util.Date;
13 * 13 *
14 * @author 芋道源码 14 * @author 芋道源码
15 */ 15 */
16 -@TableName("sys_sms_code") 16 +@TableName("system_sms_code")
17 @Data 17 @Data
18 @EqualsAndHashCode(callSuper = true) 18 @EqualsAndHashCode(callSuper = true)
19 @Builder 19 @Builder
20 @NoArgsConstructor 20 @NoArgsConstructor
21 @AllArgsConstructor 21 @AllArgsConstructor
22 -public class SysSmsCodeDO extends BaseDO { 22 +public class SmsCodeDO extends BaseDO {
23 23
24 /** 24 /**
25 * 编号 25 * 编号
@@ -36,7 +36,7 @@ public class SysSmsCodeDO extends BaseDO { @@ -36,7 +36,7 @@ public class SysSmsCodeDO extends BaseDO {
36 /** 36 /**
37 * 发送场景 37 * 发送场景
38 * 38 *
39 - * 枚举 {@link SysSmsCodeDO} 39 + * 枚举 {@link SmsCodeDO}
40 */ 40 */
41 private Integer scene; 41 private Integer scene;
42 /** 42 /**
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SysSocialUserDO.java
1 package cn.iocoder.yudao.module.system.dal.dataobject.social; 1 package cn.iocoder.yudao.module.system.dal.dataobject.social;
2 2
3 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 3 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 4 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 5 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
6 import com.baomidou.mybatisplus.annotation.TableId; 6 import com.baomidou.mybatisplus.annotation.TableId;
@@ -9,7 +9,7 @@ import lombok.*; @@ -9,7 +9,7 @@ import lombok.*;
9 9
10 /** 10 /**
11 * 社交用户 11 * 社交用户
12 - * 通过 {@link SysSocialUserDO#getUserId()} 关联到对应的 {@link UserDO} 12 + * 通过 {@link SysSocialUserDO#getUserId()} 关联到对应的 {@link AdminUserDO}
13 * 13 *
14 * @author weir 14 * @author weir
15 */ 15 */
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/UserDO.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java
@@ -24,7 +24,7 @@ import java.util.Set; @@ -24,7 +24,7 @@ import java.util.Set;
24 @Builder 24 @Builder
25 @NoArgsConstructor 25 @NoArgsConstructor
26 @AllArgsConstructor 26 @AllArgsConstructor
27 -public class UserDO extends TenantBaseDO { 27 +public class AdminUserDO extends TenantBaseDO {
28 28
29 /** 29 /**
30 * 用户ID 30 * 用户ID
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysMenuMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/MenuMapper.java
@@ -12,7 +12,7 @@ import java.util.Date; @@ -12,7 +12,7 @@ import java.util.Date;
12 import java.util.List; 12 import java.util.List;
13 13
14 @Mapper 14 @Mapper
15 -public interface SysMenuMapper extends BaseMapperX<MenuDO> { 15 +public interface MenuMapper extends BaseMapperX<MenuDO> {
16 16
17 default MenuDO selectByParentIdAndName(Long parentId, String name) { 17 default MenuDO selectByParentIdAndName(Long parentId, String name) {
18 return selectOne(new LambdaQueryWrapper<MenuDO>().eq(MenuDO::getParentId, parentId) 18 return selectOne(new LambdaQueryWrapper<MenuDO>().eq(MenuDO::getParentId, parentId)
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysRoleMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
8 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 9 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
10 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
11 import org.springframework.lang.Nullable; 11 import org.springframework.lang.Nullable;
@@ -15,36 +15,36 @@ import java.util.Date; @@ -15,36 +15,36 @@ import java.util.Date;
15 import java.util.List; 15 import java.util.List;
16 16
17 @Mapper 17 @Mapper
18 -public interface SysRoleMapper extends BaseMapperX<SysRoleDO> { 18 +public interface RoleMapper extends BaseMapperX<RoleDO> {
19 19
20 - default PageResult<SysRoleDO> selectPage(RolePageReqVO reqVO) {  
21 - return selectPage(reqVO, new QueryWrapperX<SysRoleDO>().likeIfPresent("name", reqVO.getName()) 20 + default PageResult<RoleDO> selectPage(RolePageReqVO reqVO) {
  21 + return selectPage(reqVO, new QueryWrapperX<RoleDO>().likeIfPresent("name", reqVO.getName())
22 .likeIfPresent("code", reqVO.getCode()) 22 .likeIfPresent("code", reqVO.getCode())
23 .eqIfPresent("status", reqVO.getStatus()) 23 .eqIfPresent("status", reqVO.getStatus())
24 .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime())); 24 .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
25 } 25 }
26 26
27 - default List<SysRoleDO> listRoles(RoleExportReqVO reqVO) {  
28 - return selectList(new QueryWrapperX<SysRoleDO>().likeIfPresent("name", reqVO.getName()) 27 + default List<RoleDO> listRoles(RoleExportReqVO reqVO) {
  28 + return selectList(new QueryWrapperX<RoleDO>().likeIfPresent("name", reqVO.getName())
29 .likeIfPresent("code", reqVO.getCode()) 29 .likeIfPresent("code", reqVO.getCode())
30 .eqIfPresent("status", reqVO.getStatus()) 30 .eqIfPresent("status", reqVO.getStatus())
31 .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime())); 31 .betweenIfPresent("create_time", reqVO.getBeginTime(), reqVO.getEndTime()));
32 } 32 }
33 33
34 - default SysRoleDO selectByName(String name) {  
35 - return selectOne(new QueryWrapperX<SysRoleDO>().eq("name", name)); 34 + default RoleDO selectByName(String name) {
  35 + return selectOne(new QueryWrapperX<RoleDO>().eq("name", name));
36 } 36 }
37 37
38 - default SysRoleDO selectByCode(String code) {  
39 - return selectOne(new QueryWrapperX<SysRoleDO>().eq("code", code)); 38 + default RoleDO selectByCode(String code) {
  39 + return selectOne(new QueryWrapperX<RoleDO>().eq("code", code));
40 } 40 }
41 41
42 - default List<SysRoleDO> selectListByStatus(@Nullable Collection<Integer> statuses) {  
43 - return selectList(new QueryWrapperX<SysRoleDO>().in("status", statuses)); 42 + default List<RoleDO> selectListByStatus(@Nullable Collection<Integer> statuses) {
  43 + return selectList(new QueryWrapperX<RoleDO>().in("status", statuses));
44 } 44 }
45 45
46 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) { 46 default boolean selectExistsByUpdateTimeAfter(Date maxUpdateTime) {
47 - return selectOne(new QueryWrapper<SysRoleDO>().select("id") 47 + return selectOne(new QueryWrapper<RoleDO>().select("id")
48 .gt("update_time", maxUpdateTime).last("LIMIT 1")) != null; 48 .gt("update_time", maxUpdateTime).last("LIMIT 1")) != null;
49 } 49 }
50 50
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysRoleMenuMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMenuMapper.java
@@ -12,7 +12,7 @@ import java.util.List; @@ -12,7 +12,7 @@ import java.util.List;
12 import java.util.stream.Collectors; 12 import java.util.stream.Collectors;
13 13
14 @Mapper 14 @Mapper
15 -public interface SysRoleMenuMapper extends BaseMapperX<RoleMenuDO> { 15 +public interface RoleMenuMapper extends BaseMapperX<RoleMenuDO> {
16 16
17 default List<RoleMenuDO> selectListByRoleId(Long roleId) { 17 default List<RoleMenuDO> selectListByRoleId(Long roleId) {
18 return selectList(new QueryWrapper<RoleMenuDO>().eq("role_id", roleId)); 18 return selectList(new QueryWrapper<RoleMenuDO>().eq("role_id", roleId));
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysRoleCoreMapper.java deleted
1 -package cn.iocoder.yudao.module.system.dal.mysql.permission;  
2 -  
3 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import org.apache.ibatis.annotations.Mapper;  
6 -  
7 -@Mapper  
8 -public interface SysRoleCoreMapper extends BaseMapperX<SysRoleDO> {  
9 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysUserRoleCoreMapper.java deleted
1 -package cn.iocoder.yudao.module.system.dal.mysql.permission;  
2 -  
3 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;  
4 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
5 -import org.apache.ibatis.annotations.Mapper;  
6 -  
7 -import java.util.Collection;  
8 -import java.util.List;  
9 -  
10 -@Mapper  
11 -public interface SysUserRoleCoreMapper extends BaseMapperX<SysUserRoleDO> {  
12 -  
13 - default List<SysUserRoleDO> selectListByRoleIds(Collection<Long> roleIds) {  
14 - return selectList(SysUserRoleDO::getRoleId, roleIds);  
15 - }  
16 -  
17 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/SysUserRoleMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/UserRoleMapper.java
1 package cn.iocoder.yudao.module.system.dal.mysql.permission; 1 package cn.iocoder.yudao.module.system.dal.mysql.permission;
2 2
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 5 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6 import org.apache.ibatis.annotations.Mapper; 6 import org.apache.ibatis.annotations.Mapper;
7 7
@@ -10,20 +10,20 @@ import java.util.List; @@ -10,20 +10,20 @@ import java.util.List;
10 import java.util.stream.Collectors; 10 import java.util.stream.Collectors;
11 11
12 @Mapper 12 @Mapper
13 -public interface SysUserRoleMapper extends BaseMapperX<SysUserRoleDO> { 13 +public interface UserRoleMapper extends BaseMapperX<UserRoleDO> {
14 14
15 - default List<SysUserRoleDO> selectListByUserId(Long userId) {  
16 - return selectList(new QueryWrapper<SysUserRoleDO>().eq("user_id", userId)); 15 + default List<UserRoleDO> selectListByUserId(Long userId) {
  16 + return selectList(new QueryWrapper<UserRoleDO>().eq("user_id", userId));
17 } 17 }
18 18
19 - default List<SysUserRoleDO> selectListByRoleId(Long roleId) {  
20 - return selectList(new QueryWrapper<SysUserRoleDO>().eq("role_id", roleId)); 19 + default List<UserRoleDO> selectListByRoleId(Long roleId) {
  20 + return selectList(new QueryWrapper<UserRoleDO>().eq("role_id", roleId));
21 } 21 }
22 22
23 23
24 default void insertList(Long userId, Collection<Long> roleIds) { 24 default void insertList(Long userId, Collection<Long> roleIds) {
25 - List<SysUserRoleDO> list = roleIds.stream().map(roleId -> {  
26 - SysUserRoleDO entity = new SysUserRoleDO(); 25 + List<UserRoleDO> list = roleIds.stream().map(roleId -> {
  26 + UserRoleDO entity = new UserRoleDO();
27 entity.setUserId(userId); 27 entity.setUserId(userId);
28 entity.setRoleId(roleId); 28 entity.setRoleId(roleId);
29 return entity; 29 return entity;
@@ -32,16 +32,20 @@ public interface SysUserRoleMapper extends BaseMapperX&lt;SysUserRoleDO&gt; { @@ -32,16 +32,20 @@ public interface SysUserRoleMapper extends BaseMapperX&lt;SysUserRoleDO&gt; {
32 } 32 }
33 33
34 default void deleteListByUserIdAndRoleIdIds(Long userId, Collection<Long> roleIds) { 34 default void deleteListByUserIdAndRoleIdIds(Long userId, Collection<Long> roleIds) {
35 - delete(new QueryWrapper<SysUserRoleDO>().eq("user_id", userId) 35 + delete(new QueryWrapper<UserRoleDO>().eq("user_id", userId)
36 .in("role_id", roleIds)); 36 .in("role_id", roleIds));
37 } 37 }
38 38
39 default void deleteListByUserId(Long userId) { 39 default void deleteListByUserId(Long userId) {
40 - delete(new QueryWrapper<SysUserRoleDO>().eq("user_id", userId)); 40 + delete(new QueryWrapper<UserRoleDO>().eq("user_id", userId));
41 } 41 }
42 42
43 default void deleteListByRoleId(Long roleId) { 43 default void deleteListByRoleId(Long roleId) {
44 - delete(new QueryWrapper<SysUserRoleDO>().eq("role_id", roleId)); 44 + delete(new QueryWrapper<UserRoleDO>().eq("role_id", roleId));
45 } 45 }
46 46
  47 +
  48 + default List<UserRoleDO> selectListByRoleIds(Collection<Long> roleIds) {
  49 + return selectList(UserRoleDO::getRoleId, roleIds);
  50 + }
47 } 51 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SysSmsChannelMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsChannelMapper.java
@@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Select; @@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Select;
11 import java.util.Date; 11 import java.util.Date;
12 12
13 @Mapper 13 @Mapper
14 -public interface SysSmsChannelMapper extends BaseMapperX<SysSmsChannelDO> { 14 +public interface SmsChannelMapper extends BaseMapperX<SysSmsChannelDO> {
15 15
16 default PageResult<SysSmsChannelDO> selectPage(SmsChannelPageReqVO reqVO) { 16 default PageResult<SysSmsChannelDO> selectPage(SmsChannelPageReqVO reqVO) {
17 return selectPage(reqVO, new QueryWrapperX<SysSmsChannelDO>() 17 return selectPage(reqVO, new QueryWrapperX<SysSmsChannelDO>()
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/sms/SysSmsCodeMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsCodeMapper.java
1 -package cn.iocoder.yudao.module.member.dal.mysql.sms; 1 +package cn.iocoder.yudao.module.system.dal.mysql.sms;
2 2
  3 +import cn.iocoder.yudao.framework.mybatis.core.enums.SqlConstants;
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 4 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX; 5 import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
5 -import cn.iocoder.yudao.module.member.dal.dataobject.sms.SysSmsCodeDO; 6 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsCodeDO;
6 import org.apache.ibatis.annotations.Mapper; 7 import org.apache.ibatis.annotations.Mapper;
7 8
8 -// TODO @芋艿:拿到 system 模块下  
9 @Mapper 9 @Mapper
10 -public interface SysSmsCodeMapper extends BaseMapperX<SysSmsCodeDO> { 10 +public interface SmsCodeMapper extends BaseMapperX<SmsCodeDO> {
11 11
12 /** 12 /**
13 * 获得手机号的最后一个手机验证码 13 * 获得手机号的最后一个手机验证码
@@ -17,12 +17,10 @@ public interface SysSmsCodeMapper extends BaseMapperX&lt;SysSmsCodeDO&gt; { @@ -17,12 +17,10 @@ public interface SysSmsCodeMapper extends BaseMapperX&lt;SysSmsCodeDO&gt; {
17 * @param code 验证码 选填 17 * @param code 验证码 选填
18 * @return 手机验证码 18 * @return 手机验证码
19 */ 19 */
20 - default SysSmsCodeDO selectLastByMobile(String mobile,String code,Integer scene) {  
21 - return selectOne(new QueryWrapperX<SysSmsCodeDO>()  
22 - .eq("mobile", mobile)  
23 - .eqIfPresent("scene", scene)  
24 - .eqIfPresent("code", code)  
25 - .orderByDesc("id")  
26 - .last("LIMIT 1")); 20 + default SmsCodeDO selectLastByMobile(String mobile, String code, Integer scene) {
  21 + return selectOne(new QueryWrapperX<SmsCodeDO>()
  22 + .eq("mobile", mobile).eqIfPresent("scene", scene).eqIfPresent("code", code)
  23 + .orderByDesc("id").last(SqlConstants.LIMIT1));
27 } 24 }
  25 +
28 } 26 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SysSmsLogMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsLogMapper.java
@@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Mapper; @@ -11,7 +11,7 @@ import org.apache.ibatis.annotations.Mapper;
11 import java.util.List; 11 import java.util.List;
12 12
13 @Mapper 13 @Mapper
14 -public interface SysSmsLogMapper extends BaseMapperX<SysSmsLogDO> { 14 +public interface SmsLogMapper extends BaseMapperX<SysSmsLogDO> {
15 15
16 default PageResult<SysSmsLogDO> selectPage(SmsLogPageReqVO reqVO) { 16 default PageResult<SysSmsLogDO> selectPage(SmsLogPageReqVO reqVO) {
17 return selectPage(reqVO, new QueryWrapperX<SysSmsLogDO>() 17 return selectPage(reqVO, new QueryWrapperX<SysSmsLogDO>()
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SysSmsTemplateMapper.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/sms/SmsTemplateMapper.java
@@ -13,7 +13,7 @@ import java.util.Date; @@ -13,7 +13,7 @@ import java.util.Date;
13 import java.util.List; 13 import java.util.List;
14 14
15 @Mapper 15 @Mapper
16 -public interface SysSmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> { 16 +public interface SmsTemplateMapper extends BaseMapperX<SysSmsTemplateDO> {
17 17
18 @Select("SELECT id FROM sys_sms_template WHERE update_time > #{maxUpdateTime} LIMIT 1") 18 @Select("SELECT id FROM sys_sms_template WHERE update_time > #{maxUpdateTime} LIMIT 1")
19 Long selectExistsByUpdateTimeAfter(Date maxUpdateTime); 19 Long selectExistsByUpdateTimeAfter(Date maxUpdateTime);
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/AdminUserMapper.java 0 → 100644
  1 +package cn.iocoder.yudao.module.system.dal.mysql.user;
  2 +
  3 +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserExportReqVO;
  4 +import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
  5 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  8 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  9 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  10 +import org.apache.ibatis.annotations.Mapper;
  11 +
  12 +import java.util.Collection;
  13 +import java.util.List;
  14 +
  15 +@Mapper
  16 +public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
  17 +
  18 + default AdminUserDO selectByUsername(String username) {
  19 + return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getUsername, username));
  20 + }
  21 +
  22 + default AdminUserDO selectByEmail(String email) {
  23 + return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getEmail, email));
  24 + }
  25 +
  26 + default AdminUserDO selectByMobile(String mobile) {
  27 + return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getMobile, mobile));
  28 + }
  29 +
  30 + default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) {
  31 + return selectPage(reqVO, new LambdaQueryWrapperX<AdminUserDO>()
  32 + .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername())
  33 + .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile())
  34 + .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
  35 + .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())
  36 + .inIfPresent(AdminUserDO::getDeptId, deptIds));
  37 + }
  38 +
  39 + default List<AdminUserDO> selectList(UserExportReqVO reqVO, Collection<Long> deptIds) {
  40 + return selectList(new LambdaQueryWrapperX<AdminUserDO>()
  41 + .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername())
  42 + .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile())
  43 + .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
  44 + .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())
  45 + .inIfPresent(AdminUserDO::getDeptId, deptIds));
  46 + }
  47 +
  48 + default List<AdminUserDO> selectListByNickname(String nickname) {
  49 + return selectList(new LambdaQueryWrapperX<AdminUserDO>().like(AdminUserDO::getNickname, nickname));
  50 + }
  51 +
  52 + default List<AdminUserDO> selectListByUsername(String username) {
  53 + return selectList(new LambdaQueryWrapperX<AdminUserDO>().like(AdminUserDO::getUsername, username));
  54 + }
  55 +
  56 + default List<AdminUserDO> selectListByStatus(Integer status) {
  57 + return selectList(AdminUserDO::getStatus, status);
  58 + }
  59 +
  60 + default List<AdminUserDO> selectListByDeptIds(Collection<Long> deptIds) {
  61 + return selectList(AdminUserDO::getDeptId, deptIds);
  62 + }
  63 +
  64 +}
  65 +
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/user/UserMapper.java deleted
1 -package cn.iocoder.yudao.module.system.dal.mysql.user;  
2 -  
3 -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserExportReqVO;  
4 -import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;  
5 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
6 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
7 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
8 -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;  
9 -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;  
10 -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;  
11 -import jodd.util.StringPool;  
12 -import org.apache.ibatis.annotations.Mapper;  
13 -  
14 -import java.util.Collection;  
15 -import java.util.List;  
16 -import java.util.Optional;  
17 -  
18 -@Mapper  
19 -public interface UserMapper extends BaseMapperX<UserDO> {  
20 -  
21 - default UserDO selectByUsername(String username) {  
22 - return selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getUsername, username));  
23 - }  
24 -  
25 - default UserDO selectByEmail(String email) {  
26 - return selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getEmail, email));  
27 - }  
28 -  
29 - default UserDO selectByMobile(String mobile) {  
30 - return selectOne(new LambdaQueryWrapper<UserDO>().eq(UserDO::getMobile, mobile));  
31 - }  
32 -  
33 - default PageResult<UserDO> selectPage(UserPageReqVO reqVO, Collection<Long> deptIds) {  
34 - return selectPage(reqVO, new LambdaQueryWrapperX<UserDO>()  
35 - .likeIfPresent(UserDO::getUsername, reqVO.getUsername())  
36 - .likeIfPresent(UserDO::getMobile, reqVO.getMobile())  
37 - .eqIfPresent(UserDO::getStatus, reqVO.getStatus())  
38 - .betweenIfPresent(UserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())  
39 - .inIfPresent(UserDO::getDeptId, deptIds));  
40 - }  
41 -  
42 - default List<UserDO> selectList(UserExportReqVO reqVO, Collection<Long> deptIds) {  
43 - return selectList(new LambdaQueryWrapperX<UserDO>()  
44 - .likeIfPresent(UserDO::getUsername, reqVO.getUsername())  
45 - .likeIfPresent(UserDO::getMobile, reqVO.getMobile())  
46 - .eqIfPresent(UserDO::getStatus, reqVO.getStatus())  
47 - .betweenIfPresent(UserDO::getCreateTime, reqVO.getBeginTime(), reqVO.getEndTime())  
48 - .inIfPresent(UserDO::getDeptId, deptIds));  
49 - }  
50 -  
51 - default List<UserDO> selectListByNickname(String nickname) {  
52 - return selectList(new LambdaQueryWrapperX<UserDO>().like(UserDO::getNickname, nickname));  
53 - }  
54 -  
55 - default List<UserDO> selectListByUsername(String username) {  
56 - return selectList(new LambdaQueryWrapperX<UserDO>().like(UserDO::getUsername, username));  
57 - }  
58 -  
59 - default List<UserDO> selectListByStatus(Integer status) {  
60 - return selectList(UserDO::getStatus, status);  
61 - }  
62 -  
63 - default List<UserDO> selectListByDeptIds(Collection<Long> deptIds) {  
64 - return selectList(UserDO::getDeptId, deptIds);  
65 - }  
66 -  
67 -}  
68 -  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/framework/datapermission/config/DataPermissionConfiguration.java
1 package cn.iocoder.yudao.module.system.framework.datapermission.config; 1 package cn.iocoder.yudao.module.system.framework.datapermission.config;
2 2
3 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 3 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
4 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 4 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
5 import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRuleCustomizer; 5 import cn.iocoder.yudao.framework.datapermission.core.dept.rule.DeptDataPermissionRuleCustomizer;
6 import org.springframework.context.annotation.Bean; 6 import org.springframework.context.annotation.Bean;
7 import org.springframework.context.annotation.Configuration; 7 import org.springframework.context.annotation.Configuration;
@@ -17,7 +17,7 @@ public class DataPermissionConfiguration { @@ -17,7 +17,7 @@ public class DataPermissionConfiguration {
17 @Bean 17 @Bean
18 public DeptDataPermissionRuleCustomizer sysDeptDataPermissionRuleCustomizer() { 18 public DeptDataPermissionRuleCustomizer sysDeptDataPermissionRuleCustomizer() {
19 return rule -> { 19 return rule -> {
20 - rule.addDeptColumn(UserDO.class); 20 + rule.addDeptColumn(AdminUserDO.class);
21 rule.addDeptColumn(SysDeptDO.class, "id"); 21 rule.addDeptColumn(SysDeptDO.class, "id");
22 }; 22 };
23 } 23 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/framework/sms/SmsCodeConfiguration.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/framework/sms/SmsCodeConfiguration.java
1 -package cn.iocoder.yudao.module.member.framework.sms; 1 +package cn.iocoder.yudao.module.system.framework.sms;
2 2
3 import org.springframework.boot.context.properties.EnableConfigurationProperties; 3 import org.springframework.boot.context.properties.EnableConfigurationProperties;
4 import org.springframework.context.annotation.Configuration; 4 import org.springframework.context.annotation.Configuration;
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/framework/sms/SmsCodeProperties.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/framework/sms/SmsCodeProperties.java
1 -package cn.iocoder.yudao.module.member.framework.sms; 1 +package cn.iocoder.yudao.module.system.framework.sms;
2 2
3 import lombok.Data; 3 import lombok.Data;
4 import org.springframework.boot.context.properties.ConfigurationProperties; 4 import org.springframework.boot.context.properties.ConfigurationProperties;
5 import org.springframework.validation.annotation.Validated; 5 import org.springframework.validation.annotation.Validated;
6 6
7 -import javax.validation.constraints.NotEmpty;  
8 import javax.validation.constraints.NotNull; 7 import javax.validation.constraints.NotNull;
9 import java.time.Duration; 8 import java.time.Duration;
10 -import java.util.Collection;  
11 9
12 @ConfigurationProperties(prefix = "yudao.sms-code") 10 @ConfigurationProperties(prefix = "yudao.sms-code")
13 @Validated 11 @Validated
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/mq/consumer/sms/SmsSendConsumer.java
1 package cn.iocoder.yudao.module.system.mq.consumer.sms; 1 package cn.iocoder.yudao.module.system.mq.consumer.sms;
2 2
3 import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage; 3 import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
4 -import cn.iocoder.yudao.module.system.service.sms.SysSmsSendService; 4 +import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
5 import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener; 5 import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;
6 import lombok.extern.slf4j.Slf4j; 6 import lombok.extern.slf4j.Slf4j;
7 import org.springframework.stereotype.Component; 7 import org.springframework.stereotype.Component;
@@ -19,7 +19,7 @@ import javax.annotation.Resource; @@ -19,7 +19,7 @@ import javax.annotation.Resource;
19 public class SmsSendConsumer extends AbstractStreamMessageListener<SmsSendMessage> { 19 public class SmsSendConsumer extends AbstractStreamMessageListener<SmsSendMessage> {
20 20
21 @Resource 21 @Resource
22 - private SysSmsSendService smsCoreService; 22 + private SmsSendService smsCoreService;
23 23
24 @Override 24 @Override
25 public void onMessage(SmsSendMessage message) { 25 public void onMessage(SmsSendMessage message) {
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AuthService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthService.java
@@ -12,7 +12,7 @@ import javax.validation.Valid; @@ -12,7 +12,7 @@ import javax.validation.Valid;
12 * 12 *
13 * @author 芋道源码 13 * @author 芋道源码
14 */ 14 */
15 -public interface AuthService extends SecurityAuthFrameworkService { 15 +public interface AdminAuthService extends SecurityAuthFrameworkService {
16 16
17 /** 17 /**
18 * 账号登录 18 * 账号登录
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java
@@ -13,15 +13,15 @@ import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLo @@ -13,15 +13,15 @@ import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLo
13 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLoginReqVO; 13 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthSocialLoginReqVO;
14 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert; 14 import cn.iocoder.yudao.module.system.convert.auth.AuthConvert;
15 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO; 15 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
16 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 16 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
17 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 17 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
18 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 18 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
19 import cn.iocoder.yudao.module.system.service.common.CaptchaService; 19 import cn.iocoder.yudao.module.system.service.common.CaptchaService;
20 import cn.iocoder.yudao.module.system.service.logger.LoginLogService; 20 import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
21 -import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO; 21 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
22 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 22 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
23 import cn.iocoder.yudao.module.system.service.social.SocialUserService; 23 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
24 -import cn.iocoder.yudao.module.system.service.user.UserService; 24 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
25 import lombok.extern.slf4j.Slf4j; 25 import lombok.extern.slf4j.Slf4j;
26 import me.zhyd.oauth.model.AuthUser; 26 import me.zhyd.oauth.model.AuthUser;
27 import org.springframework.beans.factory.annotation.Autowired; 27 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,9 +50,9 @@ import static java.util.Collections.singleton; @@ -50,9 +50,9 @@ import static java.util.Collections.singleton;
50 * 50 *
51 * @author 芋道源码 51 * @author 芋道源码
52 */ 52 */
53 -@Service("adminAuthService") 53 +@Service
54 @Slf4j 54 @Slf4j
55 -public class AuthServiceImpl implements AuthService { 55 +public class AdminAuthServiceImpl implements AdminAuthService {
56 56
57 @Resource 57 @Resource
58 @Lazy // 延迟加载,因为存在相互依赖的问题 58 @Lazy // 延迟加载,因为存在相互依赖的问题
@@ -60,7 +60,7 @@ public class AuthServiceImpl implements AuthService { @@ -60,7 +60,7 @@ public class AuthServiceImpl implements AuthService {
60 60
61 @Autowired 61 @Autowired
62 @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名 62 @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名
63 - private UserService userService; 63 + private AdminUserService userService;
64 @Resource 64 @Resource
65 private PermissionService permissionService; 65 private PermissionService permissionService;
66 @Resource 66 @Resource
@@ -75,7 +75,7 @@ public class AuthServiceImpl implements AuthService { @@ -75,7 +75,7 @@ public class AuthServiceImpl implements AuthService {
75 @Override 75 @Override
76 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { 76 public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
77 // 获取 username 对应的 SysUserDO 77 // 获取 username 对应的 SysUserDO
78 - UserDO user = userService.getUserByUsername(username); 78 + AdminUserDO user = userService.getUserByUsername(username);
79 if (user == null) { 79 if (user == null) {
80 throw new UsernameNotFoundException(username); 80 throw new UsernameNotFoundException(username);
81 } 81 }
@@ -86,7 +86,7 @@ public class AuthServiceImpl implements AuthService { @@ -86,7 +86,7 @@ public class AuthServiceImpl implements AuthService {
86 @Override 86 @Override
87 public LoginUser mockLogin(Long userId) { 87 public LoginUser mockLogin(Long userId) {
88 // 获取用户编号对应的 SysUserDO 88 // 获取用户编号对应的 SysUserDO
89 - UserDO user = userService.getUser(userId); 89 + AdminUserDO user = userService.getUser(userId);
90 if (user == null) { 90 if (user == null) {
91 throw new UsernameNotFoundException(String.valueOf(userId)); 91 throw new UsernameNotFoundException(String.valueOf(userId));
92 } 92 }
@@ -160,7 +160,7 @@ public class AuthServiceImpl implements AuthService { @@ -160,7 +160,7 @@ public class AuthServiceImpl implements AuthService {
160 160
161 private void createLoginLog(String username, LoginLogTypeEnum logTypeEnum, LoginResultEnum loginResult) { 161 private void createLoginLog(String username, LoginLogTypeEnum logTypeEnum, LoginResultEnum loginResult) {
162 // 获得用户 162 // 获得用户
163 - UserDO user = userService.getUserByUsername(username); 163 + AdminUserDO user = userService.getUserByUsername(username);
164 // 插入登录日志 164 // 插入登录日志
165 LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO(); 165 LoginLogCreateReqDTO reqDTO = new LoginLogCreateReqDTO();
166 reqDTO.setLogType(logTypeEnum.getType()); 166 reqDTO.setLogType(logTypeEnum.getType());
@@ -198,13 +198,13 @@ public class AuthServiceImpl implements AuthService { @@ -198,13 +198,13 @@ public class AuthServiceImpl implements AuthService {
198 198
199 // 如果未绑定 SysSocialUserDO 用户,则无法自动登录,进行报错 199 // 如果未绑定 SysSocialUserDO 用户,则无法自动登录,进行报错
200 String unionId = socialService.getAuthUserUnionId(authUser); 200 String unionId = socialService.getAuthUserUnionId(authUser);
201 - List<SysSocialUserDO> socialUsers = socialService.getAllSocialUserList(reqVO.getType(), unionId, getUserType()); 201 + List<SysSocialUserDO> socialUsers = socialService.getAllSocialUserList(reqVO.getType(), unionId, getUserType().getValue());
202 if (CollUtil.isEmpty(socialUsers)) { 202 if (CollUtil.isEmpty(socialUsers)) {
203 throw exception(AUTH_THIRD_LOGIN_NOT_BIND); 203 throw exception(AUTH_THIRD_LOGIN_NOT_BIND);
204 } 204 }
205 205
206 // 自动登录 206 // 自动登录
207 - UserDO user = userService.getUser(socialUsers.get(0).getUserId()); 207 + AdminUserDO user = userService.getUser(socialUsers.get(0).getUserId());
208 if (user == null) { 208 if (user == null) {
209 throw exception(USER_NOT_EXISTS); 209 throw exception(USER_NOT_EXISTS);
210 } 210 }
@@ -214,7 +214,7 @@ public class AuthServiceImpl implements AuthService { @@ -214,7 +214,7 @@ public class AuthServiceImpl implements AuthService {
214 LoginUser loginUser = this.buildLoginUser(user); 214 LoginUser loginUser = this.buildLoginUser(user);
215 215
216 // 绑定社交用户(更新) 216 // 绑定社交用户(更新)
217 - socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType()); 217 + socialService.bindSocialUser(loginUser.getId(), getUserType().getValue(), reqVO.getType(), authUser);
218 218
219 // 缓存登录用户到 Redis 中,返回 sessionId 编号 219 // 缓存登录用户到 Redis 中,返回 sessionId 编号
220 return userSessionService.createUserSession(loginUser, userIp, userAgent); 220 return userSessionService.createUserSession(loginUser, userIp, userAgent);
@@ -230,7 +230,7 @@ public class AuthServiceImpl implements AuthService { @@ -230,7 +230,7 @@ public class AuthServiceImpl implements AuthService {
230 LoginUser loginUser = this.login0(reqVO.getUsername(), reqVO.getPassword()); 230 LoginUser loginUser = this.login0(reqVO.getUsername(), reqVO.getPassword());
231 231
232 // 绑定社交用户(新增) 232 // 绑定社交用户(新增)
233 - socialService.bindSocialUser(loginUser.getId(), reqVO.getType(), authUser, getUserType()); 233 + socialService.bindSocialUser(loginUser.getId(), getUserType().getValue(), reqVO.getType(), authUser);
234 234
235 // 缓存登录用户到 Redis 中,返回 sessionId 编号 235 // 缓存登录用户到 Redis 中,返回 sessionId 编号
236 return userSessionService.createUserSession(loginUser, userIp, userAgent); 236 return userSessionService.createUserSession(loginUser, userIp, userAgent);
@@ -243,7 +243,7 @@ public class AuthServiceImpl implements AuthService { @@ -243,7 +243,7 @@ public class AuthServiceImpl implements AuthService {
243 Assert.notNull(authUser, "授权用户不为空"); 243 Assert.notNull(authUser, "授权用户不为空");
244 244
245 // 绑定社交用户(新增) 245 // 绑定社交用户(新增)
246 - socialService.bindSocialUser(userId, reqVO.getType(), authUser, getUserType()); 246 + socialService.bindSocialUser(userId, getUserType().getValue(), reqVO.getType(), authUser);
247 } 247 }
248 248
249 @Override 249 @Override
@@ -296,7 +296,7 @@ public class AuthServiceImpl implements AuthService { @@ -296,7 +296,7 @@ public class AuthServiceImpl implements AuthService {
296 } 296 }
297 297
298 // 重新加载 SysUserDO 信息 298 // 重新加载 SysUserDO 信息
299 - UserDO user = userService.getUser(loginUser.getId()); 299 + AdminUserDO user = userService.getUser(loginUser.getId());
300 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) { 300 if (user == null || CommonStatusEnum.DISABLE.getStatus().equals(user.getStatus())) {
301 throw exception(AUTH_TOKEN_EXPIRED); // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面 301 throw exception(AUTH_TOKEN_EXPIRED); // 校验 token 时,用户被禁用的情况下,也认为 token 过期,方便前端跳转到登录界面
302 } 302 }
@@ -307,7 +307,7 @@ public class AuthServiceImpl implements AuthService { @@ -307,7 +307,7 @@ public class AuthServiceImpl implements AuthService {
307 return newLoginUser; 307 return newLoginUser;
308 } 308 }
309 309
310 - private LoginUser buildLoginUser(UserDO user) { 310 + private LoginUser buildLoginUser(AdminUserDO user) {
311 LoginUser loginUser = AuthConvert.INSTANCE.convert(user); 311 LoginUser loginUser = AuthConvert.INSTANCE.convert(user);
312 // 补全字段 312 // 补全字段
313 loginUser.setDeptId(user.getDeptId()); 313 loginUser.setDeptId(user.getDeptId());
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImpl.java
@@ -6,15 +6,15 @@ import cn.hutool.core.util.StrUtil; @@ -6,15 +6,15 @@ import cn.hutool.core.util.StrUtil;
6 import cn.iocoder.yudao.framework.security.config.SecurityProperties; 6 import cn.iocoder.yudao.framework.security.config.SecurityProperties;
7 import cn.iocoder.yudao.framework.security.core.LoginUser; 7 import cn.iocoder.yudao.framework.security.core.LoginUser;
8 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
9 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper; 10 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper;
10 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 11 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
11 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 12 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
12 import cn.iocoder.yudao.module.system.service.logger.LoginLogService; 13 import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
13 -import cn.iocoder.yudao.module.system.service.user.UserService; 14 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
14 import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO; 15 import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
15 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
16 import cn.iocoder.yudao.module.system.dal.redis.auth.LoginUserRedisDAO; 16 import cn.iocoder.yudao.module.system.dal.redis.auth.LoginUserRedisDAO;
17 -import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO; 17 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
18 import cn.iocoder.yudao.framework.common.pojo.PageResult; 18 import cn.iocoder.yudao.framework.common.pojo.PageResult;
19 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; 19 import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
20 import com.google.common.collect.Lists; 20 import com.google.common.collect.Lists;
@@ -42,7 +42,7 @@ public class UserSessionServiceImpl implements UserSessionService { @@ -42,7 +42,7 @@ public class UserSessionServiceImpl implements UserSessionService {
42 private SysUserSessionMapper userSessionMapper; 42 private SysUserSessionMapper userSessionMapper;
43 43
44 @Resource 44 @Resource
45 - private UserService userService; 45 + private AdminUserService userService;
46 @Resource 46 @Resource
47 private LoginLogService loginLogService; 47 private LoginLogService loginLogService;
48 48
@@ -57,7 +57,7 @@ public class UserSessionServiceImpl implements UserSessionService { @@ -57,7 +57,7 @@ public class UserSessionServiceImpl implements UserSessionService {
57 // 处理基于用户昵称的查询 57 // 处理基于用户昵称的查询
58 Collection<Long> userIds = null; 58 Collection<Long> userIds = null;
59 if (StrUtil.isNotEmpty(reqVO.getUsername())) { 59 if (StrUtil.isNotEmpty(reqVO.getUsername())) {
60 - userIds = convertSet(userService.getUsersByUsername(reqVO.getUsername()), UserDO::getId); 60 + userIds = convertSet(userService.getUsersByUsername(reqVO.getUsername()), AdminUserDO::getId);
61 if (CollUtil.isEmpty(userIds)) { 61 if (CollUtil.isEmpty(userIds)) {
62 return PageResult.empty(); 62 return PageResult.empty();
63 } 63 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptService.java
1 package cn.iocoder.yudao.module.system.service.dept; 1 package cn.iocoder.yudao.module.system.service.dept;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
3 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
6 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 9
  10 +import java.util.Collection;
  11 +import java.util.Collections;
8 import java.util.List; 12 import java.util.List;
  13 +import java.util.Map;
9 14
10 /** 15 /**
11 * 部门 Service 接口 16 * 部门 Service 接口
@@ -59,4 +64,50 @@ public interface DeptService { @@ -59,4 +64,50 @@ public interface DeptService {
59 */ 64 */
60 List<SysDeptDO> getDeptsByParentIdFromCache(Long parentId, boolean recursive); 65 List<SysDeptDO> getDeptsByParentIdFromCache(Long parentId, boolean recursive);
61 66
  67 + /**
  68 + * 获得部门信息数组
  69 + *
  70 + * @param ids 部门编号数组
  71 + * @return 部门信息数组
  72 + */
  73 + List<SysDeptDO> getDepts(Collection<Long> ids);
  74 +
  75 + /**
  76 + * 获得部门信息
  77 + *
  78 + * @param id 部门编号
  79 + * @return 部门信息
  80 + */
  81 + SysDeptDO getDept(Long id);
  82 +
  83 + /**
  84 + * 校验部门们是否有效。如下情况,视为无效:
  85 + * 1. 部门编号不存在
  86 + * 2. 部门被禁用
  87 + *
  88 + * @param ids 角色编号数组
  89 + */
  90 + void validDepts(Collection<Long> ids);
  91 +
  92 + /**
  93 + * 获得指定编号的部门列表
  94 + *
  95 + * @param ids 部门编号数组
  96 + * @return 部门列表
  97 + */
  98 + List<SysDeptDO> getSimpleDepts(Collection<Long> ids);
  99 +
  100 + /**
  101 + * 获得指定编号的部门 Map
  102 + *
  103 + * @param ids 部门编号数组
  104 + * @return 部门 Map
  105 + */
  106 + default Map<Long, SysDeptDO> getDeptMap(Collection<Long> ids) {
  107 + if (CollUtil.isEmpty(ids)) {
  108 + return Collections.emptyMap();
  109 + }
  110 + List<SysDeptDO> list = getSimpleDepts(ids);
  111 + return CollectionUtils.convertMap(list, SysDeptDO::getId);
  112 + }
62 } 113 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/DeptServiceImpl.java
@@ -3,13 +3,14 @@ package cn.iocoder.yudao.module.system.service.dept; @@ -3,13 +3,14 @@ package cn.iocoder.yudao.module.system.service.dept;
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
  6 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
6 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 7 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptCreateReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
9 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.dept.DeptUpdateReqVO;
10 import cn.iocoder.yudao.module.system.convert.dept.DeptConvert; 11 import cn.iocoder.yudao.module.system.convert.dept.DeptConvert;
11 -import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptMapper;  
12 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 12 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
  13 +import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptMapper;
13 import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum; 14 import cn.iocoder.yudao.module.system.enums.dept.DeptIdEnum;
14 import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer; 15 import cn.iocoder.yudao.module.system.mq.producer.dept.DeptProducer;
15 import com.google.common.collect.ImmutableMap; 16 import com.google.common.collect.ImmutableMap;
@@ -24,8 +25,8 @@ import javax.annotation.PostConstruct; @@ -24,8 +25,8 @@ import javax.annotation.PostConstruct;
24 import javax.annotation.Resource; 25 import javax.annotation.Resource;
25 import java.util.*; 26 import java.util.*;
26 27
27 -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;  
28 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 28 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  29 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
29 30
30 /** 31 /**
31 * 部门 Service 实现类 32 * 部门 Service 实现类
@@ -257,4 +258,39 @@ public class DeptServiceImpl implements DeptService { @@ -257,4 +258,39 @@ public class DeptServiceImpl implements DeptService {
257 } 258 }
258 } 259 }
259 260
  261 + @Override
  262 + public List<SysDeptDO> getDepts(Collection<Long> ids) {
  263 + return deptMapper.selectBatchIds(ids);
  264 + }
  265 +
  266 + @Override
  267 + public SysDeptDO getDept(Long id) {
  268 + return deptMapper.selectById(id);
  269 + }
  270 +
  271 + @Override
  272 + public void validDepts(Collection<Long> ids) {
  273 + if (CollUtil.isEmpty(ids)) {
  274 + return;
  275 + }
  276 + // 获得科室信息
  277 + List<SysDeptDO> depts = deptMapper.selectBatchIds(ids);
  278 + Map<Long, SysDeptDO> deptMap = CollectionUtils.convertMap(depts, SysDeptDO::getId);
  279 + // 校验
  280 + ids.forEach(id -> {
  281 + SysDeptDO dept = deptMap.get(id);
  282 + if (dept == null) {
  283 + throw exception(DEPT_NOT_FOUND);
  284 + }
  285 + if (!CommonStatusEnum.ENABLE.getStatus().equals(dept.getStatus())) {
  286 + throw exception(DEPT_NOT_ENABLE, dept.getName());
  287 + }
  288 + });
  289 + }
  290 +
  291 + @Override
  292 + public List<SysDeptDO> getSimpleDepts(Collection<Long> ids) {
  293 + return deptMapper.selectBatchIds(ids);
  294 + }
  295 +
260 } 296 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostService.java
@@ -86,4 +86,13 @@ public interface PostService { @@ -86,4 +86,13 @@ public interface PostService {
86 */ 86 */
87 SysPostDO getPost(Long id); 87 SysPostDO getPost(Long id);
88 88
  89 + /**
  90 + * 校验岗位们是否有效。如下情况,视为无效:
  91 + * 1. 岗位编号不存在
  92 + * 2. 岗位被禁用
  93 + *
  94 + * @param ids 岗位编号数组
  95 + */
  96 + void validPosts(Collection<Long> ids);
  97 +
89 } 98 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/PostServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.dept; 1 package cn.iocoder.yudao.module.system.service.dept;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
3 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
4 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostCreateReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostCreateReqVO;
@@ -7,17 +9,19 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportRe @@ -7,17 +9,19 @@ import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostExportRe
7 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostPageReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.dept.vo.post.PostUpdateReqVO;
9 import cn.iocoder.yudao.module.system.convert.dept.PostConvert; 11 import cn.iocoder.yudao.module.system.convert.dept.PostConvert;
10 -import cn.iocoder.yudao.module.system.dal.mysql.dept.SysPostMapper;  
11 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO; 12 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
  13 +import cn.iocoder.yudao.module.system.dal.mysql.dept.SysPostMapper;
12 import org.springframework.stereotype.Service; 14 import org.springframework.stereotype.Service;
13 import org.springframework.validation.annotation.Validated; 15 import org.springframework.validation.annotation.Validated;
14 16
15 import javax.annotation.Resource; 17 import javax.annotation.Resource;
16 import java.util.Collection; 18 import java.util.Collection;
17 import java.util.List; 19 import java.util.List;
  20 +import java.util.Map;
18 21
19 -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;  
20 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 22 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  23 +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
  24 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
21 25
22 /** 26 /**
23 * 岗位 Service 实现类 27 * 岗位 Service 实现类
@@ -125,4 +129,23 @@ public class PostServiceImpl implements PostService { @@ -125,4 +129,23 @@ public class PostServiceImpl implements PostService {
125 } 129 }
126 } 130 }
127 131
  132 + @Override
  133 + public void validPosts(Collection<Long> ids) {
  134 + if (CollUtil.isEmpty(ids)) {
  135 + return;
  136 + }
  137 + // 获得岗位信息
  138 + List<SysPostDO> posts = postMapper.selectBatchIds(ids);
  139 + Map<Long, SysPostDO> postMap = convertMap(posts, SysPostDO::getId);
  140 + // 校验
  141 + ids.forEach(id -> {
  142 + SysPostDO post = postMap.get(id);
  143 + if (post == null) {
  144 + throw exception(POST_NOT_FOUND);
  145 + }
  146 + if (!CommonStatusEnum.ENABLE.getStatus().equals(post.getStatus())) {
  147 + throw exception(POST_NOT_ENABLE, post.getName());
  148 + }
  149 + });
  150 + }
128 } 151 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/SysDeptCoreService.java deleted
1 -package cn.iocoder.yudao.module.system.service.dept;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;  
5 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
6 -  
7 -import java.util.Collection;  
8 -import java.util.Collections;  
9 -import java.util.List;  
10 -import java.util.Map;  
11 -  
12 -public interface SysDeptCoreService {  
13 - /**  
14 - * 获得部门信息数组  
15 - *  
16 - * @param ids 部门编号数组  
17 - * @return 部门信息数组  
18 - */  
19 - List<SysDeptDO> getDepts(Collection<Long> ids);  
20 -  
21 - /**  
22 - * 获得部门信息  
23 - *  
24 - * @param id 部门编号  
25 - * @return 部门信息  
26 - */  
27 - SysDeptDO getDept(Long id);  
28 -  
29 - /**  
30 - * 校验部门们是否有效。如下情况,视为无效:  
31 - * 1. 部门编号不存在  
32 - * 2. 部门被禁用  
33 - *  
34 - * @param ids 角色编号数组  
35 - */  
36 - void validDepts(Collection<Long> ids);  
37 -  
38 - /**  
39 - * 获得指定编号的部门列表  
40 - *  
41 - * @param ids 部门编号数组  
42 - * @return 部门列表  
43 - */  
44 - List<SysDeptDO> getSimpleDepts(Collection<Long> ids);  
45 -  
46 - /**  
47 - * 获得指定编号的部门 Map  
48 - *  
49 - * @param ids 部门编号数组  
50 - * @return 部门 Map  
51 - */  
52 - default Map<Long, SysDeptDO> getDeptMap(Collection<Long> ids) {  
53 - if (CollUtil.isEmpty(ids)) {  
54 - return Collections.emptyMap();  
55 - }  
56 - List<SysDeptDO> list = getSimpleDepts(ids);  
57 - return CollectionUtils.convertMap(list, SysDeptDO::getId);  
58 - }  
59 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/SysPostCoreService.java deleted
1 -package cn.iocoder.yudao.module.system.service.dept;  
2 -  
3 -import java.util.Collection;  
4 -  
5 -/**  
6 - * 岗位 Core Service 接口  
7 - *  
8 - * @author 芋道源码  
9 - */  
10 -public interface SysPostCoreService {  
11 - /**  
12 - * 校验岗位们是否有效。如下情况,视为无效:  
13 - * 1. 岗位编号不存在  
14 - * 2. 岗位被禁用  
15 - *  
16 - * @param ids 岗位编号数组  
17 - */  
18 - void validPosts(Collection<Long> ids);  
19 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/impl/SysDeptCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.system.service.dept.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;  
5 -import cn.iocoder.yudao.module.system.dal.mysql.dept.SysDeptCoreMapper;  
6 -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;  
7 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
8 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
9 -import lombok.extern.slf4j.Slf4j;  
10 -import org.springframework.stereotype.Service;  
11 -  
12 -import javax.annotation.Resource;  
13 -import java.util.Collection;  
14 -import java.util.List;  
15 -import java.util.Map;  
16 -  
17 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.DEPT_NOT_ENABLE;  
18 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.DEPT_NOT_FOUND;  
19 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
20 -  
21 -/**  
22 - * 部门 Core Service 实现类  
23 - *  
24 - * @author 芋道源码  
25 - */  
26 -@Service  
27 -@Slf4j  
28 -public class SysDeptCoreServiceImpl implements SysDeptCoreService {  
29 -  
30 - @Resource  
31 - private SysDeptCoreMapper deptCoreMapper;  
32 -  
33 - @Override  
34 - public List<SysDeptDO> getDepts(Collection<Long> ids) {  
35 - return deptCoreMapper.selectBatchIds(ids);  
36 - }  
37 -  
38 - @Override  
39 - public SysDeptDO getDept(Long id) {  
40 - return deptCoreMapper.selectById(id);  
41 - }  
42 -  
43 - @Override  
44 - public void validDepts(Collection<Long> ids) {  
45 - if (CollUtil.isEmpty(ids)) {  
46 - return;  
47 - }  
48 - // 获得科室信息  
49 - List<SysDeptDO> depts = deptCoreMapper.selectBatchIds(ids);  
50 - Map<Long, SysDeptDO> deptMap = CollectionUtils.convertMap(depts, SysDeptDO::getId);  
51 - // 校验  
52 - ids.forEach(id -> {  
53 - SysDeptDO dept = deptMap.get(id);  
54 - if (dept == null) {  
55 - throw exception(DEPT_NOT_FOUND);  
56 - }  
57 - if (!CommonStatusEnum.ENABLE.getStatus().equals(dept.getStatus())) {  
58 - throw exception(DEPT_NOT_ENABLE, dept.getName());  
59 - }  
60 - });  
61 - }  
62 -  
63 - @Override  
64 - public List<SysDeptDO> getSimpleDepts(Collection<Long> ids) {  
65 - return deptCoreMapper.selectBatchIds(ids);  
66 - }  
67 -  
68 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/dept/impl/SysPostCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.system.service.dept.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;  
5 -import cn.iocoder.yudao.module.system.dal.mysql.dept.SysPostCoreMapper;  
6 -import cn.iocoder.yudao.module.system.service.dept.SysPostCoreService;  
7 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
8 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
9 -import org.springframework.stereotype.Service;  
10 -  
11 -import javax.annotation.Resource;  
12 -import java.util.Collection;  
13 -import java.util.List;  
14 -import java.util.Map;  
15 -  
16 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.POST_NOT_ENABLE;  
17 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.POST_NOT_FOUND;  
18 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
19 -  
20 -/**  
21 - * 岗位 Core Service 实现类  
22 - *  
23 - * @author 芋道源码  
24 - */  
25 -@Service  
26 -public class SysPostCoreServiceImpl implements SysPostCoreService {  
27 -  
28 - @Resource  
29 - private SysPostCoreMapper sysPostCoreMapper;  
30 -  
31 - @Override  
32 - public void validPosts(Collection<Long> ids) {  
33 - if (CollUtil.isEmpty(ids)) {  
34 - return;  
35 - }  
36 - // 获得岗位信息  
37 - List<SysPostDO> posts = sysPostCoreMapper.selectBatchIds(ids);  
38 - Map<Long, SysPostDO> postMap = CollectionUtils.convertMap(posts, SysPostDO::getId);  
39 - // 校验  
40 - ids.forEach(id -> {  
41 - SysPostDO post = postMap.get(id);  
42 - if (post == null) {  
43 - throw exception(POST_NOT_FOUND);  
44 - }  
45 - if (!CommonStatusEnum.ENABLE.getStatus().equals(post.getStatus())) {  
46 - throw exception(POST_NOT_ENABLE, post.getName());  
47 - }  
48 - });  
49 - }  
50 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogService.java
@@ -4,8 +4,9 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginL @@ -4,8 +4,9 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginL
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
5 import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 -import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO; 7 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
8 8
  9 +import javax.validation.Valid;
9 import java.util.List; 10 import java.util.List;
10 11
11 /** 12 /**
@@ -34,6 +35,6 @@ public interface LoginLogService { @@ -34,6 +35,6 @@ public interface LoginLogService {
34 * 35 *
35 * @param reqDTO 日志信息 36 * @param reqDTO 日志信息
36 */ 37 */
37 - void createLoginLog(LoginLogCreateReqDTO reqDTO); 38 + void createLoginLog(@Valid LoginLogCreateReqDTO reqDTO);
38 39
39 } 40 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.logger; 1 package cn.iocoder.yudao.module.system.service.logger;
2 2
  3 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO;
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
5 import cn.iocoder.yudao.module.system.convert.logger.SysLoginLogCoreConvert; 6 import cn.iocoder.yudao.module.system.convert.logger.SysLoginLogCoreConvert;
6 -import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper;  
7 import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.logger.SysLoginLogDO;
8 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
9 -import cn.iocoder.yudao.module.system.dal.mysql.logger.SysLoginLogCoreMapper;  
10 -import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO; 8 +import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper;
  9 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
11 import org.springframework.stereotype.Service; 10 import org.springframework.stereotype.Service;
12 11
13 import javax.annotation.Resource; 12 import javax.annotation.Resource;
@@ -35,7 +34,6 @@ public class LoginLogServiceImpl implements LoginLogService { @@ -35,7 +34,6 @@ public class LoginLogServiceImpl implements LoginLogService {
35 @Override 34 @Override
36 public void createLoginLog(LoginLogCreateReqDTO reqDTO) { 35 public void createLoginLog(LoginLogCreateReqDTO reqDTO) {
37 SysLoginLogDO loginLog = SysLoginLogCoreConvert.INSTANCE.convert(reqDTO); 36 SysLoginLogDO loginLog = SysLoginLogCoreConvert.INSTANCE.convert(reqDTO);
38 - // 插入  
39 loginLogMapper.insert(loginLog); 37 loginLogMapper.insert(loginLog);
40 } 38 }
41 39
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java
@@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper @@ -6,9 +6,9 @@ import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.Oper
6 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
7 import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; 7 import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert;
8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
  9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
9 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; 10 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper;
10 -import cn.iocoder.yudao.module.system.service.user.UserService;  
11 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 11 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
12 import cn.iocoder.yudao.framework.common.pojo.PageResult; 12 import cn.iocoder.yudao.framework.common.pojo.PageResult;
13 import cn.iocoder.yudao.framework.common.util.string.StrUtils; 13 import cn.iocoder.yudao.framework.common.util.string.StrUtils;
14 import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO; 14 import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
@@ -35,7 +35,7 @@ public class OperateLogServiceImpl implements OperateLogService { @@ -35,7 +35,7 @@ public class OperateLogServiceImpl implements OperateLogService {
35 private OperateLogMapper operateLogMapper; 35 private OperateLogMapper operateLogMapper;
36 36
37 @Resource 37 @Resource
38 - private UserService userService; 38 + private AdminUserService userService;
39 39
40 @Override 40 @Override
41 @Async 41 @Async
@@ -58,7 +58,7 @@ public class OperateLogServiceImpl implements OperateLogService { @@ -58,7 +58,7 @@ public class OperateLogServiceImpl implements OperateLogService {
58 // 处理基于用户昵称的查询 58 // 处理基于用户昵称的查询
59 Collection<Long> userIds = null; 59 Collection<Long> userIds = null;
60 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { 60 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {
61 - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), UserDO::getId); 61 + userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), AdminUserDO::getId);
62 if (CollUtil.isEmpty(userIds)) { 62 if (CollUtil.isEmpty(userIds)) {
63 return PageResult.empty(); 63 return PageResult.empty();
64 } 64 }
@@ -72,7 +72,7 @@ public class OperateLogServiceImpl implements OperateLogService { @@ -72,7 +72,7 @@ public class OperateLogServiceImpl implements OperateLogService {
72 // 处理基于用户昵称的查询 72 // 处理基于用户昵称的查询
73 Collection<Long> userIds = null; 73 Collection<Long> userIds = null;
74 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) { 74 if (StrUtil.isNotEmpty(reqVO.getUserNickname())) {
75 - userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), UserDO::getId); 75 + userIds = convertSet(userService.getUsersByNickname(reqVO.getUserNickname()), AdminUserDO::getId);
76 if (CollUtil.isEmpty(userIds)) { 76 if (CollUtil.isEmpty(userIds)) {
77 return Collections.emptyList(); 77 return Collections.emptyList();
78 } 78 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceImpl.java
@@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuLi @@ -8,7 +8,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuLi
8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuUpdateReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuUpdateReqVO;
9 import cn.iocoder.yudao.module.system.convert.permission.MenuConvert; 9 import cn.iocoder.yudao.module.system.convert.permission.MenuConvert;
10 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
11 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysMenuMapper; 11 +import cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper;
12 import cn.iocoder.yudao.module.system.enums.permission.MenuIdEnum; 12 import cn.iocoder.yudao.module.system.enums.permission.MenuIdEnum;
13 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; 13 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
14 import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer; 14 import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer;
@@ -67,7 +67,7 @@ public class MenuServiceImpl implements MenuService { @@ -67,7 +67,7 @@ public class MenuServiceImpl implements MenuService {
67 private volatile Date maxUpdateTime; 67 private volatile Date maxUpdateTime;
68 68
69 @Resource 69 @Resource
70 - private SysMenuMapper menuMapper; 70 + private MenuMapper menuMapper;
71 @Resource 71 @Resource
72 private PermissionService permissionService; 72 private PermissionService permissionService;
73 73
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionService.java
@@ -115,4 +115,12 @@ public interface PermissionService extends SecurityPermissionFrameworkService, D @@ -115,4 +115,12 @@ public interface PermissionService extends SecurityPermissionFrameworkService, D
115 */ 115 */
116 void processUserDeleted(Long userId); 116 void processUserDeleted(Long userId);
117 117
  118 + /**
  119 + * 获得拥有多个角色的用户编号集合
  120 + *
  121 + * @param roleIds 角色编号集合
  122 + * @return 用户编号集合
  123 + */
  124 + Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds);
  125 +
118 } 126 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceImpl.java
@@ -5,11 +5,11 @@ import cn.hutool.core.collection.CollectionUtil; @@ -5,11 +5,11 @@ import cn.hutool.core.collection.CollectionUtil;
5 import cn.hutool.core.util.ArrayUtil; 5 import cn.hutool.core.util.ArrayUtil;
6 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
8 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO;
10 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;  
11 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMenuMapper;  
12 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleMapper; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
  11 +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper;
  12 +import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
13 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer; 13 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer;
14 import cn.iocoder.yudao.module.system.service.dept.DeptService; 14 import cn.iocoder.yudao.module.system.service.dept.DeptService;
15 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 15 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
@@ -75,9 +75,9 @@ public class PermissionServiceImpl implements PermissionService { @@ -75,9 +75,9 @@ public class PermissionServiceImpl implements PermissionService {
75 private volatile Date maxUpdateTime; 75 private volatile Date maxUpdateTime;
76 76
77 @Resource 77 @Resource
78 - private SysRoleMenuMapper roleMenuMapper; 78 + private RoleMenuMapper roleMenuMapper;
79 @Resource 79 @Resource
80 - private SysUserRoleMapper userRoleMapper; 80 + private UserRoleMapper userRoleMapper;
81 81
82 @Resource 82 @Resource
83 private RoleService roleService; 83 private RoleService roleService;
@@ -150,7 +150,7 @@ public class PermissionServiceImpl implements PermissionService { @@ -150,7 +150,7 @@ public class PermissionServiceImpl implements PermissionService {
150 return Collections.emptyList(); 150 return Collections.emptyList();
151 } 151 }
152 // 判断角色是否包含管理员 152 // 判断角色是否包含管理员
153 - List<SysRoleDO> roleList = roleService.getRolesFromCache(roleIds); 153 + List<RoleDO> roleList = roleService.getRolesFromCache(roleIds);
154 boolean hasAdmin = roleService.hasAnyAdmin(roleList); 154 boolean hasAdmin = roleService.hasAnyAdmin(roleList);
155 // 获得角色拥有的菜单关联 155 // 获得角色拥有的菜单关联
156 if (hasAdmin) { // 管理员,获取到全部 156 if (hasAdmin) { // 管理员,获取到全部
@@ -162,21 +162,21 @@ public class PermissionServiceImpl implements PermissionService { @@ -162,21 +162,21 @@ public class PermissionServiceImpl implements PermissionService {
162 162
163 @Override 163 @Override
164 public Set<Long> getUserRoleIds(Long userId, Collection<Integer> roleStatuses) { 164 public Set<Long> getUserRoleIds(Long userId, Collection<Integer> roleStatuses) {
165 - List<SysUserRoleDO> userRoleList = userRoleMapper.selectListByUserId(userId); 165 + List<UserRoleDO> userRoleList = userRoleMapper.selectListByUserId(userId);
166 // 过滤角色状态 166 // 过滤角色状态
167 if (CollectionUtil.isNotEmpty(roleStatuses)) { 167 if (CollectionUtil.isNotEmpty(roleStatuses)) {
168 userRoleList.removeIf(userRoleDO -> { 168 userRoleList.removeIf(userRoleDO -> {
169 - SysRoleDO role = roleService.getRoleFromCache(userRoleDO.getRoleId()); 169 + RoleDO role = roleService.getRoleFromCache(userRoleDO.getRoleId());
170 return role == null || !roleStatuses.contains(role.getStatus()); 170 return role == null || !roleStatuses.contains(role.getStatus());
171 }); 171 });
172 } 172 }
173 - return CollectionUtils.convertSet(userRoleList, SysUserRoleDO::getRoleId); 173 + return CollectionUtils.convertSet(userRoleList, UserRoleDO::getRoleId);
174 } 174 }
175 175
176 @Override 176 @Override
177 public Set<Long> listRoleMenuIds(Long roleId) { 177 public Set<Long> listRoleMenuIds(Long roleId) {
178 // 如果是管理员的情况下,获取全部菜单编号 178 // 如果是管理员的情况下,获取全部菜单编号
179 - SysRoleDO role = roleService.getRole(roleId); 179 + RoleDO role = roleService.getRole(roleId);
180 if (roleService.hasAnyAdmin(Collections.singletonList(role))) { 180 if (roleService.hasAnyAdmin(Collections.singletonList(role))) {
181 return CollectionUtils.convertSet(menuService.getMenus(), MenuDO::getId); 181 return CollectionUtils.convertSet(menuService.getMenus(), MenuDO::getId);
182 } 182 }
@@ -215,13 +215,13 @@ public class PermissionServiceImpl implements PermissionService { @@ -215,13 +215,13 @@ public class PermissionServiceImpl implements PermissionService {
215 @Override 215 @Override
216 public Set<Long> getUserRoleIdListByUserId(Long userId) { 216 public Set<Long> getUserRoleIdListByUserId(Long userId) {
217 return CollectionUtils.convertSet(userRoleMapper.selectListByUserId(userId), 217 return CollectionUtils.convertSet(userRoleMapper.selectListByUserId(userId),
218 - SysUserRoleDO::getRoleId); 218 + UserRoleDO::getRoleId);
219 } 219 }
220 220
221 @Override 221 @Override
222 public Set<Long> getUserRoleIdListByRoleId(Long roleId) { 222 public Set<Long> getUserRoleIdListByRoleId(Long roleId) {
223 return CollectionUtils.convertSet(userRoleMapper.selectListByRoleId(roleId), 223 return CollectionUtils.convertSet(userRoleMapper.selectListByRoleId(roleId),
224 - SysUserRoleDO::getRoleId); 224 + UserRoleDO::getRoleId);
225 } 225 }
226 226
227 227
@@ -230,7 +230,7 @@ public class PermissionServiceImpl implements PermissionService { @@ -230,7 +230,7 @@ public class PermissionServiceImpl implements PermissionService {
230 public void assignUserRole(Long userId, Set<Long> roleIds) { 230 public void assignUserRole(Long userId, Set<Long> roleIds) {
231 // 获得角色拥有角色编号 231 // 获得角色拥有角色编号
232 Set<Long> dbRoleIds = CollectionUtils.convertSet(userRoleMapper.selectListByUserId(userId), 232 Set<Long> dbRoleIds = CollectionUtils.convertSet(userRoleMapper.selectListByUserId(userId),
233 - SysUserRoleDO::getRoleId); 233 + UserRoleDO::getRoleId);
234 // 计算新增和删除的角色编号 234 // 计算新增和删除的角色编号
235 Collection<Long> createRoleIds = CollUtil.subtract(roleIds, dbRoleIds); 235 Collection<Long> createRoleIds = CollUtil.subtract(roleIds, dbRoleIds);
236 Collection<Long> deleteMenuIds = CollUtil.subtract(dbRoleIds, roleIds); 236 Collection<Long> deleteMenuIds = CollUtil.subtract(dbRoleIds, roleIds);
@@ -343,7 +343,7 @@ public class PermissionServiceImpl implements PermissionService { @@ -343,7 +343,7 @@ public class PermissionServiceImpl implements PermissionService {
343 return true; 343 return true;
344 } 344 }
345 Set<String> userRoles = CollectionUtils.convertSet(roleService.getRolesFromCache(roleIds), 345 Set<String> userRoles = CollectionUtils.convertSet(roleService.getRolesFromCache(roleIds),
346 - SysRoleDO::getCode); 346 + RoleDO::getCode);
347 return CollUtil.containsAny(userRoles, Sets.newHashSet(roles)); 347 return CollUtil.containsAny(userRoles, Sets.newHashSet(roles));
348 } 348 }
349 349
@@ -357,8 +357,8 @@ public class PermissionServiceImpl implements PermissionService { @@ -357,8 +357,8 @@ public class PermissionServiceImpl implements PermissionService {
357 357
358 // 创建 DeptDataPermissionRespDTO 对象 358 // 创建 DeptDataPermissionRespDTO 对象
359 result = new DeptDataPermissionRespDTO(); 359 result = new DeptDataPermissionRespDTO();
360 - List<SysRoleDO> roles = roleService.getRolesFromCache(loginUser.getRoleIds());  
361 - for (SysRoleDO role : roles) { 360 + List<RoleDO> roles = roleService.getRolesFromCache(loginUser.getRoleIds());
  361 + for (RoleDO role : roles) {
362 // 为空时,跳过 362 // 为空时,跳过
363 if (role.getDataScope() == null) { 363 if (role.getDataScope() == null) {
364 continue; 364 continue;
@@ -401,4 +401,10 @@ public class PermissionServiceImpl implements PermissionService { @@ -401,4 +401,10 @@ public class PermissionServiceImpl implements PermissionService {
401 return result; 401 return result;
402 } 402 }
403 403
  404 + @Override
  405 + public Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds) {
  406 + return CollectionUtils.convertSet(userRoleMapper.selectListByRoleIds(roleIds),
  407 + UserRoleDO::getRoleId);
  408 + }
  409 +
404 } 410 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleService.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCr @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCr
5 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO;
8 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 8 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
9 import org.springframework.lang.Nullable; 9 import org.springframework.lang.Nullable;
10 10
11 import java.util.Collection; 11 import java.util.Collection;
@@ -69,7 +69,7 @@ public interface RoleService { @@ -69,7 +69,7 @@ public interface RoleService {
69 * @param id 角色编号 69 * @param id 角色编号
70 * @return 角色 70 * @return 角色
71 */ 71 */
72 - SysRoleDO getRoleFromCache(Long id); 72 + RoleDO getRoleFromCache(Long id);
73 73
74 /** 74 /**
75 * 获得角色列表 75 * 获得角色列表
@@ -77,7 +77,7 @@ public interface RoleService { @@ -77,7 +77,7 @@ public interface RoleService {
77 * @param statuses 筛选的状态。允许空,空时不筛选 77 * @param statuses 筛选的状态。允许空,空时不筛选
78 * @return 角色列表 78 * @return 角色列表
79 */ 79 */
80 - List<SysRoleDO> getRoles(@Nullable Collection<Integer> statuses); 80 + List<RoleDO> getRoles(@Nullable Collection<Integer> statuses);
81 81
82 /** 82 /**
83 * 获得角色数组,从缓存中 83 * 获得角色数组,从缓存中
@@ -85,7 +85,7 @@ public interface RoleService { @@ -85,7 +85,7 @@ public interface RoleService {
85 * @param ids 角色编号数组 85 * @param ids 角色编号数组
86 * @return 角色数组 86 * @return 角色数组
87 */ 87 */
88 - List<SysRoleDO> getRolesFromCache(Collection<Long> ids); 88 + List<RoleDO> getRolesFromCache(Collection<Long> ids);
89 89
90 /** 90 /**
91 * 判断角色数组中,是否有管理员 91 * 判断角色数组中,是否有管理员
@@ -93,7 +93,7 @@ public interface RoleService { @@ -93,7 +93,7 @@ public interface RoleService {
93 * @param roleList 角色数组 93 * @param roleList 角色数组
94 * @return 是否有管理员 94 * @return 是否有管理员
95 */ 95 */
96 - boolean hasAnyAdmin(Collection<SysRoleDO> roleList); 96 + boolean hasAnyAdmin(Collection<RoleDO> roleList);
97 97
98 /** 98 /**
99 * 判断角色编号数组中,是否有管理员 99 * 判断角色编号数组中,是否有管理员
@@ -111,7 +111,7 @@ public interface RoleService { @@ -111,7 +111,7 @@ public interface RoleService {
111 * @param id 角色编号 111 * @param id 角色编号
112 * @return 角色 112 * @return 角色
113 */ 113 */
114 - SysRoleDO getRole(Long id); 114 + RoleDO getRole(Long id);
115 115
116 /** 116 /**
117 * 获得角色分页 117 * 获得角色分页
@@ -119,7 +119,7 @@ public interface RoleService { @@ -119,7 +119,7 @@ public interface RoleService {
119 * @param reqVO 角色分页查询 119 * @param reqVO 角色分页查询
120 * @return 角色分页结果 120 * @return 角色分页结果
121 */ 121 */
122 - PageResult<SysRoleDO> getRolePage(RolePageReqVO reqVO); 122 + PageResult<RoleDO> getRolePage(RolePageReqVO reqVO);
123 123
124 /** 124 /**
125 * 获得角色列表 125 * 获得角色列表
@@ -127,8 +127,15 @@ public interface RoleService { @@ -127,8 +127,15 @@ public interface RoleService {
127 * @param reqVO 列表查询 127 * @param reqVO 列表查询
128 * @return 角色列表 128 * @return 角色列表
129 */ 129 */
130 - List<SysRoleDO> getRoleList(RoleExportReqVO reqVO);  
131 - 130 + List<RoleDO> getRoleList(RoleExportReqVO reqVO);
132 131
  132 + /**
  133 + * 校验角色们是否有效。如下情况,视为无效:
  134 + * 1. 角色编号不存在
  135 + * 2. 角色被禁用
  136 + *
  137 + * @param ids 角色编号数组
  138 + */
  139 + void validRoles(Collection<Long> ids);
133 140
134 } 141 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceImpl.java
@@ -4,18 +4,19 @@ import cn.hutool.core.collection.CollUtil; @@ -4,18 +4,19 @@ import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.collection.CollectionUtil; 4 import cn.hutool.core.collection.CollectionUtil;
5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 5 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
6 import cn.iocoder.yudao.framework.common.pojo.PageResult; 6 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
7 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 8 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
  9 +import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum;
8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCreateReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCreateReqVO;
9 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO; 11 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleExportReqVO;
10 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 12 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
11 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO; 13 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO;
12 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert; 14 import cn.iocoder.yudao.module.system.convert.permission.RoleConvert;
13 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMapper;  
14 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 15 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
  16 +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper;
15 import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; 17 import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
16 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; 18 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum;
17 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer; 19 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer;
18 -import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum;  
19 import com.google.common.annotations.VisibleForTesting; 20 import com.google.common.annotations.VisibleForTesting;
20 import com.google.common.collect.ImmutableMap; 21 import com.google.common.collect.ImmutableMap;
21 import lombok.extern.slf4j.Slf4j; 22 import lombok.extern.slf4j.Slf4j;
@@ -32,8 +33,8 @@ import javax.annotation.Resource; @@ -32,8 +33,8 @@ import javax.annotation.Resource;
32 import java.util.*; 33 import java.util.*;
33 import java.util.stream.Collectors; 34 import java.util.stream.Collectors;
34 35
35 -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;  
36 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 36 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  37 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
37 38
38 /** 39 /**
39 * 角色 Service 实现类 40 * 角色 Service 实现类
@@ -52,11 +53,11 @@ public class RoleServiceImpl implements RoleService { @@ -52,11 +53,11 @@ public class RoleServiceImpl implements RoleService {
52 53
53 /** 54 /**
54 * 角色缓存 55 * 角色缓存
55 - * key:角色编号 {@link SysRoleDO#getId()} 56 + * key:角色编号 {@link RoleDO#getId()}
56 * 57 *
57 * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向 58 * 这里声明 volatile 修饰的原因是,每次刷新时,直接修改指向
58 */ 59 */
59 - private volatile Map<Long, SysRoleDO> roleCache; 60 + private volatile Map<Long, RoleDO> roleCache;
60 /** 61 /**
61 * 缓存角色的最大更新时间,用于后续的增量轮询,判断是否有更新 62 * 缓存角色的最大更新时间,用于后续的增量轮询,判断是否有更新
62 */ 63 */
@@ -66,7 +67,7 @@ public class RoleServiceImpl implements RoleService { @@ -66,7 +67,7 @@ public class RoleServiceImpl implements RoleService {
66 private PermissionService permissionService; 67 private PermissionService permissionService;
67 68
68 @Resource 69 @Resource
69 - private SysRoleMapper roleMapper; 70 + private RoleMapper roleMapper;
70 71
71 @Resource 72 @Resource
72 private RoleProducer roleProducer; 73 private RoleProducer roleProducer;
@@ -78,13 +79,13 @@ public class RoleServiceImpl implements RoleService { @@ -78,13 +79,13 @@ public class RoleServiceImpl implements RoleService {
78 @PostConstruct 79 @PostConstruct
79 public void initLocalCache() { 80 public void initLocalCache() {
80 // 获取角色列表,如果有更新 81 // 获取角色列表,如果有更新
81 - List<SysRoleDO> roleList = this.loadRoleIfUpdate(maxUpdateTime); 82 + List<RoleDO> roleList = this.loadRoleIfUpdate(maxUpdateTime);
82 if (CollUtil.isEmpty(roleList)) { 83 if (CollUtil.isEmpty(roleList)) {
83 return; 84 return;
84 } 85 }
85 86
86 // 写入缓存 87 // 写入缓存
87 - ImmutableMap.Builder<Long, SysRoleDO> builder = ImmutableMap.builder(); 88 + ImmutableMap.Builder<Long, RoleDO> builder = ImmutableMap.builder();
88 roleList.forEach(sysRoleDO -> builder.put(sysRoleDO.getId(), sysRoleDO)); 89 roleList.forEach(sysRoleDO -> builder.put(sysRoleDO.getId(), sysRoleDO));
89 roleCache = builder.build(); 90 roleCache = builder.build();
90 assert roleList.size() > 0; // 断言,避免告警 91 assert roleList.size() > 0; // 断言,避免告警
@@ -104,7 +105,7 @@ public class RoleServiceImpl implements RoleService { @@ -104,7 +105,7 @@ public class RoleServiceImpl implements RoleService {
104 * @param maxUpdateTime 当前角色的最大更新时间 105 * @param maxUpdateTime 当前角色的最大更新时间
105 * @return 角色列表 106 * @return 角色列表
106 */ 107 */
107 - private List<SysRoleDO> loadRoleIfUpdate(Date maxUpdateTime) { 108 + private List<RoleDO> loadRoleIfUpdate(Date maxUpdateTime) {
108 // 第一步,判断是否要更新。 109 // 第一步,判断是否要更新。
109 if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据 110 if (maxUpdateTime == null) { // 如果更新时间为空,说明 DB 一定有新数据
110 log.info("[loadRoleIfUpdate][首次加载全量角色]"); 111 log.info("[loadRoleIfUpdate][首次加载全量角色]");
@@ -123,7 +124,7 @@ public class RoleServiceImpl implements RoleService { @@ -123,7 +124,7 @@ public class RoleServiceImpl implements RoleService {
123 // 校验角色 124 // 校验角色
124 checkDuplicateRole(reqVO.getName(), reqVO.getCode(), null); 125 checkDuplicateRole(reqVO.getName(), reqVO.getCode(), null);
125 // 插入到数据库 126 // 插入到数据库
126 - SysRoleDO role = RoleConvert.INSTANCE.convert(reqVO); 127 + RoleDO role = RoleConvert.INSTANCE.convert(reqVO);
127 role.setType(RoleTypeEnum.CUSTOM.getType()); 128 role.setType(RoleTypeEnum.CUSTOM.getType());
128 role.setStatus(CommonStatusEnum.ENABLE.getStatus()); 129 role.setStatus(CommonStatusEnum.ENABLE.getStatus());
129 role.setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限 130 role.setDataScope(DataScopeEnum.ALL.getScope()); // 默认可查看所有数据。原因是,可能一些项目不需要项目权限
@@ -141,7 +142,7 @@ public class RoleServiceImpl implements RoleService { @@ -141,7 +142,7 @@ public class RoleServiceImpl implements RoleService {
141 // 校验角色的唯一字段是否重复 142 // 校验角色的唯一字段是否重复
142 checkDuplicateRole(reqVO.getName(), reqVO.getCode(), reqVO.getId()); 143 checkDuplicateRole(reqVO.getName(), reqVO.getCode(), reqVO.getId());
143 // 更新到数据库 144 // 更新到数据库
144 - SysRoleDO updateObject = RoleConvert.INSTANCE.convert(reqVO); 145 + RoleDO updateObject = RoleConvert.INSTANCE.convert(reqVO);
145 roleMapper.updateById(updateObject); 146 roleMapper.updateById(updateObject);
146 // 发送刷新消息 147 // 发送刷新消息
147 roleProducer.sendRoleRefreshMessage(); 148 roleProducer.sendRoleRefreshMessage();
@@ -152,7 +153,7 @@ public class RoleServiceImpl implements RoleService { @@ -152,7 +153,7 @@ public class RoleServiceImpl implements RoleService {
152 // 校验是否可以更新 153 // 校验是否可以更新
153 this.checkUpdateRole(id); 154 this.checkUpdateRole(id);
154 // 更新状态 155 // 更新状态
155 - SysRoleDO updateObject = new SysRoleDO(); 156 + RoleDO updateObject = new RoleDO();
156 updateObject.setId(id); 157 updateObject.setId(id);
157 updateObject.setStatus(status); 158 updateObject.setStatus(status);
158 roleMapper.updateById(updateObject); 159 roleMapper.updateById(updateObject);
@@ -165,7 +166,7 @@ public class RoleServiceImpl implements RoleService { @@ -165,7 +166,7 @@ public class RoleServiceImpl implements RoleService {
165 // 校验是否可以更新 166 // 校验是否可以更新
166 checkUpdateRole(id); 167 checkUpdateRole(id);
167 // 更新数据范围 168 // 更新数据范围
168 - SysRoleDO updateObject = new SysRoleDO(); 169 + RoleDO updateObject = new RoleDO();
169 updateObject.setId(id); 170 updateObject.setId(id);
170 updateObject.setDataScope(dataScope); 171 updateObject.setDataScope(dataScope);
171 updateObject.setDataScopeDeptIds(dataScopeDeptIds); 172 updateObject.setDataScopeDeptIds(dataScopeDeptIds);
@@ -195,17 +196,17 @@ public class RoleServiceImpl implements RoleService { @@ -195,17 +196,17 @@ public class RoleServiceImpl implements RoleService {
195 } 196 }
196 197
197 @Override 198 @Override
198 - public SysRoleDO getRoleFromCache(Long id) { 199 + public RoleDO getRoleFromCache(Long id) {
199 return roleCache.get(id); 200 return roleCache.get(id);
200 } 201 }
201 202
202 @Override 203 @Override
203 - public List<SysRoleDO> getRoles(@Nullable Collection<Integer> statuses) { 204 + public List<RoleDO> getRoles(@Nullable Collection<Integer> statuses) {
204 return roleMapper.selectListByStatus(statuses); 205 return roleMapper.selectListByStatus(statuses);
205 } 206 }
206 207
207 @Override 208 @Override
208 - public List<SysRoleDO> getRolesFromCache(Collection<Long> ids) { 209 + public List<RoleDO> getRolesFromCache(Collection<Long> ids) {
209 if (CollectionUtil.isEmpty(ids)) { 210 if (CollectionUtil.isEmpty(ids)) {
210 return Collections.emptyList(); 211 return Collections.emptyList();
211 } 212 }
@@ -214,7 +215,7 @@ public class RoleServiceImpl implements RoleService { @@ -214,7 +215,7 @@ public class RoleServiceImpl implements RoleService {
214 } 215 }
215 216
216 @Override 217 @Override
217 - public boolean hasAnyAdmin(Collection<SysRoleDO> roleList) { 218 + public boolean hasAnyAdmin(Collection<RoleDO> roleList) {
218 if (CollectionUtil.isEmpty(roleList)) { 219 if (CollectionUtil.isEmpty(roleList)) {
219 return false; 220 return false;
220 } 221 }
@@ -222,17 +223,17 @@ public class RoleServiceImpl implements RoleService { @@ -222,17 +223,17 @@ public class RoleServiceImpl implements RoleService {
222 } 223 }
223 224
224 @Override 225 @Override
225 - public SysRoleDO getRole(Long id) { 226 + public RoleDO getRole(Long id) {
226 return roleMapper.selectById(id); 227 return roleMapper.selectById(id);
227 } 228 }
228 229
229 @Override 230 @Override
230 - public PageResult<SysRoleDO> getRolePage(RolePageReqVO reqVO) { 231 + public PageResult<RoleDO> getRolePage(RolePageReqVO reqVO) {
231 return roleMapper.selectPage(reqVO); 232 return roleMapper.selectPage(reqVO);
232 } 233 }
233 234
234 @Override 235 @Override
235 - public List<SysRoleDO> getRoleList(RoleExportReqVO reqVO) { 236 + public List<RoleDO> getRoleList(RoleExportReqVO reqVO) {
236 return roleMapper.listRoles(reqVO); 237 return roleMapper.listRoles(reqVO);
237 } 238 }
238 239
@@ -249,7 +250,7 @@ public class RoleServiceImpl implements RoleService { @@ -249,7 +250,7 @@ public class RoleServiceImpl implements RoleService {
249 @VisibleForTesting 250 @VisibleForTesting
250 public void checkDuplicateRole(String name, String code, Long id) { 251 public void checkDuplicateRole(String name, String code, Long id) {
251 // 1. 该 name 名字被其它角色所使用 252 // 1. 该 name 名字被其它角色所使用
252 - SysRoleDO role = roleMapper.selectByName(name); 253 + RoleDO role = roleMapper.selectByName(name);
253 if (role != null && !role.getId().equals(id)) { 254 if (role != null && !role.getId().equals(id)) {
254 throw exception(ROLE_NAME_DUPLICATE, name); 255 throw exception(ROLE_NAME_DUPLICATE, name);
255 } 256 }
@@ -271,7 +272,7 @@ public class RoleServiceImpl implements RoleService { @@ -271,7 +272,7 @@ public class RoleServiceImpl implements RoleService {
271 */ 272 */
272 @VisibleForTesting 273 @VisibleForTesting
273 public void checkUpdateRole(Long id) { 274 public void checkUpdateRole(Long id) {
274 - SysRoleDO roleDO = roleMapper.selectById(id); 275 + RoleDO roleDO = roleMapper.selectById(id);
275 if (roleDO == null) { 276 if (roleDO == null) {
276 throw exception(ROLE_NOT_EXISTS); 277 throw exception(ROLE_NOT_EXISTS);
277 } 278 }
@@ -281,4 +282,23 @@ public class RoleServiceImpl implements RoleService { @@ -281,4 +282,23 @@ public class RoleServiceImpl implements RoleService {
281 } 282 }
282 } 283 }
283 284
  285 + @Override
  286 + public void validRoles(Collection<Long> ids) {
  287 + if (CollUtil.isEmpty(ids)) {
  288 + return;
  289 + }
  290 + // 获得角色信息
  291 + List<RoleDO> roles = roleMapper.selectBatchIds(ids);
  292 + Map<Long, RoleDO> roleMap = CollectionUtils.convertMap(roles, RoleDO::getId);
  293 + // 校验
  294 + ids.forEach(id -> {
  295 + RoleDO role = roleMap.get(id);
  296 + if (role == null) {
  297 + throw exception(ROLE_NOT_EXISTS);
  298 + }
  299 + if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) {
  300 + throw exception(ROLE_IS_DISABLE, role.getName());
  301 + }
  302 + });
  303 + }
284 } 304 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/SysPermissionCoreService.java deleted
1 -package cn.iocoder.yudao.module.system.service.permission;  
2 -  
3 -import java.util.Collection;  
4 -import java.util.Set;  
5 -/**  
6 - * 权限 Core Service 接口  
7 - *  
8 - * 提供用户-角色、角色-菜单、角色-部门的关联权限处理  
9 - *  
10 - * @author 芋道源码  
11 - */  
12 -public interface SysPermissionCoreService {  
13 - /**  
14 - * 获得拥有多个角色的用户编号集合  
15 - *  
16 - * @param roleIds 角色编号集合  
17 - * @return 用户编号集合  
18 - */  
19 - Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds);  
20 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/SysRoleCoreService.java deleted
1 -package cn.iocoder.yudao.module.system.service.permission;  
2 -  
3 -import java.util.Collection;  
4 -  
5 -/**  
6 - * 角色 Core Service 接口  
7 - *  
8 - * @author 芋道源码  
9 - */  
10 -public interface SysRoleCoreService {  
11 - /**  
12 - * 校验角色们是否有效。如下情况,视为无效:  
13 - * 1. 角色编号不存在  
14 - * 2. 角色被禁用  
15 - *  
16 - * @param ids 角色编号数组  
17 - */  
18 - void validRoles(Collection<Long> ids);  
19 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/impl/SysPermissionCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.system.service.permission.impl;  
2 -  
3 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;  
4 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleCoreMapper;  
5 -import cn.iocoder.yudao.module.system.service.permission.SysPermissionCoreService;  
6 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
7 -import org.springframework.stereotype.Service;  
8 -  
9 -import javax.annotation.Resource;  
10 -import java.util.Collection;  
11 -import java.util.Set;  
12 -/**  
13 - * 权限 Core Service 实现类  
14 - *  
15 - * @author 芋道源码  
16 - */  
17 -@Service  
18 -public class SysPermissionCoreServiceImpl implements SysPermissionCoreService {  
19 -  
20 - @Resource  
21 - private SysUserRoleCoreMapper userRoleCoreMapper;  
22 -  
23 - @Override  
24 - public Set<Long> getUserRoleIdListByRoleIds(Collection<Long> roleIds) {  
25 - return CollectionUtils.convertSet(userRoleCoreMapper.selectListByRoleIds(roleIds),  
26 - SysUserRoleDO::getRoleId);  
27 - }  
28 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/permission/impl/SysRoleCoreServiceImpl.java deleted
1 -package cn.iocoder.yudao.module.system.service.permission.impl;  
2 -  
3 -import cn.hutool.core.collection.CollUtil;  
4 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;  
5 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleCoreMapper;  
6 -import cn.iocoder.yudao.module.system.service.permission.SysRoleCoreService;  
7 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
8 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
9 -import org.springframework.stereotype.Service;  
10 -  
11 -import javax.annotation.Resource;  
12 -import java.util.Collection;  
13 -import java.util.List;  
14 -import java.util.Map;  
15 -  
16 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.ROLE_IS_DISABLE;  
17 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.ROLE_NOT_EXISTS;  
18 -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;  
19 -  
20 -/**  
21 - * 角色 Core Service 实现类  
22 - *  
23 - * @author 芋道源码  
24 - */  
25 -@Service  
26 -public class SysRoleCoreServiceImpl implements SysRoleCoreService {  
27 -  
28 - @Resource  
29 - private SysRoleCoreMapper sysRoleCoreMapper;  
30 -  
31 - @Override  
32 - public void validRoles(Collection<Long> ids) {  
33 - if (CollUtil.isEmpty(ids)) {  
34 - return;  
35 - }  
36 - // 获得角色信息  
37 - List<SysRoleDO> roles = sysRoleCoreMapper.selectBatchIds(ids);  
38 - Map<Long, SysRoleDO> roleMap = CollectionUtils.convertMap(roles, SysRoleDO::getId);  
39 - // 校验  
40 - ids.forEach(id -> {  
41 - SysRoleDO role = roleMap.get(id);  
42 - if (role == null) {  
43 - throw exception(ROLE_NOT_EXISTS);  
44 - }  
45 - if (!CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())) {  
46 - throw exception(ROLE_IS_DISABLE, role.getName());  
47 - }  
48 - });  
49 - }  
50 -}  
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceImpl.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel @@ -5,7 +5,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannel
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO;
7 import cn.iocoder.yudao.module.system.convert.sms.SmsChannelConvert; 7 import cn.iocoder.yudao.module.system.convert.sms.SmsChannelConvert;
8 -import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsChannelMapper; 8 +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper;
9 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 9 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
10 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
11 import cn.iocoder.yudao.framework.common.pojo.PageResult; 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -52,7 +52,7 @@ public class SmsChannelServiceImpl implements SmsChannelService { @@ -52,7 +52,7 @@ public class SmsChannelServiceImpl implements SmsChannelService {
52 private SmsClientFactory smsClientFactory; 52 private SmsClientFactory smsClientFactory;
53 53
54 @Resource 54 @Resource
55 - private SysSmsChannelMapper smsChannelMapper; 55 + private SmsChannelMapper smsChannelMapper;
56 56
57 @Resource 57 @Resource
58 private SmsTemplateService smsTemplateService; 58 private SmsTemplateService smsTemplateService;
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/sms/SysSmsCodeService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeService.java
1 -package cn.iocoder.yudao.module.member.service.sms; 1 +package cn.iocoder.yudao.module.system.service.sms;
2 2
3 import cn.iocoder.yudao.framework.common.exception.ServiceException; 3 import cn.iocoder.yudao.framework.common.exception.ServiceException;
4 import cn.iocoder.yudao.framework.common.validation.Mobile; 4 import cn.iocoder.yudao.framework.common.validation.Mobile;
5 -import cn.iocoder.yudao.module.member.dal.dataobject.sms.SysSmsCodeDO;  
6 -import cn.iocoder.yudao.module.member.enums.sms.SysSmsSceneEnum; 5 +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
7 6
8 /** 7 /**
9 * 短信验证码 Service 接口 8 * 短信验证码 Service 接口
10 * 9 *
11 * @author 芋道源码 10 * @author 芋道源码
12 */ 11 */
13 -public interface SysSmsCodeService { 12 +public interface SmsCodeService {
14 13
15 /** 14 /**
16 * 创建短信验证码,并进行发送 15 * 创建短信验证码,并进行发送
17 * 16 *
18 * @param mobile 手机号 17 * @param mobile 手机号
19 - * @param scene 发送场景 {@link SysSmsSceneEnum} 18 + * @param scene 发送场景 {@link SmsSceneEnum}
20 * @param createIp 发送 IP 19 * @param createIp 发送 IP
21 */ 20 */
22 void sendSmsCode(@Mobile String mobile, Integer scene, String createIp); 21 void sendSmsCode(@Mobile String mobile, Integer scene, String createIp);
@@ -27,25 +26,19 @@ public interface SysSmsCodeService { @@ -27,25 +26,19 @@ public interface SysSmsCodeService {
27 * 如果错误,则抛出 {@link ServiceException} 异常 26 * 如果错误,则抛出 {@link ServiceException} 异常
28 * 27 *
29 * @param mobile 手机号 28 * @param mobile 手机号
30 - * @param scene 发送场景 29 + * @param scene 发送场景 {@link SmsSceneEnum}
31 * @param code 验证码 30 * @param code 验证码
32 * @param usedIp 使用 IP 31 * @param usedIp 使用 IP
33 */ 32 */
34 void useSmsCode(@Mobile String mobile, Integer scene, String code, String usedIp); 33 void useSmsCode(@Mobile String mobile, Integer scene, String code, String usedIp);
35 34
36 /** 35 /**
37 - * 根据用户id发送验证码  
38 - *  
39 - * @param userId 用户id  
40 - */  
41 - void sendSmsCodeLogin(Long userId);  
42 -  
43 - /**  
44 * 检查验证码是否有效 36 * 检查验证码是否有效
  37 + *
45 * @param mobile 手机 38 * @param mobile 手机
46 * @param code 验证码 39 * @param code 验证码
47 * @param scene 使用场景 40 * @param scene 使用场景
48 - * @return 验证码记录  
49 */ 41 */
50 - SysSmsCodeDO checkCodeIsExpired(String mobile, String code, Integer scene); 42 + void checkSmsCode(String mobile, String code, Integer scene);
  43 +
51 } 44 }
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/sms/SysSmsCodeServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsCodeServiceImpl.java
1 -package cn.iocoder.yudao.module.member.service.sms; 1 +package cn.iocoder.yudao.module.system.service.sms;
2 2
  3 +import cn.hutool.core.lang.Assert;
3 import cn.hutool.core.map.MapUtil; 4 import cn.hutool.core.map.MapUtil;
4 -import cn.iocoder.yudao.module.system.service.sms.SysSmsCoreService;  
5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil; 5 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
6 -import cn.iocoder.yudao.module.member.dal.dataobject.sms.SysSmsCodeDO;  
7 -import cn.iocoder.yudao.module.member.dal.dataobject.user.UserDO;  
8 -import cn.iocoder.yudao.module.member.dal.mysql.sms.SysSmsCodeMapper;  
9 -import cn.iocoder.yudao.module.member.enums.sms.SysSmsSceneEnum;  
10 -import cn.iocoder.yudao.module.member.framework.sms.SmsCodeProperties;  
11 -import cn.iocoder.yudao.module.member.service.user.UserService; 6 +import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SmsCodeDO;
  8 +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsCodeMapper;
  9 +import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
  10 +import cn.iocoder.yudao.module.system.framework.sms.SmsCodeProperties;
  11 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
13 import org.springframework.validation.annotation.Validated; 13 import org.springframework.validation.annotation.Validated;
14 14
@@ -16,8 +16,7 @@ import javax.annotation.Resource; @@ -16,8 +16,7 @@ import javax.annotation.Resource;
16 import java.util.Date; 16 import java.util.Date;
17 17
18 import static cn.hutool.core.util.RandomUtil.randomInt; 18 import static cn.hutool.core.util.RandomUtil.randomInt;
19 -import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;  
20 -import static cn.iocoder.yudao.module.member.enums.SysErrorCodeConstants.*; 19 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
21 20
22 /** 21 /**
23 * 短信验证码 Service 实现类 22 * 短信验证码 Service 实现类
@@ -26,59 +25,43 @@ import static cn.iocoder.yudao.module.member.enums.SysErrorCodeConstants.*; @@ -26,59 +25,43 @@ import static cn.iocoder.yudao.module.member.enums.SysErrorCodeConstants.*;
26 */ 25 */
27 @Service 26 @Service
28 @Validated 27 @Validated
29 -public class SysSmsCodeServiceImpl implements SysSmsCodeService { 28 +public class SmsCodeServiceImpl implements SmsCodeService {
30 29
31 @Resource 30 @Resource
32 private SmsCodeProperties smsCodeProperties; 31 private SmsCodeProperties smsCodeProperties;
33 32
34 @Resource 33 @Resource
35 - private SysSmsCodeMapper smsCodeMapper; 34 + private SmsCodeMapper smsCodeMapper;
36 35
37 @Resource 36 @Resource
38 - private UserService userService; 37 + private AdminUserService adminUserService;
  38 + @Resource
  39 + private MemberUserApi memberUserApi;
39 40
40 @Resource 41 @Resource
41 - private SysSmsCoreService smsCoreService; 42 + private SmsSendService smsSendService;
42 43
43 @Override 44 @Override
44 public void sendSmsCode(String mobile, Integer scene, String createIp) { 45 public void sendSmsCode(String mobile, Integer scene, String createIp) {
  46 + SmsSceneEnum sceneEnum = SmsSceneEnum.getCodeByScene(scene);
  47 + Assert.notNull(sceneEnum, "验证码场景({}) 查找不到配置", scene);
45 // 创建验证码 48 // 创建验证码
46 - String code = this.createSmsCode(mobile, scene, createIp);  
47 -  
48 - // 获取发送模板  
49 - String codeTemplate = SysSmsSceneEnum.getCodeByScene(scene);  
50 -  
51 - // 如果是更换手机号发送验证码,则需要检测手机号是否被注册  
52 - if (SysSmsSceneEnum.CHANGE_MOBILE_BY_SMS.getScene().equals(scene)){  
53 - this.checkMobileIsRegister(mobile,scene);  
54 - }  
55 - 49 + String code = createSmsCode(mobile, scene, createIp);
56 // 发送验证码 50 // 发送验证码
57 - smsCoreService.sendSingleSmsToMember(mobile, null, codeTemplate,  
58 - MapUtil.of("code", code));  
59 - }  
60 -  
61 - public void checkMobileIsRegister(String mobile, Integer scene) {  
62 - // 检测手机号是否已被使用  
63 - UserDO user = userService.getUserByMobile(mobile);  
64 - if (user != null) {  
65 - throw ServiceExceptionUtil.exception(USER_SMS_CODE_IS_EXISTS);  
66 - }  
67 -  
68 - // 发送短信  
69 - this.sendSmsCode(mobile,scene,getClientIP()); 51 + smsSendService.sendSingleSms(mobile, null, null,
  52 + sceneEnum.getTemplateCode(), MapUtil.of("code", code));
70 } 53 }
71 54
72 private String createSmsCode(String mobile, Integer scene, String ip) { 55 private String createSmsCode(String mobile, Integer scene, String ip) {
73 // 校验是否可以发送验证码,不用筛选场景 56 // 校验是否可以发送验证码,不用筛选场景
74 - SysSmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, null,null); 57 + SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile, null,null);
75 if (lastSmsCode != null) { 58 if (lastSmsCode != null) {
76 if (lastSmsCode.getTodayIndex() >= smsCodeProperties.getSendMaximumQuantityPerDay()) { // 超过当天发送的上限。 59 if (lastSmsCode.getTodayIndex() >= smsCodeProperties.getSendMaximumQuantityPerDay()) { // 超过当天发送的上限。
77 - throw ServiceExceptionUtil.exception(USER_SMS_CODE_EXCEED_SEND_MAXIMUM_QUANTITY_PER_DAY); 60 + throw ServiceExceptionUtil.exception(SMS_CODE_EXCEED_SEND_MAXIMUM_QUANTITY_PER_DAY);
78 } 61 }
79 if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime() 62 if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime()
80 < smsCodeProperties.getSendFrequency().toMillis()) { // 发送过于频繁 63 < smsCodeProperties.getSendFrequency().toMillis()) { // 发送过于频繁
81 - throw ServiceExceptionUtil.exception(USER_SMS_CODE_SEND_TOO_FAST); 64 + throw ServiceExceptionUtil.exception(SMS_CODE_SEND_TOO_FAST);
82 } 65 }
83 // TODO 芋艿:提升,每个 IP 每天可发送数量 66 // TODO 芋艿:提升,每个 IP 每天可发送数量
84 // TODO 芋艿:提升,每个 IP 每小时可发送数量 67 // TODO 芋艿:提升,每个 IP 每小时可发送数量
@@ -86,7 +69,7 @@ public class SysSmsCodeServiceImpl implements SysSmsCodeService { @@ -86,7 +69,7 @@ public class SysSmsCodeServiceImpl implements SysSmsCodeService {
86 69
87 // 创建验证码记录 70 // 创建验证码记录
88 String code = String.valueOf(randomInt(smsCodeProperties.getBeginCode(), smsCodeProperties.getEndCode() + 1)); 71 String code = String.valueOf(randomInt(smsCodeProperties.getBeginCode(), smsCodeProperties.getEndCode() + 1));
89 - SysSmsCodeDO newSmsCode = SysSmsCodeDO.builder().mobile(mobile).code(code) 72 + SmsCodeDO newSmsCode = SmsCodeDO.builder().mobile(mobile).code(code)
90 .scene(scene).todayIndex(lastSmsCode != null ? lastSmsCode.getTodayIndex() + 1 : 1) 73 .scene(scene).todayIndex(lastSmsCode != null ? lastSmsCode.getTodayIndex() + 1 : 1)
91 .createIp(ip).used(false).build(); 74 .createIp(ip).used(false).build();
92 smsCodeMapper.insert(newSmsCode); 75 smsCodeMapper.insert(newSmsCode);
@@ -96,40 +79,32 @@ public class SysSmsCodeServiceImpl implements SysSmsCodeService { @@ -96,40 +79,32 @@ public class SysSmsCodeServiceImpl implements SysSmsCodeService {
96 @Override 79 @Override
97 public void useSmsCode(String mobile, Integer scene, String code, String usedIp) { 80 public void useSmsCode(String mobile, Integer scene, String code, String usedIp) {
98 // 检测验证码是否有效 81 // 检测验证码是否有效
99 - SysSmsCodeDO lastSmsCode = this.checkCodeIsExpired(mobile, code, scene);  
100 -  
101 - // 判断验证码是否已被使用  
102 - if (Boolean.TRUE.equals(lastSmsCode.getUsed())) {  
103 - throw ServiceExceptionUtil.exception(USER_SMS_CODE_USED);  
104 - }  
105 - 82 + SmsCodeDO lastSmsCode = this.checkSmsCode0(mobile, code, scene);
106 // 使用验证码 83 // 使用验证码
107 - smsCodeMapper.updateById(SysSmsCodeDO.builder().id(lastSmsCode.getId()) 84 + smsCodeMapper.updateById(SmsCodeDO.builder().id(lastSmsCode.getId())
108 .used(true).usedTime(new Date()).usedIp(usedIp).build()); 85 .used(true).usedTime(new Date()).usedIp(usedIp).build());
109 } 86 }
110 87
111 @Override 88 @Override
112 - public void sendSmsCodeLogin(Long userId) {  
113 - UserDO user = userService.getUser(userId);  
114 - if (user == null){  
115 - throw ServiceExceptionUtil.exception(USER_NOT_EXISTS);  
116 - }  
117 - // 发送验证码  
118 - this.sendSmsCode(user.getMobile(),SysSmsSceneEnum.CHANGE_MOBILE_BY_SMS.getScene(), getClientIP()); 89 + public void checkSmsCode(String mobile, String code, Integer scene) {
  90 + checkSmsCode0(mobile, code, scene);
119 } 91 }
120 92
121 - @Override  
122 - public SysSmsCodeDO checkCodeIsExpired(String mobile, String code, Integer scene) { 93 + public SmsCodeDO checkSmsCode0(String mobile, String code, Integer scene) {
123 // 校验验证码 94 // 校验验证码
124 - SysSmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile,code,scene);  
125 - 95 + SmsCodeDO lastSmsCode = smsCodeMapper.selectLastByMobile(mobile,code,scene);
126 // 若验证码不存在,抛出异常 96 // 若验证码不存在,抛出异常
127 if (lastSmsCode == null) { 97 if (lastSmsCode == null) {
128 - throw ServiceExceptionUtil.exception(USER_SMS_CODE_NOT_FOUND); 98 + throw ServiceExceptionUtil.exception(SMS_CODE_NOT_FOUND);
129 } 99 }
  100 + // 超过时间
130 if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime() 101 if (System.currentTimeMillis() - lastSmsCode.getCreateTime().getTime()
131 >= smsCodeProperties.getExpireTimes().toMillis()) { // 验证码已过期 102 >= smsCodeProperties.getExpireTimes().toMillis()) { // 验证码已过期
132 - throw ServiceExceptionUtil.exception(USER_SMS_CODE_EXPIRED); 103 + throw ServiceExceptionUtil.exception(SMS_CODE_EXPIRED);
  104 + }
  105 + // 判断验证码是否已被使用
  106 + if (Boolean.TRUE.equals(lastSmsCode.getUsed())) {
  107 + throw ServiceExceptionUtil.exception(SMS_CODE_USED);
133 } 108 }
134 return lastSmsCode; 109 return lastSmsCode;
135 } 110 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceImpl.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; @@ -4,7 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO;
6 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
7 -import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsLogMapper; 7 +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsLogMapper;
8 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO; 8 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
9 import cn.iocoder.yudao.framework.common.pojo.PageResult; 9 import cn.iocoder.yudao.framework.common.pojo.PageResult;
10 import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum; 10 import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum;
@@ -28,7 +28,7 @@ import java.util.Objects; @@ -28,7 +28,7 @@ import java.util.Objects;
28 public class SmsLogServiceImpl implements SmsLogService { 28 public class SmsLogServiceImpl implements SmsLogService {
29 29
30 @Resource 30 @Resource
31 - private SysSmsLogMapper smsLogMapper; 31 + private SmsLogMapper smsLogMapper;
32 32
33 @Override 33 @Override
34 public Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend, 34 public Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend,
@@ -41,7 +41,8 @@ public class SmsLogServiceImpl implements SmsLogService { @@ -41,7 +41,8 @@ public class SmsLogServiceImpl implements SmsLogService {
41 logBuilder.mobile(mobile).userId(userId).userType(userType); 41 logBuilder.mobile(mobile).userId(userId).userType(userType);
42 // 设置模板相关字段 42 // 设置模板相关字段
43 logBuilder.templateId(template.getId()).templateCode(template.getCode()).templateType(template.getType()); 43 logBuilder.templateId(template.getId()).templateCode(template.getCode()).templateType(template.getType());
44 - logBuilder.templateContent(templateContent).templateParams(templateParams).apiTemplateId(template.getApiTemplateId()); 44 + logBuilder.templateContent(templateContent).templateParams(templateParams)
  45 + .apiTemplateId(template.getApiTemplateId());
45 // 设置渠道相关字段 46 // 设置渠道相关字段
46 logBuilder.channelId(template.getChannelId()).channelCode(template.getChannelCode()); 47 logBuilder.channelId(template.getChannelId()).channelCode(template.getChannelCode());
47 // 设置接收相关字段 48 // 设置接收相关字段
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SysSmsSendService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendService.java
@@ -6,14 +6,14 @@ import java.util.List; @@ -6,14 +6,14 @@ import java.util.List;
6 import java.util.Map; 6 import java.util.Map;
7 7
8 /** 8 /**
9 - * 短信 Service 发送接口 9 + * 短信发送 Service 接口
10 * 10 *
11 * @author 芋道源码 11 * @author 芋道源码
12 */ 12 */
13 -public interface SysSmsSendService { 13 +public interface SmsSendService {
14 14
15 /** 15 /**
16 - * 发送单条短信给后台用户 16 + * 发送单条短信给管理后台的用户
17 * 17 *
18 * 在 mobile 为空时,使用 userId 加载对应管理员的手机号 18 * 在 mobile 为空时,使用 userId 加载对应管理员的手机号
19 * 19 *
@@ -27,7 +27,7 @@ public interface SysSmsSendService { @@ -27,7 +27,7 @@ public interface SysSmsSendService {
27 String templateCode, Map<String, Object> templateParams); 27 String templateCode, Map<String, Object> templateParams);
28 28
29 /** 29 /**
30 - * 发送单条短信给前台用户 30 + * 发送单条短信给用户 APP 的用户
31 * 31 *
32 * 在 mobile 为空时,使用 userId 加载对应会员的手机号 32 * 在 mobile 为空时,使用 userId 加载对应会员的手机号
33 * 33 *
@@ -40,12 +40,30 @@ public interface SysSmsSendService { @@ -40,12 +40,30 @@ public interface SysSmsSendService {
40 Long sendSingleSmsToMember(String mobile, Long userId, 40 Long sendSingleSmsToMember(String mobile, Long userId,
41 String templateCode, Map<String, Object> templateParams); 41 String templateCode, Map<String, Object> templateParams);
42 42
  43 + /**
  44 + * 发送单条短信给用户
  45 + *
  46 + * @param mobile 手机号
  47 + * @param userId 用户编号
  48 + * @param userType 用户类型
  49 + * @param templateCode 短信模板编号
  50 + * @param templateParams 短信模板参数
  51 + * @return 发送日志编号
  52 + */
43 Long sendSingleSms(String mobile, Long userId, Integer userType, 53 Long sendSingleSms(String mobile, Long userId, Integer userType,
44 String templateCode, Map<String, Object> templateParams); 54 String templateCode, Map<String, Object> templateParams);
45 55
46 - void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType,  
47 - String templateCode, Map<String, Object> templateParams); 56 + default void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType,
  57 + String templateCode, Map<String, Object> templateParams) {
  58 + throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!");
  59 + }
48 60
  61 + /**
  62 + * 执行真正的短信发送
  63 + * 注意,该方法仅仅提供给 MQ Consumer 使用
  64 + *
  65 + * @param message 短信
  66 + */
49 void doSendSms(SmsSendMessage message); 67 void doSendSms(SmsSendMessage message);
50 68
51 /** 69 /**
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SysSmsSendServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsSendServiceImpl.java
@@ -2,9 +2,6 @@ package cn.iocoder.yudao.module.system.service.sms; @@ -2,9 +2,6 @@ package cn.iocoder.yudao.module.system.service.sms;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.hutool.core.util.StrUtil; 4 import cn.hutool.core.util.StrUtil;
5 -import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;  
6 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
7 -import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;  
8 import cn.iocoder.yudao.framework.common.core.KeyValue; 5 import cn.iocoder.yudao.framework.common.core.KeyValue;
9 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 6 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
10 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; 7 import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
@@ -13,10 +10,14 @@ import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory; @@ -13,10 +10,14 @@ import cn.iocoder.yudao.framework.sms.core.client.SmsClientFactory;
13 import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult; 10 import cn.iocoder.yudao.framework.sms.core.client.SmsCommonResult;
14 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsReceiveRespDTO; 11 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsReceiveRespDTO;
15 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsSendRespDTO; 12 import cn.iocoder.yudao.framework.sms.core.client.dto.SmsSendRespDTO;
  13 +import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
  14 +import cn.iocoder.yudao.module.member.api.user.dto.UserRespDTO;
  15 +import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
  16 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
  17 +import cn.iocoder.yudao.module.system.mq.message.sms.SmsSendMessage;
16 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 18 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
17 -import cn.iocoder.yudao.module.system.service.user.UserService; 19 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
18 import com.google.common.annotations.VisibleForTesting; 20 import com.google.common.annotations.VisibleForTesting;
19 -import org.springframework.beans.factory.annotation.Autowired;  
20 import org.springframework.stereotype.Service; 21 import org.springframework.stereotype.Service;
21 import org.springframework.util.Assert; 22 import org.springframework.util.Assert;
22 23
@@ -25,20 +26,22 @@ import java.util.List; @@ -25,20 +26,22 @@ import java.util.List;
25 import java.util.Map; 26 import java.util.Map;
26 import java.util.stream.Collectors; 27 import java.util.stream.Collectors;
27 28
28 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.*;  
29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
  30 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
30 31
31 /** 32 /**
32 - * 短信 Service 发送的实现 33 + * 短信发送 Service 发送的实现
33 * 34 *
34 * @author 芋道源码 35 * @author 芋道源码
35 */ 36 */
36 @Service 37 @Service
37 -public class SysSmsSendServiceImpl implements SysSmsSendService { 38 +public class SmsSendServiceImpl implements SmsSendService {
  39 +
  40 + @Resource
  41 + private AdminUserService adminUserService;
  42 + @Resource
  43 + private MemberUserApi memberUserApi;
38 44
39 - @Autowired  
40 - @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") // UserService 存在重名  
41 - private UserService userService;  
42 @Resource 45 @Resource
43 private SmsTemplateService smsTemplateService; 46 private SmsTemplateService smsTemplateService;
44 @Resource 47 @Resource
@@ -54,7 +57,7 @@ public class SysSmsSendServiceImpl implements SysSmsSendService { @@ -54,7 +57,7 @@ public class SysSmsSendServiceImpl implements SysSmsSendService {
54 public Long sendSingleSmsToAdmin(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) { 57 public Long sendSingleSmsToAdmin(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) {
55 // 如果 mobile 为空,则加载用户编号对应的手机号 58 // 如果 mobile 为空,则加载用户编号对应的手机号
56 if (StrUtil.isEmpty(mobile)) { 59 if (StrUtil.isEmpty(mobile)) {
57 - UserDO user = userService.getUser(userId); 60 + AdminUserDO user = adminUserService.getUser(userId);
58 if (user != null) { 61 if (user != null) {
59 mobile = user.getMobile(); 62 mobile = user.getMobile();
60 } 63 }
@@ -67,11 +70,10 @@ public class SysSmsSendServiceImpl implements SysSmsSendService { @@ -67,11 +70,10 @@ public class SysSmsSendServiceImpl implements SysSmsSendService {
67 public Long sendSingleSmsToMember(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) { 70 public Long sendSingleSmsToMember(String mobile, Long userId, String templateCode, Map<String, Object> templateParams) {
68 // 如果 mobile 为空,则加载用户编号对应的手机号 71 // 如果 mobile 为空,则加载用户编号对应的手机号
69 if (StrUtil.isEmpty(mobile)) { 72 if (StrUtil.isEmpty(mobile)) {
70 -// MbrUserDO user = mbrUserCoreService.getUser(userId);  
71 -// if (user != null) {  
72 -// mobile = user.getMobile();  
73 -// }  
74 - // TODO 芋艿:重构 73 + UserRespDTO user = memberUserApi.getUser(userId);
  74 + if (user != null) {
  75 + mobile = user.getMobile();
  76 + }
75 } 77 }
76 // 执行发送 78 // 执行发送
77 return this.sendSingleSms(mobile, userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams); 79 return this.sendSingleSms(mobile, userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams);
@@ -87,8 +89,8 @@ public class SysSmsSendServiceImpl implements SysSmsSendService { @@ -87,8 +89,8 @@ public class SysSmsSendServiceImpl implements SysSmsSendService {
87 // 构建有序的模板参数。为什么放在这个位置,是提前保证模板参数的正确性,而不是到了插入发送日志 89 // 构建有序的模板参数。为什么放在这个位置,是提前保证模板参数的正确性,而不是到了插入发送日志
88 List<KeyValue<String, Object>> newTemplateParams = this.buildTemplateParams(template, templateParams); 90 List<KeyValue<String, Object>> newTemplateParams = this.buildTemplateParams(template, templateParams);
89 91
90 - // 创建发送日志  
91 - Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus()); // 如果模板被禁用,则不发送短信,只记录日志 92 + // 创建发送日志。如果模板被禁用,则不发送短信,只记录日志
  93 + Boolean isSend = CommonStatusEnum.ENABLE.getStatus().equals(template.getStatus());
92 String content = smsTemplateService.formatSmsTemplateContent(template.getContent(), templateParams); 94 String content = smsTemplateService.formatSmsTemplateContent(template.getContent(), templateParams);
93 Long sendLogId = smsLogService.createSmsLog(mobile, userId, userType, isSend, template, content, templateParams); 95 Long sendLogId = smsLogService.createSmsLog(mobile, userId, userType, isSend, template, content, templateParams);
94 96
@@ -100,11 +102,6 @@ public class SysSmsSendServiceImpl implements SysSmsSendService { @@ -100,11 +102,6 @@ public class SysSmsSendServiceImpl implements SysSmsSendService {
100 return sendLogId; 102 return sendLogId;
101 } 103 }
102 104
103 - @Override  
104 - public void sendBatchSms(List<String> mobiles, List<Long> userIds, Integer userType,  
105 - String templateCode, Map<String, Object> templateParams) {  
106 - throw new UnsupportedOperationException("暂时不支持该操作,感兴趣可以实现该功能哟!");  
107 - }  
108 105
109 @VisibleForTesting 106 @VisibleForTesting
110 public SysSmsTemplateDO checkSmsTemplateValid(String templateCode) { 107 public SysSmsTemplateDO checkSmsTemplateValid(String templateCode) {
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceImpl.java
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla @@ -9,7 +9,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla
9 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO;
10 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO;
11 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert; 11 import cn.iocoder.yudao.module.system.convert.sms.SmsTemplateConvert;
12 -import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsTemplateMapper; 12 +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsTemplateMapper;
13 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 13 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
14 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO; 14 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
15 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; 15 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
@@ -56,7 +56,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService { @@ -56,7 +56,7 @@ public class SmsTemplateServiceImpl implements SmsTemplateService {
56 private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}"); 56 private static final Pattern PATTERN_PARAMS = Pattern.compile("\\{(.*?)}");
57 57
58 @Resource 58 @Resource
59 - private SysSmsTemplateMapper smsTemplateMapper; 59 + private SmsTemplateMapper smsTemplateMapper;
60 60
61 @Resource 61 @Resource
62 private SmsChannelService smsChannelService; 62 private SmsChannelService smsChannelService;
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserService.java
1 package cn.iocoder.yudao.module.system.service.social; 1 package cn.iocoder.yudao.module.system.service.social;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
  4 +import cn.iocoder.yudao.framework.common.exception.ServiceException;
4 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO; 5 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
5 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; 6 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
6 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
7 -import cn.iocoder.yudao.framework.common.exception.ServiceException;  
8 import me.zhyd.oauth.model.AuthUser; 7 import me.zhyd.oauth.model.AuthUser;
9 8
10 import javax.validation.constraints.NotNull; 9 import javax.validation.constraints.NotNull;
@@ -38,6 +37,12 @@ public interface SocialUserService { @@ -38,6 +37,12 @@ public interface SocialUserService {
38 @NotNull 37 @NotNull
39 AuthUser getAuthUser(Integer type, String code, String state); 38 AuthUser getAuthUser(Integer type, String code, String state);
40 39
  40 + /**
  41 + * 获得社交用户的 unionId 编号
  42 + *
  43 + * @param authUser 社交用户
  44 + * @return unionId 编号
  45 + */
41 default String getAuthUserUnionId(AuthUser authUser) { 46 default String getAuthUserUnionId(AuthUser authUser) {
42 return StrUtil.blankToDefault(authUser.getToken().getUnionId(), authUser.getUuid()); 47 return StrUtil.blankToDefault(authUser.getToken().getUnionId(), authUser.getUuid());
43 } 48 }
@@ -48,38 +53,37 @@ public interface SocialUserService { @@ -48,38 +53,37 @@ public interface SocialUserService {
48 * 53 *
49 * @param type 社交平台的类型 {@link SocialTypeEnum} 54 * @param type 社交平台的类型 {@link SocialTypeEnum}
50 * @param unionId 社交平台的 unionId 55 * @param unionId 社交平台的 unionId
  56 + * @param userType 全局用户类型
51 * @return 社交用户列表 57 * @return 社交用户列表
52 - * @param userTypeEnum 全局用户类型  
53 */ 58 */
54 - List<SysSocialUserDO> getAllSocialUserList(Integer type, String unionId, UserTypeEnum userTypeEnum); 59 + List<SysSocialUserDO> getAllSocialUserList(Integer type, String unionId, Integer userType);
55 60
56 /** 61 /**
57 * 获得指定用户的社交用户列表 62 * 获得指定用户的社交用户列表
58 * 63 *
59 * @param userId 用户编号 64 * @param userId 用户编号
  65 + * @param userType 用户类型
60 * @return 社交用户列表 66 * @return 社交用户列表
61 - * @param userTypeEnum 全局用户类型  
62 */ 67 */
63 - List<SysSocialUserDO> getSocialUserList(Long userId, UserTypeEnum userTypeEnum); 68 + List<SysSocialUserDO> getSocialUserList(Long userId, Integer userType);
64 69
65 /** 70 /**
66 * 绑定社交用户 71 * 绑定社交用户
67 - *  
68 - * @param userId 用户编号 72 + * @param userId 用户编号
  73 + * @param userType 用户类型
69 * @param type 社交平台的类型 {@link SocialTypeEnum} 74 * @param type 社交平台的类型 {@link SocialTypeEnum}
70 * @param authUser 授权用户 75 * @param authUser 授权用户
71 - * @param userTypeEnum 全局用户类型  
72 */ 76 */
73 - void bindSocialUser(Long userId, Integer type, AuthUser authUser, UserTypeEnum userTypeEnum); 77 + void bindSocialUser(Long userId, Integer userType, Integer type, AuthUser authUser);
74 78
75 /** 79 /**
76 * 取消绑定社交用户 80 * 取消绑定社交用户
77 * 81 *
78 * @param userId 用户编号 82 * @param userId 用户编号
  83 + * @param userType 全局用户类型
79 * @param type 社交平台的类型 {@link SocialTypeEnum} 84 * @param type 社交平台的类型 {@link SocialTypeEnum}
80 * @param unionId 社交平台的 unionId 85 * @param unionId 社交平台的 unionId
81 - * @param userTypeEnum 全局用户类型  
82 */ 86 */
83 - void unbindSocialUser(Long userId, Integer type, String unionId, UserTypeEnum userTypeEnum); 87 + void unbindSocialUser(Long userId, Integer userType, Integer type, String unionId);
84 88
85 } 89 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceImpl.java
1 package cn.iocoder.yudao.module.system.service.social; 1 package cn.iocoder.yudao.module.system.service.social;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  5 +import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
4 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.social.SysSocialUserDO;
5 import cn.iocoder.yudao.module.system.dal.mysql.social.SysSocialUserMapper; 7 import cn.iocoder.yudao.module.system.dal.mysql.social.SysSocialUserMapper;
6 import cn.iocoder.yudao.module.system.dal.redis.social.SocialAuthUserRedisDAO; 8 import cn.iocoder.yudao.module.system.dal.redis.social.SocialAuthUserRedisDAO;
7 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum; 9 import cn.iocoder.yudao.module.system.enums.social.SocialTypeEnum;
8 -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;  
9 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
10 -import cn.iocoder.yudao.framework.common.util.http.HttpUtils;  
11 import com.google.common.annotations.VisibleForTesting; 10 import com.google.common.annotations.VisibleForTesting;
12 import com.xkcoding.justauth.AuthRequestFactory; 11 import com.xkcoding.justauth.AuthRequestFactory;
13 import lombok.extern.slf4j.Slf4j; 12 import lombok.extern.slf4j.Slf4j;
@@ -24,10 +23,10 @@ import javax.annotation.Resource; @@ -24,10 +23,10 @@ import javax.annotation.Resource;
24 import java.util.List; 23 import java.util.List;
25 import java.util.Objects; 24 import java.util.Objects;
26 25
27 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.SOCIAL_AUTH_FAILURE;  
28 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.SOCIAL_UNBIND_NOT_SELF;  
29 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 26 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
30 import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString; 27 import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
  28 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SOCIAL_USER_AUTH_FAILURE;
  29 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.SOCIAL_USER_UNBIND_NOT_SELF;
31 30
32 /** 31 /**
33 * 社交用户 Service 实现类 32 * 社交用户 Service 实现类
@@ -74,25 +73,25 @@ public class SocialUserServiceImpl implements SocialUserService { @@ -74,25 +73,25 @@ public class SocialUserServiceImpl implements SocialUserService {
74 } 73 }
75 74
76 @Override 75 @Override
77 - public List<SysSocialUserDO> getAllSocialUserList(Integer type, String unionId,UserTypeEnum userTypeEnum) { 76 + public List<SysSocialUserDO> getAllSocialUserList(Integer type, String unionId, Integer userType) {
78 List<Integer> types = SocialTypeEnum.getRelationTypes(type); 77 List<Integer> types = SocialTypeEnum.getRelationTypes(type);
79 - return socialUserMapper.selectListByTypeAndUnionId(userTypeEnum.getValue(), types, unionId); 78 + return socialUserMapper.selectListByTypeAndUnionId(userType, types, unionId);
80 } 79 }
81 80
82 @Override 81 @Override
83 - public List<SysSocialUserDO> getSocialUserList(Long userId,UserTypeEnum userTypeEnum) {  
84 - return socialUserMapper.selectListByUserId(userTypeEnum.getValue(), userId); 82 + public List<SysSocialUserDO> getSocialUserList(Long userId, Integer userType) {
  83 + return socialUserMapper.selectListByUserId(userType, userId);
85 } 84 }
86 85
87 @Override 86 @Override
88 - @Transactional  
89 - public void bindSocialUser(Long userId, Integer type, AuthUser authUser, UserTypeEnum userTypeEnum) { 87 + @Transactional(rollbackFor = Exception.class)
  88 + public void bindSocialUser(Long userId, Integer userType, Integer type, AuthUser authUser) {
90 // 获得 unionId 对应的 SysSocialUserDO 列表 89 // 获得 unionId 对应的 SysSocialUserDO 列表
91 String unionId = getAuthUserUnionId(authUser); 90 String unionId = getAuthUserUnionId(authUser);
92 - List<SysSocialUserDO> socialUsers = this.getAllSocialUserList(type, unionId, userTypeEnum); 91 + List<SysSocialUserDO> socialUsers = this.getAllSocialUserList(type, unionId, userType);
93 92
94 // 逻辑一:如果 userId 之前绑定过该 type 的其它账号,需要进行解绑 93 // 逻辑一:如果 userId 之前绑定过该 type 的其它账号,需要进行解绑
95 - this.unbindOldSocialUser(userId, type, unionId, userTypeEnum); 94 + this.unbindOldSocialUser(userId, userType, type, unionId);
96 95
97 // 逻辑二:如果 socialUsers 指定的 userId 改变,需要进行更新 96 // 逻辑二:如果 socialUsers 指定的 userId 改变,需要进行更新
98 // 例如说,一个微信 unionId 对应了多个社交账号,结果其中有个关联了新的 userId,则其它也要跟着修改 97 // 例如说,一个微信 unionId 对应了多个社交账号,结果其中有个关联了新的 userId,则其它也要跟着修改
@@ -111,7 +110,7 @@ public class SocialUserServiceImpl implements SocialUserService { @@ -111,7 +110,7 @@ public class SocialUserServiceImpl implements SocialUserService {
111 .nickname(authUser.getNickname()).avatar(authUser.getAvatar()).rawUserInfo(toJsonString(authUser.getRawUserInfo())) 110 .nickname(authUser.getNickname()).avatar(authUser.getAvatar()).rawUserInfo(toJsonString(authUser.getRawUserInfo()))
112 .build(); 111 .build();
113 if (socialUser == null) { 112 if (socialUser == null) {
114 - saveSocialUser.setUserId(userId).setUserType(userTypeEnum.getValue()) 113 + saveSocialUser.setUserId(userId).setUserType(userType)
115 .setType(type).setOpenid(authUser.getUuid()).setUnionId(unionId); 114 .setType(type).setOpenid(authUser.getUuid()).setUnionId(unionId);
116 socialUserMapper.insert(saveSocialUser); 115 socialUserMapper.insert(saveSocialUser);
117 } else { 116 } else {
@@ -121,16 +120,16 @@ public class SocialUserServiceImpl implements SocialUserService { @@ -121,16 +120,16 @@ public class SocialUserServiceImpl implements SocialUserService {
121 } 120 }
122 121
123 @Override 122 @Override
124 - public void unbindSocialUser(Long userId, Integer type, String unionId, UserTypeEnum userTypeEnum) { 123 + public void unbindSocialUser(Long userId, Integer userType, Integer type, String unionId) {
125 // 获得 unionId 对应的所有 SysSocialUserDO 社交用户 124 // 获得 unionId 对应的所有 SysSocialUserDO 社交用户
126 - List<SysSocialUserDO> socialUsers = this.getAllSocialUserList(type, unionId, userTypeEnum); 125 + List<SysSocialUserDO> socialUsers = this.getAllSocialUserList(type, unionId, userType);
127 if (CollUtil.isEmpty(socialUsers)) { 126 if (CollUtil.isEmpty(socialUsers)) {
128 return; 127 return;
129 } 128 }
130 // 校验,是否解绑的是非自己的 129 // 校验,是否解绑的是非自己的
131 socialUsers.forEach(socialUser -> { 130 socialUsers.forEach(socialUser -> {
132 if (!Objects.equals(socialUser.getUserId(), userId)) { 131 if (!Objects.equals(socialUser.getUserId(), userId)) {
133 - throw exception(SOCIAL_UNBIND_NOT_SELF); 132 + throw exception(SOCIAL_USER_UNBIND_NOT_SELF);
134 } 133 }
135 }); 134 });
136 135
@@ -139,10 +138,9 @@ public class SocialUserServiceImpl implements SocialUserService { @@ -139,10 +138,9 @@ public class SocialUserServiceImpl implements SocialUserService {
139 } 138 }
140 139
141 @VisibleForTesting 140 @VisibleForTesting
142 - public void unbindOldSocialUser(Long userId, Integer type, String newUnionId, UserTypeEnum userTypeEnum) { 141 + public void unbindOldSocialUser(Long userId, Integer userType, Integer type, String newUnionId) {
143 List<Integer> types = SocialTypeEnum.getRelationTypes(type); 142 List<Integer> types = SocialTypeEnum.getRelationTypes(type);
144 - List<SysSocialUserDO> oldSocialUsers = socialUserMapper.selectListByTypeAndUserId(  
145 - userTypeEnum.getValue(), types, userId); 143 + List<SysSocialUserDO> oldSocialUsers = socialUserMapper.selectListByTypeAndUserId(userType, types, userId);
146 // 如果新老的 unionId 是一致的,说明无需解绑 144 // 如果新老的 unionId 是一致的,说明无需解绑
147 if (CollUtil.isEmpty(oldSocialUsers) || Objects.equals(newUnionId, oldSocialUsers.get(0).getUnionId())) { 145 if (CollUtil.isEmpty(oldSocialUsers) || Objects.equals(newUnionId, oldSocialUsers.get(0).getUnionId())) {
148 return; 146 return;
@@ -165,7 +163,7 @@ public class SocialUserServiceImpl implements SocialUserService { @@ -165,7 +163,7 @@ public class SocialUserServiceImpl implements SocialUserService {
165 log.info("[getAuthUser0][请求社交平台 type({}) request({}) response({})]", type, toJsonString(authCallback), 163 log.info("[getAuthUser0][请求社交平台 type({}) request({}) response({})]", type, toJsonString(authCallback),
166 toJsonString(authResponse)); 164 toJsonString(authResponse));
167 if (!authResponse.ok()) { 165 if (!authResponse.ok()) {
168 - throw exception(SOCIAL_AUTH_FAILURE, authResponse.getMsg()); 166 + throw exception(SOCIAL_USER_AUTH_FAILURE, authResponse.getMsg());
169 } 167 }
170 return (AuthUser) authResponse.getData(); 168 return (AuthUser) authResponse.getData();
171 } 169 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/user/UserService.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi @@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi
6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 7 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
8 import cn.iocoder.yudao.framework.common.pojo.PageResult; 8 import cn.iocoder.yudao.framework.common.pojo.PageResult;
9 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 9 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
10 10
11 import java.io.InputStream; 11 import java.io.InputStream;
12 import java.util.*; 12 import java.util.*;
@@ -16,7 +16,7 @@ import java.util.*; @@ -16,7 +16,7 @@ import java.util.*;
16 * 16 *
17 * @author 芋道源码 17 * @author 芋道源码
18 */ 18 */
19 -public interface UserService { 19 +public interface AdminUserService {
20 20
21 /** 21 /**
22 * 创建用户 22 * 创建用户
@@ -94,7 +94,7 @@ public interface UserService { @@ -94,7 +94,7 @@ public interface UserService {
94 * @param username 用户名 94 * @param username 用户名
95 * @return 用户对象信息 95 * @return 用户对象信息
96 */ 96 */
97 - UserDO getUserByUsername(String username); 97 + AdminUserDO getUserByUsername(String username);
98 98
99 /** 99 /**
100 * 获得用户分页列表 100 * 获得用户分页列表
@@ -102,7 +102,7 @@ public interface UserService { @@ -102,7 +102,7 @@ public interface UserService {
102 * @param reqVO 分页条件 102 * @param reqVO 分页条件
103 * @return 分页列表 103 * @return 分页列表
104 */ 104 */
105 - PageResult<UserDO> getUserPage(UserPageReqVO reqVO); 105 + PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO);
106 106
107 /** 107 /**
108 * 通过用户 ID 查询用户 108 * 通过用户 ID 查询用户
@@ -110,7 +110,7 @@ public interface UserService { @@ -110,7 +110,7 @@ public interface UserService {
110 * @param id 用户ID 110 * @param id 用户ID
111 * @return 用户对象信息 111 * @return 用户对象信息
112 */ 112 */
113 - UserDO getUser(Long id); 113 + AdminUserDO getUser(Long id);
114 114
115 /** 115 /**
116 * 获得指定部门的用户数组 116 * 获得指定部门的用户数组
@@ -118,7 +118,7 @@ public interface UserService { @@ -118,7 +118,7 @@ public interface UserService {
118 * @param deptIds 部门数组 118 * @param deptIds 部门数组
119 * @return 用户数组 119 * @return 用户数组
120 */ 120 */
121 - List<UserDO> getUsersByDeptIds(Collection<Long> deptIds); 121 + List<AdminUserDO> getUsersByDeptIds(Collection<Long> deptIds);
122 122
123 /** 123 /**
124 * 获得指定岗位的用户数组 124 * 获得指定岗位的用户数组
@@ -126,7 +126,7 @@ public interface UserService { @@ -126,7 +126,7 @@ public interface UserService {
126 * @param postIds 岗位数组 126 * @param postIds 岗位数组
127 * @return 用户数组 127 * @return 用户数组
128 */ 128 */
129 - List<UserDO> getUsersByPostIds(Collection<Long> postIds); 129 + List<AdminUserDO> getUsersByPostIds(Collection<Long> postIds);
130 130
131 /** 131 /**
132 * 获得用户列表 132 * 获得用户列表
@@ -134,7 +134,7 @@ public interface UserService { @@ -134,7 +134,7 @@ public interface UserService {
134 * @param ids 用户编号数组 134 * @param ids 用户编号数组
135 * @return 用户列表 135 * @return 用户列表
136 */ 136 */
137 - List<UserDO> getUsers(Collection<Long> ids); 137 + List<AdminUserDO> getUsers(Collection<Long> ids);
138 138
139 /** 139 /**
140 * 校验用户们是否有效。如下情况,视为无效: 140 * 校验用户们是否有效。如下情况,视为无效:
@@ -151,11 +151,11 @@ public interface UserService { @@ -151,11 +151,11 @@ public interface UserService {
151 * @param ids 用户编号数组 151 * @param ids 用户编号数组
152 * @return 用户 Map 152 * @return 用户 Map
153 */ 153 */
154 - default Map<Long, UserDO> getUserMap(Collection<Long> ids) { 154 + default Map<Long, AdminUserDO> getUserMap(Collection<Long> ids) {
155 if (CollUtil.isEmpty(ids)) { 155 if (CollUtil.isEmpty(ids)) {
156 return new HashMap<>(); 156 return new HashMap<>();
157 } 157 }
158 - return CollectionUtils.convertMap(getUsers(ids), UserDO::getId); 158 + return CollectionUtils.convertMap(getUsers(ids), AdminUserDO::getId);
159 } 159 }
160 160
161 /** 161 /**
@@ -164,7 +164,7 @@ public interface UserService { @@ -164,7 +164,7 @@ public interface UserService {
164 * @param reqVO 列表请求 164 * @param reqVO 列表请求
165 * @return 用户列表 165 * @return 用户列表
166 */ 166 */
167 - List<UserDO> getUsers(UserExportReqVO reqVO); 167 + List<AdminUserDO> getUsers(UserExportReqVO reqVO);
168 168
169 /** 169 /**
170 * 获得用户列表,基于昵称模糊匹配 170 * 获得用户列表,基于昵称模糊匹配
@@ -172,7 +172,7 @@ public interface UserService { @@ -172,7 +172,7 @@ public interface UserService {
172 * @param nickname 昵称 172 * @param nickname 昵称
173 * @return 用户列表 173 * @return 用户列表
174 */ 174 */
175 - List<UserDO> getUsersByNickname(String nickname); 175 + List<AdminUserDO> getUsersByNickname(String nickname);
176 176
177 /** 177 /**
178 * 获得用户列表,基于用户账号模糊匹配 178 * 获得用户列表,基于用户账号模糊匹配
@@ -180,7 +180,7 @@ public interface UserService { @@ -180,7 +180,7 @@ public interface UserService {
180 * @param username 用户账号 180 * @param username 用户账号
181 * @return 用户列表 181 * @return 用户列表
182 */ 182 */
183 - List<UserDO> getUsersByUsername(String username); 183 + List<AdminUserDO> getUsersByUsername(String username);
184 184
185 /** 185 /**
186 * 批量导入用户 186 * 批量导入用户
@@ -197,6 +197,6 @@ public interface UserService { @@ -197,6 +197,6 @@ public interface UserService {
197 * @param status 状态 197 * @param status 状态
198 * @return 用户们 198 * @return 用户们
199 */ 199 */
200 - List<UserDO> getUsersByStatus(Integer status); 200 + List<AdminUserDO> getUsersByStatus(Integer status);
201 201
202 } 202 }
yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/user/UserServiceImpl.java renamed to yudao-module-system/yudao-module-system-impl/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java
@@ -14,12 +14,10 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi @@ -14,12 +14,10 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfi
14 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 14 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
15 import cn.iocoder.yudao.module.system.convert.user.UserConvert; 15 import cn.iocoder.yudao.module.system.convert.user.UserConvert;
16 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 16 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
17 -import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;  
18 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
19 -import cn.iocoder.yudao.module.system.dal.mysql.user.UserMapper; 17 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
  18 +import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
20 import cn.iocoder.yudao.module.system.service.dept.DeptService; 19 import cn.iocoder.yudao.module.system.service.dept.DeptService;
21 import cn.iocoder.yudao.module.system.service.dept.PostService; 20 import cn.iocoder.yudao.module.system.service.dept.PostService;
22 -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;  
23 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 21 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
24 import com.google.common.annotations.VisibleForTesting; 22 import com.google.common.annotations.VisibleForTesting;
25 import lombok.extern.slf4j.Slf4j; 23 import lombok.extern.slf4j.Slf4j;
@@ -34,29 +32,24 @@ import java.util.*; @@ -34,29 +32,24 @@ import java.util.*;
34 32
35 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; 33 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
36 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; 34 import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
37 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.USER_IS_DISABLE;  
38 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.USER_NOT_EXISTS;  
39 35
40 /** 36 /**
41 - * 管理员用户 Service 实现类 37 + * 后台用户 Service 实现类
42 * 38 *
43 * @author 芋道源码 39 * @author 芋道源码
44 */ 40 */
45 @Service("adminUserService") 41 @Service("adminUserService")
46 @Slf4j 42 @Slf4j
47 -public class UserServiceImpl implements UserService { 43 +public class AdminUserServiceImpl implements AdminUserService {
48 44
49 @Value("${sys.user.init-password:yudaoyuanma}") 45 @Value("${sys.user.init-password:yudaoyuanma}")
50 private String userInitPassword; 46 private String userInitPassword;
51 47
52 - @Resource(name = "sysUserMapper") // userMapper 存在重名  
53 - private UserMapper userMapper;  
54 -  
55 @Resource 48 @Resource
56 - private DeptService deptService; 49 + private AdminUserMapper userMapper;
57 50
58 @Resource 51 @Resource
59 - private SysDeptCoreService deptCoreService; 52 + private DeptService deptService;
60 @Resource 53 @Resource
61 private PostService postService; 54 private PostService postService;
62 @Resource 55 @Resource
@@ -72,7 +65,7 @@ public class UserServiceImpl implements UserService { @@ -72,7 +65,7 @@ public class UserServiceImpl implements UserService {
72 this.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), 65 this.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(),
73 reqVO.getDeptId(), reqVO.getPostIds()); 66 reqVO.getDeptId(), reqVO.getPostIds());
74 // 插入用户 67 // 插入用户
75 - UserDO user = UserConvert.INSTANCE.convert(reqVO); 68 + AdminUserDO user = UserConvert.INSTANCE.convert(reqVO);
76 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 69 user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
77 user.setPassword(passwordEncoder.encode(reqVO.getPassword())); // 加密密码 70 user.setPassword(passwordEncoder.encode(reqVO.getPassword())); // 加密密码
78 userMapper.insert(user); 71 userMapper.insert(user);
@@ -85,13 +78,13 @@ public class UserServiceImpl implements UserService { @@ -85,13 +78,13 @@ public class UserServiceImpl implements UserService {
85 this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), 78 this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(),
86 reqVO.getDeptId(), reqVO.getPostIds()); 79 reqVO.getDeptId(), reqVO.getPostIds());
87 // 更新用户 80 // 更新用户
88 - UserDO updateObj = UserConvert.INSTANCE.convert(reqVO); 81 + AdminUserDO updateObj = UserConvert.INSTANCE.convert(reqVO);
89 userMapper.updateById(updateObj); 82 userMapper.updateById(updateObj);
90 } 83 }
91 84
92 @Override 85 @Override
93 public void updateUserLogin(Long id, String loginIp) { 86 public void updateUserLogin(Long id, String loginIp) {
94 - userMapper.updateById(new UserDO().setId(id).setLoginIp(loginIp).setLoginDate(new Date())); 87 + userMapper.updateById(new AdminUserDO().setId(id).setLoginIp(loginIp).setLoginDate(new Date()));
95 } 88 }
96 89
97 @Override 90 @Override
@@ -109,7 +102,7 @@ public class UserServiceImpl implements UserService { @@ -109,7 +102,7 @@ public class UserServiceImpl implements UserService {
109 // 校验旧密码密码 102 // 校验旧密码密码
110 this.checkOldPassword(id, reqVO.getOldPassword()); 103 this.checkOldPassword(id, reqVO.getOldPassword());
111 // 执行更新 104 // 执行更新
112 - UserDO updateObj = new UserDO().setId(id); 105 + AdminUserDO updateObj = new AdminUserDO().setId(id);
113 updateObj.setPassword(passwordEncoder.encode(reqVO.getNewPassword())); // 加密密码 106 updateObj.setPassword(passwordEncoder.encode(reqVO.getNewPassword())); // 加密密码
114 userMapper.updateById(updateObj); 107 userMapper.updateById(updateObj);
115 } 108 }
@@ -120,7 +113,7 @@ public class UserServiceImpl implements UserService { @@ -120,7 +113,7 @@ public class UserServiceImpl implements UserService {
120 // 存储文件 113 // 存储文件
121 String avatar = fileService.createFile(IdUtil.fastUUID(), IoUtil.readBytes(avatarFile)); 114 String avatar = fileService.createFile(IdUtil.fastUUID(), IoUtil.readBytes(avatarFile));
122 // 更新路径 115 // 更新路径
123 - UserDO sysUserDO = new UserDO(); 116 + AdminUserDO sysUserDO = new AdminUserDO();
124 sysUserDO.setId(id); 117 sysUserDO.setId(id);
125 sysUserDO.setAvatar(avatar); 118 sysUserDO.setAvatar(avatar);
126 userMapper.updateById(sysUserDO); 119 userMapper.updateById(sysUserDO);
@@ -132,7 +125,7 @@ public class UserServiceImpl implements UserService { @@ -132,7 +125,7 @@ public class UserServiceImpl implements UserService {
132 // 校验用户存在 125 // 校验用户存在
133 this.checkUserExists(id); 126 this.checkUserExists(id);
134 // 更新密码 127 // 更新密码
135 - UserDO updateObj = new UserDO(); 128 + AdminUserDO updateObj = new AdminUserDO();
136 updateObj.setId(id); 129 updateObj.setId(id);
137 updateObj.setPassword(passwordEncoder.encode(password)); // 加密密码 130 updateObj.setPassword(passwordEncoder.encode(password)); // 加密密码
138 userMapper.updateById(updateObj); 131 userMapper.updateById(updateObj);
@@ -143,7 +136,7 @@ public class UserServiceImpl implements UserService { @@ -143,7 +136,7 @@ public class UserServiceImpl implements UserService {
143 // 校验用户存在 136 // 校验用户存在
144 this.checkUserExists(id); 137 this.checkUserExists(id);
145 // 更新状态 138 // 更新状态
146 - UserDO updateObj = new UserDO(); 139 + AdminUserDO updateObj = new AdminUserDO();
147 updateObj.setId(id); 140 updateObj.setId(id);
148 updateObj.setStatus(status); 141 updateObj.setStatus(status);
149 userMapper.updateById(updateObj); 142 userMapper.updateById(updateObj);
@@ -160,22 +153,22 @@ public class UserServiceImpl implements UserService { @@ -160,22 +153,22 @@ public class UserServiceImpl implements UserService {
160 } 153 }
161 154
162 @Override 155 @Override
163 - public UserDO getUserByUsername(String username) { 156 + public AdminUserDO getUserByUsername(String username) {
164 return userMapper.selectByUsername(username); 157 return userMapper.selectByUsername(username);
165 } 158 }
166 159
167 @Override 160 @Override
168 - public PageResult<UserDO> getUserPage(UserPageReqVO reqVO) { 161 + public PageResult<AdminUserDO> getUserPage(UserPageReqVO reqVO) {
169 return userMapper.selectPage(reqVO, this.getDeptCondition(reqVO.getDeptId())); 162 return userMapper.selectPage(reqVO, this.getDeptCondition(reqVO.getDeptId()));
170 } 163 }
171 164
172 @Override 165 @Override
173 - public UserDO getUser(Long id) { 166 + public AdminUserDO getUser(Long id) {
174 return userMapper.selectById(id); 167 return userMapper.selectById(id);
175 } 168 }
176 169
177 @Override 170 @Override
178 - public List<UserDO> getUsersByDeptIds(Collection<Long> deptIds) { 171 + public List<AdminUserDO> getUsersByDeptIds(Collection<Long> deptIds) {
179 if (CollUtil.isEmpty(deptIds)) { 172 if (CollUtil.isEmpty(deptIds)) {
180 return Collections.emptyList(); 173 return Collections.emptyList();
181 } 174 }
@@ -183,19 +176,19 @@ public class UserServiceImpl implements UserService { @@ -183,19 +176,19 @@ public class UserServiceImpl implements UserService {
183 } 176 }
184 177
185 @Override 178 @Override
186 - public List<UserDO> getUsersByPostIds(Collection<Long> postIds) { 179 + public List<AdminUserDO> getUsersByPostIds(Collection<Long> postIds) {
187 if (CollUtil.isEmpty(postIds)) { 180 if (CollUtil.isEmpty(postIds)) {
188 return Collections.emptyList(); 181 return Collections.emptyList();
189 } 182 }
190 // 过滤不符合条件的 183 // 过滤不符合条件的
191 // TODO 芋艿:暂时只能内存过滤。解决方案:1、新建一个关联表;2、基于 where + 函数;3、json 字段,适合 mysql 8+ 版本 184 // TODO 芋艿:暂时只能内存过滤。解决方案:1、新建一个关联表;2、基于 where + 函数;3、json 字段,适合 mysql 8+ 版本
192 - List<UserDO> users = userMapper.selectList(); 185 + List<AdminUserDO> users = userMapper.selectList();
193 users.removeIf(user -> !CollUtil.containsAny(user.getPostIds(), postIds)); 186 users.removeIf(user -> !CollUtil.containsAny(user.getPostIds(), postIds));
194 return users; 187 return users;
195 } 188 }
196 189
197 @Override 190 @Override
198 - public List<UserDO> getUsers(Collection<Long> ids) { 191 + public List<AdminUserDO> getUsers(Collection<Long> ids) {
199 if (CollUtil.isEmpty(ids)) { 192 if (CollUtil.isEmpty(ids)) {
200 return Collections.emptyList(); 193 return Collections.emptyList();
201 } 194 }
@@ -208,11 +201,11 @@ public class UserServiceImpl implements UserService { @@ -208,11 +201,11 @@ public class UserServiceImpl implements UserService {
208 return; 201 return;
209 } 202 }
210 // 获得岗位信息 203 // 获得岗位信息
211 - List<UserDO> users = userMapper.selectBatchIds(ids);  
212 - Map<Long, UserDO> userMap = CollectionUtils.convertMap(users, UserDO::getId); 204 + List<AdminUserDO> users = userMapper.selectBatchIds(ids);
  205 + Map<Long, AdminUserDO> userMap = CollectionUtils.convertMap(users, AdminUserDO::getId);
213 // 校验 206 // 校验
214 ids.forEach(id -> { 207 ids.forEach(id -> {
215 - UserDO user = userMap.get(id); 208 + AdminUserDO user = userMap.get(id);
216 if (user == null) { 209 if (user == null) {
217 throw exception(USER_NOT_EXISTS); 210 throw exception(USER_NOT_EXISTS);
218 } 211 }
@@ -223,17 +216,17 @@ public class UserServiceImpl implements UserService { @@ -223,17 +216,17 @@ public class UserServiceImpl implements UserService {
223 } 216 }
224 217
225 @Override 218 @Override
226 - public List<UserDO> getUsers(UserExportReqVO reqVO) { 219 + public List<AdminUserDO> getUsers(UserExportReqVO reqVO) {
227 return userMapper.selectList(reqVO, this.getDeptCondition(reqVO.getDeptId())); 220 return userMapper.selectList(reqVO, this.getDeptCondition(reqVO.getDeptId()));
228 } 221 }
229 222
230 @Override 223 @Override
231 - public List<UserDO> getUsersByNickname(String nickname) { 224 + public List<AdminUserDO> getUsersByNickname(String nickname) {
232 return userMapper.selectListByNickname(nickname); 225 return userMapper.selectListByNickname(nickname);
233 } 226 }
234 227
235 @Override 228 @Override
236 - public List<UserDO> getUsersByUsername(String username) { 229 + public List<AdminUserDO> getUsersByUsername(String username) {
237 return userMapper.selectListByUsername(username); 230 return userMapper.selectListByUsername(username);
238 } 231 }
239 232
@@ -264,9 +257,9 @@ public class UserServiceImpl implements UserService { @@ -264,9 +257,9 @@ public class UserServiceImpl implements UserService {
264 // 校验邮箱唯一 257 // 校验邮箱唯一
265 this.checkEmailUnique(id, email); 258 this.checkEmailUnique(id, email);
266 // 校验部门处于开启状态 259 // 校验部门处于开启状态
267 - this.checkDeptEnable(deptId); 260 + deptService.validDepts(Collections.singleton(deptId));
268 // 校验岗位处于开启状态 261 // 校验岗位处于开启状态
269 - this.checkPostEnable(postIds); 262 + postService.validPosts(postIds);
270 } 263 }
271 264
272 @VisibleForTesting 265 @VisibleForTesting
@@ -274,7 +267,7 @@ public class UserServiceImpl implements UserService { @@ -274,7 +267,7 @@ public class UserServiceImpl implements UserService {
274 if (id == null) { 267 if (id == null) {
275 return; 268 return;
276 } 269 }
277 - UserDO user = userMapper.selectById(id); 270 + AdminUserDO user = userMapper.selectById(id);
278 if (user == null) { 271 if (user == null) {
279 throw exception(USER_NOT_EXISTS); 272 throw exception(USER_NOT_EXISTS);
280 } 273 }
@@ -285,7 +278,7 @@ public class UserServiceImpl implements UserService { @@ -285,7 +278,7 @@ public class UserServiceImpl implements UserService {
285 if (StrUtil.isBlank(username)) { 278 if (StrUtil.isBlank(username)) {
286 return; 279 return;
287 } 280 }
288 - UserDO user = userMapper.selectByUsername(username); 281 + AdminUserDO user = userMapper.selectByUsername(username);
289 if (user == null) { 282 if (user == null) {
290 return; 283 return;
291 } 284 }
@@ -303,7 +296,7 @@ public class UserServiceImpl implements UserService { @@ -303,7 +296,7 @@ public class UserServiceImpl implements UserService {
303 if (StrUtil.isBlank(email)) { 296 if (StrUtil.isBlank(email)) {
304 return; 297 return;
305 } 298 }
306 - UserDO user = userMapper.selectByEmail(email); 299 + AdminUserDO user = userMapper.selectByEmail(email);
307 if (user == null) { 300 if (user == null) {
308 return; 301 return;
309 } 302 }
@@ -321,7 +314,7 @@ public class UserServiceImpl implements UserService { @@ -321,7 +314,7 @@ public class UserServiceImpl implements UserService {
321 if (StrUtil.isBlank(mobile)) { 314 if (StrUtil.isBlank(mobile)) {
322 return; 315 return;
323 } 316 }
324 - UserDO user = userMapper.selectByMobile(mobile); 317 + AdminUserDO user = userMapper.selectByMobile(mobile);
325 if (user == null) { 318 if (user == null) {
326 return; 319 return;
327 } 320 }
@@ -334,41 +327,6 @@ public class UserServiceImpl implements UserService { @@ -334,41 +327,6 @@ public class UserServiceImpl implements UserService {
334 } 327 }
335 } 328 }
336 329
337 - @VisibleForTesting  
338 - public void checkDeptEnable(Long deptId) {  
339 - if (deptId == null) { // 允许不选择  
340 - return;  
341 - }  
342 - SysDeptDO dept = deptCoreService.getDept(deptId);  
343 - if (dept == null) {  
344 - throw exception(DEPT_NOT_FOUND);  
345 - }  
346 - if (!CommonStatusEnum.ENABLE.getStatus().equals(dept.getStatus())) {  
347 - throw exception(DEPT_NOT_ENABLE);  
348 - }  
349 - }  
350 -  
351 - @VisibleForTesting  
352 - public void checkPostEnable(Set<Long> postIds) {  
353 - if (CollUtil.isEmpty(postIds)) { // 允许不选择  
354 - return;  
355 - }  
356 - List<SysPostDO> posts = postService.getPosts(postIds, null);  
357 - if (CollUtil.isEmpty(posts)) {  
358 - throw exception(POST_NOT_FOUND);  
359 - }  
360 - Map<Long, SysPostDO> postMap = CollectionUtils.convertMap(posts, SysPostDO::getId);  
361 - postIds.forEach(postId -> {  
362 - SysPostDO post = postMap.get(postId);  
363 - if (post == null) {  
364 - throw exception(POST_NOT_FOUND);  
365 - }  
366 - if (!CommonStatusEnum.ENABLE.getStatus().equals(post.getStatus())) {  
367 - throw exception(POST_NOT_ENABLE, post.getName());  
368 - }  
369 - });  
370 - }  
371 -  
372 /** 330 /**
373 * 校验旧密码 331 * 校验旧密码
374 * 332 *
@@ -377,7 +335,7 @@ public class UserServiceImpl implements UserService { @@ -377,7 +335,7 @@ public class UserServiceImpl implements UserService {
377 */ 335 */
378 @VisibleForTesting 336 @VisibleForTesting
379 public void checkOldPassword(Long id, String oldPassword) { 337 public void checkOldPassword(Long id, String oldPassword) {
380 - UserDO user = userMapper.selectById(id); 338 + AdminUserDO user = userMapper.selectById(id);
381 if (user == null) { 339 if (user == null) {
382 throw exception(USER_NOT_EXISTS); 340 throw exception(USER_NOT_EXISTS);
383 } 341 }
@@ -404,7 +362,7 @@ public class UserServiceImpl implements UserService { @@ -404,7 +362,7 @@ public class UserServiceImpl implements UserService {
404 return; 362 return;
405 } 363 }
406 // 判断如果不存在,在进行插入 364 // 判断如果不存在,在进行插入
407 - UserDO existUser = userMapper.selectByUsername(importUser.getUsername()); 365 + AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
408 if (existUser == null) { 366 if (existUser == null) {
409 userMapper.insert(UserConvert.INSTANCE.convert(importUser) 367 userMapper.insert(UserConvert.INSTANCE.convert(importUser)
410 .setPassword(passwordEncoder.encode(userInitPassword))); // 设置默认密码 368 .setPassword(passwordEncoder.encode(userInitPassword))); // 设置默认密码
@@ -416,7 +374,7 @@ public class UserServiceImpl implements UserService { @@ -416,7 +374,7 @@ public class UserServiceImpl implements UserService {
416 respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg()); 374 respVO.getFailureUsernames().put(importUser.getUsername(), USER_USERNAME_EXISTS.getMsg());
417 return; 375 return;
418 } 376 }
419 - UserDO updateUser = UserConvert.INSTANCE.convert(importUser); 377 + AdminUserDO updateUser = UserConvert.INSTANCE.convert(importUser);
420 updateUser.setId(existUser.getId()); 378 updateUser.setId(existUser.getId());
421 userMapper.updateById(updateUser); 379 userMapper.updateById(updateUser);
422 respVO.getUpdateUsernames().add(importUser.getUsername()); 380 respVO.getUpdateUsernames().add(importUser.getUsername());
@@ -425,7 +383,7 @@ public class UserServiceImpl implements UserService { @@ -425,7 +383,7 @@ public class UserServiceImpl implements UserService {
425 } 383 }
426 384
427 @Override 385 @Override
428 - public List<UserDO> getUsersByStatus(Integer status) { 386 + public List<AdminUserDO> getUsersByStatus(Integer status) {
429 return userMapper.selectListByStatus(status); 387 return userMapper.selectListByStatus(status);
430 } 388 }
431 389
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/AuthServiceImplTest.java
1 package cn.iocoder.yudao.module.system.service.auth; 1 package cn.iocoder.yudao.module.system.service.auth;
2 2
3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginReqVO; 3 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.auth.AuthLoginReqVO;
  4 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
4 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum; 5 import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
5 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum; 6 import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
6 import cn.iocoder.yudao.module.system.service.common.CaptchaService; 7 import cn.iocoder.yudao.module.system.service.common.CaptchaService;
7 import cn.iocoder.yudao.module.system.service.dept.PostService; 8 import cn.iocoder.yudao.module.system.service.dept.PostService;
8 import cn.iocoder.yudao.module.system.service.logger.LoginLogService; 9 import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
9 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 10 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
10 -import cn.iocoder.yudao.module.system.service.user.UserService;  
11 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 11 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
12 import cn.iocoder.yudao.module.system.service.social.SocialUserService; 12 import cn.iocoder.yudao.module.system.service.social.SocialUserService;
13 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 13 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
14 import cn.iocoder.yudao.framework.security.core.LoginUser; 14 import cn.iocoder.yudao.framework.security.core.LoginUser;
@@ -37,14 +37,14 @@ import static org.junit.jupiter.api.Assertions.*; @@ -37,14 +37,14 @@ import static org.junit.jupiter.api.Assertions.*;
37 import static org.mockito.ArgumentMatchers.eq; 37 import static org.mockito.ArgumentMatchers.eq;
38 import static org.mockito.Mockito.*; 38 import static org.mockito.Mockito.*;
39 39
40 -@Import(AuthServiceImpl.class) 40 +@Import(AdminAuthServiceImpl.class)
41 public class AuthServiceImplTest extends BaseDbUnitTest { 41 public class AuthServiceImplTest extends BaseDbUnitTest {
42 42
43 @Resource 43 @Resource
44 - private AuthServiceImpl authService; 44 + private AdminAuthServiceImpl authService;
45 45
46 @MockBean 46 @MockBean
47 - private UserService userService; 47 + private AdminUserService userService;
48 @MockBean 48 @MockBean
49 private PermissionService permissionService; 49 private PermissionService permissionService;
50 @MockBean 50 @MockBean
@@ -72,7 +72,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -72,7 +72,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
72 // 准备参数 72 // 准备参数
73 String username = randomString(); 73 String username = randomString();
74 // mock 方法 74 // mock 方法
75 - UserDO user = randomPojo(UserDO.class, o -> o.setUsername(username)); 75 + AdminUserDO user = randomPojo(AdminUserDO.class, o -> o.setUsername(username));
76 when(userService.getUserByUsername(eq(username))).thenReturn(user); 76 when(userService.getUserByUsername(eq(username))).thenReturn(user);
77 77
78 // 调用 78 // 调用
@@ -98,7 +98,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest { @@ -98,7 +98,7 @@ public class AuthServiceImplTest extends BaseDbUnitTest {
98 // 准备参数 98 // 准备参数
99 Long userId = randomLongId(); 99 Long userId = randomLongId();
100 // mock 方法 01 100 // mock 方法 01
101 - UserDO user = randomPojo(UserDO.class, o -> o.setId(userId)); 101 + AdminUserDO user = randomPojo(AdminUserDO.class, o -> o.setId(userId));
102 when(userService.getUser(eq(userId))).thenReturn(user); 102 when(userService.getUser(eq(userId))).thenReturn(user);
103 // mock 方法 02 103 // mock 方法 02
104 Set<Long> roleIds = randomSet(Long.class); 104 Set<Long> roleIds = randomSet(Long.class);
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/auth/UserSessionServiceImplTest.java
@@ -4,11 +4,11 @@ import cn.hutool.core.date.DateUtil; @@ -4,11 +4,11 @@ import cn.hutool.core.date.DateUtil;
4 import cn.iocoder.yudao.framework.security.config.SecurityProperties; 4 import cn.iocoder.yudao.framework.security.config.SecurityProperties;
5 import cn.iocoder.yudao.framework.security.core.LoginUser; 5 import cn.iocoder.yudao.framework.security.core.LoginUser;
6 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.auth.vo.session.UserSessionPageReqVO;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
7 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper; 8 import cn.iocoder.yudao.module.system.dal.mysql.auth.SysUserSessionMapper;
8 import cn.iocoder.yudao.module.system.service.logger.LoginLogService; 9 import cn.iocoder.yudao.module.system.service.logger.LoginLogService;
9 -import cn.iocoder.yudao.module.system.service.user.UserService; 10 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
10 import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO; 11 import cn.iocoder.yudao.module.system.dal.dataobject.auth.SysUserSessionDO;
11 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
12 import cn.iocoder.yudao.module.system.dal.redis.auth.LoginUserRedisDAO; 12 import cn.iocoder.yudao.module.system.dal.redis.auth.LoginUserRedisDAO;
13 import cn.iocoder.yudao.module.system.enums.common.SysSexEnum; 13 import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 14 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
@@ -52,7 +52,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { @@ -52,7 +52,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest {
52 private SysUserSessionMapper userSessionMapper; 52 private SysUserSessionMapper userSessionMapper;
53 53
54 @MockBean 54 @MockBean
55 - private UserService userService; 55 + private AdminUserService userService;
56 @MockBean 56 @MockBean
57 private LoginLogService loginLogService; 57 private LoginLogService loginLogService;
58 @MockBean 58 @MockBean
@@ -64,7 +64,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest { @@ -64,7 +64,7 @@ public class UserSessionServiceImplTest extends BaseDbAndRedisUnitTest {
64 @Test 64 @Test
65 public void testGetUserSessionPage_success() { 65 public void testGetUserSessionPage_success() {
66 // mock 数据 66 // mock 数据
67 - UserDO dbUser = randomPojo(UserDO.class, o -> { 67 + AdminUserDO dbUser = randomPojo(AdminUserDO.class, o -> {
68 o.setSex(randomEle(SysSexEnum.values()).getSex()); 68 o.setSex(randomEle(SysSexEnum.values()).getSex());
69 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 69 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
70 }); 70 });
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/LoginLogServiceImplTest.java
@@ -8,13 +8,11 @@ import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; @@ -8,13 +8,11 @@ import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
8 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogExportReqVO;
9 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.loginlog.LoginLogPageReqVO;
10 import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper; 10 import cn.iocoder.yudao.module.system.dal.mysql.logger.LoginLogMapper;
11 -import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;  
12 -import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;  
13 import cn.iocoder.yudao.framework.test.core.util.RandomUtils; 11 import cn.iocoder.yudao.framework.test.core.util.RandomUtils;
14 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; 12 import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
15 -import cn.iocoder.yudao.module.system.enums.logger.SysLoginLogTypeEnum;  
16 -import cn.iocoder.yudao.module.system.enums.logger.SysLoginResultEnum;  
17 -import cn.iocoder.yudao.module.system.service.logger.dto.LoginLogCreateReqDTO; 13 +import cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum;
  14 +import cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum;
  15 +import cn.iocoder.yudao.module.system.api.logger.dto.LoginLogCreateReqDTO;
18 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; 16 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest;
19 import org.junit.jupiter.api.Test; 17 import org.junit.jupiter.api.Test;
20 import org.springframework.context.annotation.Import; 18 import org.springframework.context.annotation.Import;
@@ -41,20 +39,20 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { @@ -41,20 +39,20 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
41 // 构造测试数据 39 // 构造测试数据
42 // 登录成功的 40 // 登录成功的
43 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> { 41 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> {
44 - logDO.setLogType(RandomUtil.randomEle(LoginLogTypeEnum.values()).getType()); 42 + logDO.setLogType(RandomUtil.randomEle(cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum.values()).getType());
45 logDO.setTraceId(TracerUtils.getTraceId()); 43 logDO.setTraceId(TracerUtils.getTraceId());
46 logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue()); 44 logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue());
47 45
48 logDO.setUserIp("192.168.199.16"); 46 logDO.setUserIp("192.168.199.16");
49 logDO.setUsername("wangkai"); 47 logDO.setUsername("wangkai");
50 logDO.setCreateTime(buildTime(2021, 3, 6)); 48 logDO.setCreateTime(buildTime(2021, 3, 6));
51 - logDO.setResult(LoginResultEnum.SUCCESS.getResult()); 49 + logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.SUCCESS.getResult());
52 }); 50 });
53 loginLogMapper.insert(loginLogDO); 51 loginLogMapper.insert(loginLogDO);
54 52
55 // 下面几个都是不匹配的数据 53 // 下面几个都是不匹配的数据
56 // 登录失败的 54 // 登录失败的
57 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(LoginResultEnum.CAPTCHA_CODE_ERROR.getResult()))); 55 + loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.CAPTCHA_CODE_ERROR.getResult())));
58 // 不同ip段的 56 // 不同ip段的
59 loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18"))); 57 loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18")));
60 // 不同username 58 // 不同username
@@ -86,20 +84,20 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { @@ -86,20 +84,20 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
86 84
87 // 登录成功的 85 // 登录成功的
88 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> { 86 SysLoginLogDO loginLogDO = RandomUtils.randomPojo(SysLoginLogDO.class, logDO -> {
89 - logDO.setLogType(RandomUtil.randomEle(LoginLogTypeEnum.values()).getType()); 87 + logDO.setLogType(RandomUtil.randomEle(cn.iocoder.yudao.module.system.enums.logger.LoginLogTypeEnum.values()).getType());
90 logDO.setTraceId(TracerUtils.getTraceId()); 88 logDO.setTraceId(TracerUtils.getTraceId());
91 logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue()); 89 logDO.setUserType(RandomUtil.randomEle(UserTypeEnum.values()).getValue());
92 90
93 logDO.setUserIp("192.168.111.16"); 91 logDO.setUserIp("192.168.111.16");
94 logDO.setUsername("wangxiaokai"); 92 logDO.setUsername("wangxiaokai");
95 logDO.setCreateTime(buildTime(2021, 3, 6)); 93 logDO.setCreateTime(buildTime(2021, 3, 6));
96 - logDO.setResult(LoginResultEnum.SUCCESS.getResult()); 94 + logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.SUCCESS.getResult());
97 }); 95 });
98 loginLogMapper.insert(loginLogDO); 96 loginLogMapper.insert(loginLogDO);
99 97
100 // 下面几个都是不匹配的数据 98 // 下面几个都是不匹配的数据
101 // 登录失败的 99 // 登录失败的
102 - loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(LoginResultEnum.CAPTCHA_CODE_ERROR.getResult()))); 100 + loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setResult(cn.iocoder.yudao.module.system.enums.logger.LoginResultEnum.CAPTCHA_CODE_ERROR.getResult())));
103 // 不同ip段的 101 // 不同ip段的
104 loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18"))); 102 loginLogMapper.insert(ObjectUtils.cloneIgnoreId(loginLogDO, logDO -> logDO.setUserIp("192.168.128.18")));
105 // 不同username 103 // 不同username
@@ -130,8 +128,8 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest { @@ -130,8 +128,8 @@ public class LoginLogServiceImplTest extends BaseDbUnitTest {
130 LoginLogCreateReqDTO reqDTO = RandomUtils.randomPojo(LoginLogCreateReqDTO.class, vo -> { 128 LoginLogCreateReqDTO reqDTO = RandomUtils.randomPojo(LoginLogCreateReqDTO.class, vo -> {
131 // 指定随机的范围,避免超出范围入库失败 129 // 指定随机的范围,避免超出范围入库失败
132 vo.setUserType(randomEle(UserTypeEnum.values()).getValue()); 130 vo.setUserType(randomEle(UserTypeEnum.values()).getValue());
133 - vo.setLogType(randomEle(SysLoginLogTypeEnum.values()).getType());  
134 - vo.setResult(randomEle(SysLoginResultEnum.values()).getResult()); 131 + vo.setLogType(randomEle(LoginLogTypeEnum.values()).getType());
  132 + vo.setResult(randomEle(LoginResultEnum.values()).getResult());
135 vo.setTraceId(TracerUtils.getTraceId()); 133 vo.setTraceId(TracerUtils.getTraceId());
136 }); 134 });
137 135
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImplTest.java
@@ -4,9 +4,9 @@ import cn.hutool.core.map.MapUtil; @@ -4,9 +4,9 @@ import cn.hutool.core.map.MapUtil;
4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
6 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
  7 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
7 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; 8 import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper;
8 -import cn.iocoder.yudao.module.system.service.user.UserService;  
9 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO; 9 +import cn.iocoder.yudao.module.system.service.user.AdminUserService;
10 import cn.iocoder.yudao.module.system.enums.common.SysSexEnum; 10 import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
11 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 11 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
12 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants; 12 import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
@@ -43,7 +43,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { @@ -43,7 +43,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
43 private OperateLogMapper operateLogMapper; 43 private OperateLogMapper operateLogMapper;
44 44
45 @MockBean 45 @MockBean
46 - private UserService userService; 46 + private AdminUserService userService;
47 47
48 @Test 48 @Test
49 public void testCreateOperateLogAsync() throws InterruptedException, ExecutionException { 49 public void testCreateOperateLogAsync() throws InterruptedException, ExecutionException {
@@ -66,7 +66,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { @@ -66,7 +66,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
66 public void testGetOperateLogPage() { 66 public void testGetOperateLogPage() {
67 // 构造测试数据 67 // 构造测试数据
68 // 先构造用户 68 // 先构造用户
69 - UserDO user = RandomUtils.randomPojo(UserDO.class, o -> { 69 + AdminUserDO user = RandomUtils.randomPojo(AdminUserDO.class, o -> {
70 o.setNickname("wangkai"); 70 o.setNickname("wangkai");
71 o.setSex(SysSexEnum.MALE.getSex()); 71 o.setSex(SysSexEnum.MALE.getSex());
72 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 72 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
@@ -117,7 +117,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest { @@ -117,7 +117,7 @@ public class OperateLogServiceImplTest extends BaseDbUnitTest {
117 public void testGetOperateLogs() { 117 public void testGetOperateLogs() {
118 // 构造测试数据 118 // 构造测试数据
119 // 先构造用户 119 // 先构造用户
120 - UserDO user = RandomUtils.randomPojo(UserDO.class, o -> { 120 + AdminUserDO user = RandomUtils.randomPojo(AdminUserDO.class, o -> {
121 o.setNickname("wangkai"); 121 o.setNickname("wangkai");
122 o.setSex(SysSexEnum.MALE.getSex()); 122 o.setSex(SysSexEnum.MALE.getSex());
123 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 123 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/MenuServiceTest.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuCr @@ -7,7 +7,7 @@ import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuCr
7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuListReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuUpdateReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.menu.MenuUpdateReqVO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.permission.MenuDO;
10 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysMenuMapper; 10 +import cn.iocoder.yudao.module.system.dal.mysql.permission.MenuMapper;
11 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum; 11 import cn.iocoder.yudao.module.system.enums.permission.MenuTypeEnum;
12 import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer; 12 import cn.iocoder.yudao.module.system.mq.producer.permission.MenuProducer;
13 import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils; 13 import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils;
@@ -41,7 +41,7 @@ public class MenuServiceTest extends BaseDbUnitTest { @@ -41,7 +41,7 @@ public class MenuServiceTest extends BaseDbUnitTest {
41 private MenuProducer sysMenuProducer; 41 private MenuProducer sysMenuProducer;
42 42
43 @Resource 43 @Resource
44 - private SysMenuMapper menuMapper; 44 + private MenuMapper menuMapper;
45 45
46 @Test 46 @Test
47 public void testInitLocalCache_success() throws Exception { 47 public void testInitLocalCache_success() throws Exception {
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/PermissionServiceTest.java
@@ -2,11 +2,11 @@ package cn.iocoder.yudao.module.system.service.permission; @@ -2,11 +2,11 @@ package cn.iocoder.yudao.module.system.service.permission;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
4 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 4 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
5 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO; 5 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
6 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO; 6 import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleMenuDO;
7 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysUserRoleDO;  
8 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMenuMapper;  
9 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysUserRoleMapper; 7 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
  8 +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMenuMapper;
  9 +import cn.iocoder.yudao.module.system.dal.mysql.permission.UserRoleMapper;
10 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer; 10 import cn.iocoder.yudao.module.system.mq.producer.permission.PermissionProducer;
11 import cn.iocoder.yudao.module.system.service.dept.DeptService; 11 import cn.iocoder.yudao.module.system.service.dept.DeptService;
12 import cn.iocoder.yudao.framework.datapermission.core.dept.service.dto.DeptDataPermissionRespDTO; 12 import cn.iocoder.yudao.framework.datapermission.core.dept.service.dto.DeptDataPermissionRespDTO;
@@ -37,9 +37,9 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -37,9 +37,9 @@ public class PermissionServiceTest extends BaseDbUnitTest {
37 private PermissionServiceImpl permissionService; 37 private PermissionServiceImpl permissionService;
38 38
39 @Resource 39 @Resource
40 - private SysRoleMenuMapper roleMenuMapper; 40 + private RoleMenuMapper roleMenuMapper;
41 @Resource 41 @Resource
42 - private SysUserRoleMapper userRoleMapper; 42 + private UserRoleMapper userRoleMapper;
43 43
44 @MockBean 44 @MockBean
45 private RoleService roleService; 45 private RoleService roleService;
@@ -56,9 +56,9 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -56,9 +56,9 @@ public class PermissionServiceTest extends BaseDbUnitTest {
56 // 准备参数 56 // 准备参数
57 Long roleId = randomLongId(); 57 Long roleId = randomLongId();
58 // mock 数据 UserRole 58 // mock 数据 UserRole
59 - SysUserRoleDO userRoleDO01 = randomPojo(SysUserRoleDO.class, o -> o.setRoleId(roleId)); // 被删除 59 + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setRoleId(roleId)); // 被删除
60 userRoleMapper.insert(userRoleDO01); 60 userRoleMapper.insert(userRoleDO01);
61 - SysUserRoleDO userRoleDO02 = randomPojo(SysUserRoleDO.class); // 不被删除 61 + UserRoleDO userRoleDO02 = randomPojo(UserRoleDO.class); // 不被删除
62 userRoleMapper.insert(userRoleDO02); 62 userRoleMapper.insert(userRoleDO02);
63 // mock 数据 RoleMenu 63 // mock 数据 RoleMenu
64 RoleMenuDO roleMenuDO01 = randomPojo(RoleMenuDO.class, o -> o.setRoleId(roleId)); // 被删除 64 RoleMenuDO roleMenuDO01 = randomPojo(RoleMenuDO.class, o -> o.setRoleId(roleId)); // 被删除
@@ -73,7 +73,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -73,7 +73,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
73 assertEquals(1, dbRoleMenus.size()); 73 assertEquals(1, dbRoleMenus.size());
74 assertPojoEquals(dbRoleMenus.get(0), roleMenuDO02); 74 assertPojoEquals(dbRoleMenus.get(0), roleMenuDO02);
75 // 断言数据 UserRoleDO 75 // 断言数据 UserRoleDO
76 - List<SysUserRoleDO> dbUserRoles = userRoleMapper.selectList(); 76 + List<UserRoleDO> dbUserRoles = userRoleMapper.selectList();
77 assertEquals(1, dbUserRoles.size()); 77 assertEquals(1, dbUserRoles.size());
78 assertPojoEquals(dbUserRoles.get(0), userRoleDO02); 78 assertPojoEquals(dbUserRoles.get(0), userRoleDO02);
79 // 断言调用 79 // 断言调用
@@ -105,15 +105,15 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -105,15 +105,15 @@ public class PermissionServiceTest extends BaseDbUnitTest {
105 // 准备参数 105 // 准备参数
106 Long userId = randomLongId(); 106 Long userId = randomLongId();
107 // mock 数据 107 // mock 数据
108 - SysUserRoleDO userRoleDO01 = randomPojo(SysUserRoleDO.class, o -> o.setUserId(userId)); // 被删除 108 + UserRoleDO userRoleDO01 = randomPojo(UserRoleDO.class, o -> o.setUserId(userId)); // 被删除
109 userRoleMapper.insert(userRoleDO01); 109 userRoleMapper.insert(userRoleDO01);
110 - SysUserRoleDO userRoleDO02 = randomPojo(SysUserRoleDO.class); // 不被删除 110 + UserRoleDO userRoleDO02 = randomPojo(UserRoleDO.class); // 不被删除
111 userRoleMapper.insert(userRoleDO02); 111 userRoleMapper.insert(userRoleDO02);
112 112
113 // 调用 113 // 调用
114 permissionService.processUserDeleted(userId); 114 permissionService.processUserDeleted(userId);
115 // 断言数据 115 // 断言数据
116 - List<SysUserRoleDO> dbUserRoles = userRoleMapper.selectList(); 116 + List<UserRoleDO> dbUserRoles = userRoleMapper.selectList();
117 assertEquals(1, dbUserRoles.size()); 117 assertEquals(1, dbUserRoles.size());
118 assertPojoEquals(dbUserRoles.get(0), userRoleDO02); 118 assertPojoEquals(dbUserRoles.get(0), userRoleDO02);
119 } 119 }
@@ -137,7 +137,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -137,7 +137,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
137 // 准备参数 137 // 准备参数
138 LoginUser loginUser = randomPojo(LoginUser.class); 138 LoginUser loginUser = randomPojo(LoginUser.class);
139 // mock 方法 139 // mock 方法
140 - SysRoleDO roleDO = randomPojo(SysRoleDO.class, o -> o.setDataScope(DataScopeEnum.ALL.getScope())); 140 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.ALL.getScope()));
141 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO)); 141 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO));
142 142
143 // 调用 143 // 调用
@@ -154,7 +154,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -154,7 +154,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
154 // 准备参数 154 // 准备参数
155 LoginUser loginUser = randomPojo(LoginUser.class); 155 LoginUser loginUser = randomPojo(LoginUser.class);
156 // mock 方法 156 // mock 方法
157 - SysRoleDO roleDO = randomPojo(SysRoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_CUSTOM.getScope())); 157 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_CUSTOM.getScope()));
158 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO)); 158 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO));
159 159
160 // 调用 160 // 调用
@@ -173,7 +173,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -173,7 +173,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
173 // 准备参数 173 // 准备参数
174 LoginUser loginUser = randomPojo(LoginUser.class); 174 LoginUser loginUser = randomPojo(LoginUser.class);
175 // mock 方法 175 // mock 方法
176 - SysRoleDO roleDO = randomPojo(SysRoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_ONLY.getScope())); 176 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_ONLY.getScope()));
177 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO)); 177 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO));
178 178
179 // 调用 179 // 调用
@@ -191,7 +191,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -191,7 +191,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
191 // 准备参数 191 // 准备参数
192 LoginUser loginUser = randomPojo(LoginUser.class); 192 LoginUser loginUser = randomPojo(LoginUser.class);
193 // mock 方法(角色) 193 // mock 方法(角色)
194 - SysRoleDO roleDO = randomPojo(SysRoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_AND_CHILD.getScope())); 194 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.DEPT_AND_CHILD.getScope()));
195 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO)); 195 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO));
196 // mock 方法(部门) 196 // mock 方法(部门)
197 SysDeptDO deptDO = randomPojo(SysDeptDO.class); 197 SysDeptDO deptDO = randomPojo(SysDeptDO.class);
@@ -213,7 +213,7 @@ public class PermissionServiceTest extends BaseDbUnitTest { @@ -213,7 +213,7 @@ public class PermissionServiceTest extends BaseDbUnitTest {
213 // 准备参数 213 // 准备参数
214 LoginUser loginUser = randomPojo(LoginUser.class); 214 LoginUser loginUser = randomPojo(LoginUser.class);
215 // mock 方法 215 // mock 方法
216 - SysRoleDO roleDO = randomPojo(SysRoleDO.class, o -> o.setDataScope(DataScopeEnum.SELF.getScope())); 216 + RoleDO roleDO = randomPojo(RoleDO.class, o -> o.setDataScope(DataScopeEnum.SELF.getScope()));
217 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO)); 217 when(roleService.getRolesFromCache(same(loginUser.getRoleIds()))).thenReturn(singletonList(roleDO));
218 218
219 // 调用 219 // 调用
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/permission/RoleServiceTest.java
@@ -7,8 +7,8 @@ import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum; @@ -7,8 +7,8 @@ import cn.iocoder.yudao.framework.security.core.enums.DataScopeEnum;
7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCreateReqVO; 7 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleCreateReqVO;
8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; 8 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
9 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO; 9 import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RoleUpdateReqVO;
10 -import cn.iocoder.yudao.module.system.dal.dataobject.permission.SysRoleDO;  
11 -import cn.iocoder.yudao.module.system.dal.mysql.permission.SysRoleMapper; 10 +import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
  11 +import cn.iocoder.yudao.module.system.dal.mysql.permission.RoleMapper;
12 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum; 12 import cn.iocoder.yudao.module.system.enums.permission.RoleTypeEnum;
13 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer; 13 import cn.iocoder.yudao.module.system.mq.producer.permission.RoleProducer;
14 import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils; 14 import cn.iocoder.yudao.framework.common.util.spring.SpringAopUtils;
@@ -36,7 +36,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -36,7 +36,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
36 private RoleServiceImpl sysRoleService; 36 private RoleServiceImpl sysRoleService;
37 37
38 @Resource 38 @Resource
39 - private SysRoleMapper roleMapper; 39 + private RoleMapper roleMapper;
40 40
41 @MockBean 41 @MockBean
42 private PermissionService sysPermissionService; 42 private PermissionService sysPermissionService;
@@ -46,9 +46,9 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -46,9 +46,9 @@ public class RoleServiceTest extends BaseDbUnitTest {
46 46
47 @Test 47 @Test
48 public void testInitLocalCache_success() throws Exception { 48 public void testInitLocalCache_success() throws Exception {
49 - SysRoleDO roleDO1 = createRoleDO("role1", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL); 49 + RoleDO roleDO1 = createRoleDO("role1", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL);
50 roleMapper.insert(roleDO1); 50 roleMapper.insert(roleDO1);
51 - SysRoleDO roleDO2 = createRoleDO("role2", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL); 51 + RoleDO roleDO2 = createRoleDO("role2", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL);
52 roleMapper.insert(roleDO2); 52 roleMapper.insert(roleDO2);
53 53
54 //调用 54 //调用
@@ -58,7 +58,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -58,7 +58,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
58 //获取代理对象 58 //获取代理对象
59 RoleServiceImpl target = (RoleServiceImpl) SpringAopUtils.getTarget(sysRoleService); 59 RoleServiceImpl target = (RoleServiceImpl) SpringAopUtils.getTarget(sysRoleService);
60 60
61 - Map<Long, SysRoleDO> roleCache = (Map<Long, SysRoleDO>) BeanUtil.getFieldValue(target, "roleCache"); 61 + Map<Long, RoleDO> roleCache = (Map<Long, RoleDO>) BeanUtil.getFieldValue(target, "roleCache");
62 assertPojoEquals(roleDO1, roleCache.get(roleDO1.getId())); 62 assertPojoEquals(roleDO1, roleCache.get(roleDO1.getId()));
63 assertPojoEquals(roleDO2, roleCache.get(roleDO2.getId())); 63 assertPojoEquals(roleDO2, roleCache.get(roleDO2.getId()));
64 64
@@ -79,7 +79,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -79,7 +79,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
79 79
80 //断言 80 //断言
81 assertNotNull(roleId); 81 assertNotNull(roleId);
82 - SysRoleDO roleDO = roleMapper.selectById(roleId); 82 + RoleDO roleDO = roleMapper.selectById(roleId);
83 assertPojoEquals(reqVO, roleDO); 83 assertPojoEquals(reqVO, roleDO);
84 84
85 verify(sysRoleProducer).sendRoleRefreshMessage(); 85 verify(sysRoleProducer).sendRoleRefreshMessage();
@@ -87,7 +87,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -87,7 +87,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
87 87
88 @Test 88 @Test
89 public void testUpdateRole_success() { 89 public void testUpdateRole_success() {
90 - SysRoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL); 90 + RoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL);
91 roleMapper.insert(roleDO); 91 roleMapper.insert(roleDO);
92 Long roleId = roleDO.getId(); 92 Long roleId = roleDO.getId();
93 93
@@ -102,7 +102,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -102,7 +102,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
102 sysRoleService.updateRole(reqVO); 102 sysRoleService.updateRole(reqVO);
103 103
104 //断言 104 //断言
105 - SysRoleDO newRoleDO = roleMapper.selectById(roleId); 105 + RoleDO newRoleDO = roleMapper.selectById(roleId);
106 assertPojoEquals(reqVO, newRoleDO); 106 assertPojoEquals(reqVO, newRoleDO);
107 107
108 verify(sysRoleProducer).sendRoleRefreshMessage(); 108 verify(sysRoleProducer).sendRoleRefreshMessage();
@@ -110,7 +110,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -110,7 +110,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
110 110
111 @Test 111 @Test
112 public void testUpdateRoleStatus_success() { 112 public void testUpdateRoleStatus_success() {
113 - SysRoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, CommonStatusEnum.ENABLE.getStatus()); 113 + RoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, CommonStatusEnum.ENABLE.getStatus());
114 roleMapper.insert(roleDO); 114 roleMapper.insert(roleDO);
115 Long roleId = roleDO.getId(); 115 Long roleId = roleDO.getId();
116 116
@@ -118,7 +118,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -118,7 +118,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
118 sysRoleService.updateRoleStatus(roleId, CommonStatusEnum.DISABLE.getStatus()); 118 sysRoleService.updateRoleStatus(roleId, CommonStatusEnum.DISABLE.getStatus());
119 119
120 //断言 120 //断言
121 - SysRoleDO newRoleDO = roleMapper.selectById(roleId); 121 + RoleDO newRoleDO = roleMapper.selectById(roleId);
122 assertEquals(CommonStatusEnum.DISABLE.getStatus(), newRoleDO.getStatus()); 122 assertEquals(CommonStatusEnum.DISABLE.getStatus(), newRoleDO.getStatus());
123 123
124 verify(sysRoleProducer).sendRoleRefreshMessage(); 124 verify(sysRoleProducer).sendRoleRefreshMessage();
@@ -126,7 +126,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -126,7 +126,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
126 126
127 @Test 127 @Test
128 public void testUpdateRoleDataScope_success() { 128 public void testUpdateRoleDataScope_success() {
129 - SysRoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL); 129 + RoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL);
130 roleMapper.insert(roleDO); 130 roleMapper.insert(roleDO);
131 Long roleId = roleDO.getId(); 131 Long roleId = roleDO.getId();
132 132
@@ -135,7 +135,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -135,7 +135,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
135 sysRoleService.updateRoleDataScope(roleId, DataScopeEnum.DEPT_CUSTOM.getScope(), deptIdSet); 135 sysRoleService.updateRoleDataScope(roleId, DataScopeEnum.DEPT_CUSTOM.getScope(), deptIdSet);
136 136
137 //断言 137 //断言
138 - SysRoleDO newRoleDO = roleMapper.selectById(roleId); 138 + RoleDO newRoleDO = roleMapper.selectById(roleId);
139 assertEquals(DataScopeEnum.DEPT_CUSTOM.getScope(), newRoleDO.getDataScope()); 139 assertEquals(DataScopeEnum.DEPT_CUSTOM.getScope(), newRoleDO.getDataScope());
140 140
141 Set<Long> newDeptIdSet = newRoleDO.getDataScopeDeptIds(); 141 Set<Long> newDeptIdSet = newRoleDO.getDataScopeDeptIds();
@@ -147,7 +147,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -147,7 +147,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
147 147
148 @Test 148 @Test
149 public void testDeleteRole_success() { 149 public void testDeleteRole_success() {
150 - SysRoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL); 150 + RoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL);
151 roleMapper.insert(roleDO); 151 roleMapper.insert(roleDO);
152 Long roleId = roleDO.getId(); 152 Long roleId = roleDO.getId();
153 153
@@ -155,7 +155,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -155,7 +155,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
155 sysRoleService.deleteRole(roleId); 155 sysRoleService.deleteRole(roleId);
156 156
157 //断言 157 //断言
158 - SysRoleDO newRoleDO = roleMapper.selectById(roleId); 158 + RoleDO newRoleDO = roleMapper.selectById(roleId);
159 assertNull(newRoleDO); 159 assertNull(newRoleDO);
160 160
161 verify(sysRoleProducer).sendRoleRefreshMessage(); 161 verify(sysRoleProducer).sendRoleRefreshMessage();
@@ -163,22 +163,22 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -163,22 +163,22 @@ public class RoleServiceTest extends BaseDbUnitTest {
163 163
164 @Test 164 @Test
165 public void testGetRoles_success() { 165 public void testGetRoles_success() {
166 - Map<Long, SysRoleDO> idRoleMap = new HashMap<>(); 166 + Map<Long, RoleDO> idRoleMap = new HashMap<>();
167 // 验证查询状态为1的角色 167 // 验证查询状态为1的角色
168 - SysRoleDO roleDO1 = createRoleDO("role1", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 1); 168 + RoleDO roleDO1 = createRoleDO("role1", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 1);
169 roleMapper.insert(roleDO1); 169 roleMapper.insert(roleDO1);
170 idRoleMap.put(roleDO1.getId(), roleDO1); 170 idRoleMap.put(roleDO1.getId(), roleDO1);
171 171
172 - SysRoleDO roleDO2 = createRoleDO("role2", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 1); 172 + RoleDO roleDO2 = createRoleDO("role2", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 1);
173 roleMapper.insert(roleDO2); 173 roleMapper.insert(roleDO2);
174 idRoleMap.put(roleDO2.getId(), roleDO2); 174 idRoleMap.put(roleDO2.getId(), roleDO2);
175 175
176 // 以下是排除的角色 176 // 以下是排除的角色
177 - SysRoleDO roleDO3 = createRoleDO("role3", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 2); 177 + RoleDO roleDO3 = createRoleDO("role3", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 2);
178 roleMapper.insert(roleDO3); 178 roleMapper.insert(roleDO3);
179 179
180 //调用 180 //调用
181 - List<SysRoleDO> roles = sysRoleService.getRoles(Arrays.asList(1)); 181 + List<RoleDO> roles = sysRoleService.getRoles(Arrays.asList(1));
182 182
183 //断言 183 //断言
184 assertEquals(2, roles.size()); 184 assertEquals(2, roles.size());
@@ -188,10 +188,10 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -188,10 +188,10 @@ public class RoleServiceTest extends BaseDbUnitTest {
188 188
189 @Test 189 @Test
190 public void testGetRolePage_success() { 190 public void testGetRolePage_success() {
191 - Map<Long, SysRoleDO> idRoleMap = new HashMap<>(); 191 + Map<Long, RoleDO> idRoleMap = new HashMap<>();
192 // 验证名称包含"role", 状态为1,code为"code"的角色 192 // 验证名称包含"role", 状态为1,code为"code"的角色
193 // 第一页 193 // 第一页
194 - SysRoleDO roleDO = createRoleDO("role1", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 1, "code"); 194 + RoleDO roleDO = createRoleDO("role1", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL, 1, "code");
195 roleMapper.insert(roleDO); 195 roleMapper.insert(roleDO);
196 idRoleMap.put(roleDO.getId(), roleDO); 196 idRoleMap.put(roleDO.getId(), roleDO);
197 // 第二页 197 // 第二页
@@ -214,7 +214,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -214,7 +214,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
214 o.setBeginTime(null); 214 o.setBeginTime(null);
215 o.setEndTime(null); 215 o.setEndTime(null);
216 }); 216 });
217 - PageResult<SysRoleDO> result = sysRoleService.getRolePage(reqVO); 217 + PageResult<RoleDO> result = sysRoleService.getRolePage(reqVO);
218 assertEquals(2, result.getTotal()); 218 assertEquals(2, result.getTotal());
219 result.getList().stream().forEach(r -> assertPojoEquals(idRoleMap.get(r.getId()), r)); 219 result.getList().stream().forEach(r -> assertPojoEquals(idRoleMap.get(r.getId()), r));
220 } 220 }
@@ -226,7 +226,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -226,7 +226,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
226 226
227 @Test 227 @Test
228 public void testCheckDuplicateRole_nameDuplicate() { 228 public void testCheckDuplicateRole_nameDuplicate() {
229 - SysRoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL); 229 + RoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL);
230 roleMapper.insert(roleDO); 230 roleMapper.insert(roleDO);
231 231
232 String duplicateName = "role_name"; 232 String duplicateName = "role_name";
@@ -236,7 +236,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -236,7 +236,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
236 236
237 @Test 237 @Test
238 public void testCheckDuplicateRole_codeDuplicate() { 238 public void testCheckDuplicateRole_codeDuplicate() {
239 - SysRoleDO roleDO = randomPojo(SysRoleDO.class, o -> { 239 + RoleDO roleDO = randomPojo(RoleDO.class, o -> {
240 o.setName("role_999"); 240 o.setName("role_999");
241 o.setCode("code"); 241 o.setCode("code");
242 o.setType(RoleTypeEnum.CUSTOM.getType()); 242 o.setType(RoleTypeEnum.CUSTOM.getType());
@@ -253,7 +253,7 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -253,7 +253,7 @@ public class RoleServiceTest extends BaseDbUnitTest {
253 253
254 @Test 254 @Test
255 public void testCheckUpdateRole_success() { 255 public void testCheckUpdateRole_success() {
256 - SysRoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL); 256 + RoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.CUSTOM, DataScopeEnum.ALL);
257 roleMapper.insert(roleDO); 257 roleMapper.insert(roleDO);
258 Long roleId = roleDO.getId(); 258 Long roleId = roleDO.getId();
259 259
@@ -267,27 +267,27 @@ public class RoleServiceTest extends BaseDbUnitTest { @@ -267,27 +267,27 @@ public class RoleServiceTest extends BaseDbUnitTest {
267 267
268 @Test 268 @Test
269 public void testCheckUpdateRole_systemRoleCanNotBeUpdate() { 269 public void testCheckUpdateRole_systemRoleCanNotBeUpdate() {
270 - SysRoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.SYSTEM, DataScopeEnum.ALL); 270 + RoleDO roleDO = createRoleDO("role_name", RoleTypeEnum.SYSTEM, DataScopeEnum.ALL);
271 roleMapper.insert(roleDO); 271 roleMapper.insert(roleDO);
272 Long roleId = roleDO.getId(); 272 Long roleId = roleDO.getId();
273 273
274 assertServiceException(() -> sysRoleService.checkUpdateRole(roleId), ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE); 274 assertServiceException(() -> sysRoleService.checkUpdateRole(roleId), ROLE_CAN_NOT_UPDATE_SYSTEM_TYPE_ROLE);
275 } 275 }
276 276
277 - private SysRoleDO createRoleDO(String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum, Integer status) { 277 + private RoleDO createRoleDO(String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum, Integer status) {
278 return createRoleDO( name, typeEnum, scopeEnum, status, randomString()); 278 return createRoleDO( name, typeEnum, scopeEnum, status, randomString());
279 } 279 }
280 280
281 - private SysRoleDO createRoleDO(String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum, Integer status, String code) { 281 + private RoleDO createRoleDO(String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum, Integer status, String code) {
282 return createRoleDO(null, name, typeEnum, scopeEnum, status, code); 282 return createRoleDO(null, name, typeEnum, scopeEnum, status, code);
283 } 283 }
284 284
285 - private SysRoleDO createRoleDO(String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum) { 285 + private RoleDO createRoleDO(String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum) {
286 return createRoleDO(null, name, typeEnum, scopeEnum, randomCommonStatus(), randomString()); 286 return createRoleDO(null, name, typeEnum, scopeEnum, randomCommonStatus(), randomString());
287 } 287 }
288 288
289 - private SysRoleDO createRoleDO(Long id, String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum, Integer status, String code) {  
290 - SysRoleDO roleDO = randomPojo(SysRoleDO.class, o -> { 289 + private RoleDO createRoleDO(Long id, String name, RoleTypeEnum typeEnum, DataScopeEnum scopeEnum, Integer status, String code) {
  290 + RoleDO roleDO = randomPojo(RoleDO.class, o -> {
291 o.setId(id); 291 o.setId(id);
292 o.setName(name); 292 o.setName(name);
293 o.setType(typeEnum.getType()); 293 o.setType(typeEnum.getType());
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsChannelServiceTest.java
@@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil; @@ -4,7 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelCreateReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelPageReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.channel.SmsChannelUpdateReqVO;
7 -import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsChannelMapper; 7 +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsChannelMapper;
8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
9 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
10 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 10 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
@@ -39,7 +39,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest { @@ -39,7 +39,7 @@ public class SmsChannelServiceTest extends BaseDbUnitTest {
39 private SmsChannelServiceImpl smsChannelService; 39 private SmsChannelServiceImpl smsChannelService;
40 40
41 @Resource 41 @Resource
42 - private SysSmsChannelMapper smsChannelMapper; 42 + private SmsChannelMapper smsChannelMapper;
43 43
44 @MockBean 44 @MockBean
45 private SmsClientFactory smsClientFactory; 45 private SmsClientFactory smsClientFactory;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsLogServiceTest.java
@@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult; @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogExportReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO;
7 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; 7 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
8 -import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsLogMapper; 8 +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsLogMapper;
9 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsLogDO;
10 import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum; 10 import cn.iocoder.yudao.module.system.enums.sms.SysSmsReceiveStatusEnum;
11 import cn.iocoder.yudao.module.system.enums.sms.SysSmsSendStatusEnum; 11 import cn.iocoder.yudao.module.system.enums.sms.SysSmsSendStatusEnum;
@@ -39,7 +39,7 @@ public class SmsLogServiceTest extends BaseDbUnitTest { @@ -39,7 +39,7 @@ public class SmsLogServiceTest extends BaseDbUnitTest {
39 private SmsLogServiceImpl smsLogService; 39 private SmsLogServiceImpl smsLogService;
40 40
41 @Resource 41 @Resource
42 - private SysSmsLogMapper smsLogMapper; 42 + private SmsLogMapper smsLogMapper;
43 43
44 @Test 44 @Test
45 public void testGetSmsLogPage() { 45 public void testGetSmsLogPage() {
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SmsTemplateServiceTest.java
@@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla @@ -4,7 +4,7 @@ import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTempla
4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO; 4 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateExportReqVO;
5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO; 5 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplatePageReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO; 6 import cn.iocoder.yudao.module.system.controller.admin.sms.vo.template.SmsTemplateUpdateReqVO;
7 -import cn.iocoder.yudao.module.system.dal.mysql.sms.SysSmsTemplateMapper; 7 +import cn.iocoder.yudao.module.system.dal.mysql.sms.SmsTemplateMapper;
8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer; 8 import cn.iocoder.yudao.module.system.mq.producer.sms.SmsProducer;
9 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO; 9 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsChannelDO;
10 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO; 10 import cn.iocoder.yudao.module.system.dal.dataobject.sms.SysSmsTemplateDO;
@@ -49,7 +49,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest { @@ -49,7 +49,7 @@ public class SmsTemplateServiceTest extends BaseDbUnitTest {
49 private SmsTemplateServiceImpl smsTemplateService; 49 private SmsTemplateServiceImpl smsTemplateService;
50 50
51 @Resource 51 @Resource
52 - private SysSmsTemplateMapper smsTemplateMapper; 52 + private SmsTemplateMapper smsTemplateMapper;
53 53
54 @MockBean 54 @MockBean
55 private SmsChannelService smsChannelService; 55 private SmsChannelService smsChannelService;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/sms/SysSmsSendServiceTest.java
@@ -23,9 +23,9 @@ import java.util.List; @@ -23,9 +23,9 @@ import java.util.List;
23 import java.util.Map; 23 import java.util.Map;
24 24
25 import static cn.hutool.core.util.RandomUtil.randomEle; 25 import static cn.hutool.core.util.RandomUtil.randomEle;
26 -import static cn.iocoder.yudao.module.system.enums.SysErrorCodeConstants.*;  
27 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; 26 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
28 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; 27 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
  28 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
29 import static org.junit.jupiter.api.Assertions.assertEquals; 29 import static org.junit.jupiter.api.Assertions.assertEquals;
30 import static org.mockito.ArgumentMatchers.eq; 30 import static org.mockito.ArgumentMatchers.eq;
31 import static org.mockito.Mockito.*; 31 import static org.mockito.Mockito.*;
@@ -33,7 +33,7 @@ import static org.mockito.Mockito.*; @@ -33,7 +33,7 @@ import static org.mockito.Mockito.*;
33 public class SysSmsSendServiceTest extends BaseMockitoUnitTest { 33 public class SysSmsSendServiceTest extends BaseMockitoUnitTest {
34 34
35 @InjectMocks 35 @InjectMocks
36 - private SysSmsSendServiceImpl smsService; 36 + private SmsSendServiceImpl smsService;
37 37
38 @Mock 38 @Mock
39 private SmsTemplateService smsTemplateService; 39 private SmsTemplateService smsTemplateService;
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUsererviceTest.java renamed to yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/social/SocialUserServiceTest.java
@@ -23,7 +23,7 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; @@ -23,7 +23,7 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
23 import static org.junit.jupiter.api.Assertions.assertEquals; 23 import static org.junit.jupiter.api.Assertions.assertEquals;
24 24
25 @Import({SocialUserServiceImpl.class, SocialAuthUserRedisDAO.class}) 25 @Import({SocialUserServiceImpl.class, SocialAuthUserRedisDAO.class})
26 -public class SocialUsererviceTest extends BaseDbAndRedisUnitTest { 26 +public class SocialUserServiceTest extends BaseDbAndRedisUnitTest {
27 27
28 @Resource 28 @Resource
29 private SocialUserServiceImpl socialService; 29 private SocialUserServiceImpl socialService;
@@ -47,7 +47,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest { @@ -47,7 +47,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest {
47 // mock 方法 47 // mock 方法
48 48
49 // 调用 49 // 调用
50 - socialService.bindSocialUser(userId, type, authUser, UserTypeEnum.ADMIN); 50 + socialService.bindSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, authUser);
51 // 断言 51 // 断言
52 List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); 52 List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId);
53 assertEquals(1, socialUsers.size()); 53 assertEquals(1, socialUsers.size());
@@ -72,7 +72,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest { @@ -72,7 +72,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest {
72 // mock 方法 72 // mock 方法
73 73
74 // 调用 74 // 调用
75 - socialService.bindSocialUser(userId, type, authUser, UserTypeEnum.ADMIN); 75 + socialService.bindSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, authUser);
76 // 断言 76 // 断言
77 List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); 77 List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId);
78 assertEquals(1, socialUsers.size()); 78 assertEquals(1, socialUsers.size());
@@ -97,7 +97,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest { @@ -97,7 +97,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest {
97 // mock 方法 97 // mock 方法
98 98
99 // 调用 99 // 调用
100 - socialService.bindSocialUser(userId, type, authUser, UserTypeEnum.ADMIN); 100 + socialService.bindSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, authUser);
101 // 断言 101 // 断言
102 List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId); 102 List<SysSocialUserDO> socialUsers = socialUserMapper.selectList("user_id", userId);
103 assertEquals(1, socialUsers.size()); 103 assertEquals(1, socialUsers.size());
@@ -134,7 +134,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest { @@ -134,7 +134,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest {
134 String newUnionId = oldSocialUser.getUnionId(); 134 String newUnionId = oldSocialUser.getUnionId();
135 135
136 // 调用 136 // 调用
137 - socialService.unbindOldSocialUser(userId, type, newUnionId, UserTypeEnum.ADMIN); 137 + socialService.unbindOldSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, newUnionId);
138 // 断言 138 // 断言
139 assertEquals(1L, socialUserMapper.selectCount(null).longValue()); 139 assertEquals(1L, socialUserMapper.selectCount(null).longValue());
140 } 140 }
@@ -157,7 +157,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest { @@ -157,7 +157,7 @@ public class SocialUsererviceTest extends BaseDbAndRedisUnitTest {
157 String newUnionId = randomString(10); 157 String newUnionId = randomString(10);
158 158
159 // 调用 159 // 调用
160 - socialService.unbindOldSocialUser(userId, type, newUnionId, UserTypeEnum.ADMIN); 160 + socialService.unbindOldSocialUser(userId, UserTypeEnum.ADMIN.getValue(), type, newUnionId);
161 // 断言 161 // 断言
162 assertEquals(0L, socialUserMapper.selectCount(null).longValue()); 162 assertEquals(0L, socialUserMapper.selectCount(null).longValue());
163 } 163 }
yudao-module-system/yudao-module-system-impl/src/test/java/cn/iocoder/yudao/module/system/service/user/UserServiceImplTest.java
1 package cn.iocoder.yudao.module.system.service.user; 1 package cn.iocoder.yudao.module.system.service.user;
2 2
3 -import cn.hutool.core.collection.CollUtil;  
4 import cn.hutool.core.util.RandomUtil; 3 import cn.hutool.core.util.RandomUtil;
  4 +import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;
  5 +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  7 +import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
  8 +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
  9 +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
5 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO; 10 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdatePasswordReqVO;
6 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO; 11 import cn.iocoder.yudao.module.system.controller.admin.user.vo.profile.UserProfileUpdateReqVO;
7 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*; 12 import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.*;
8 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO; 13 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysDeptDO;
9 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO; 14 import cn.iocoder.yudao.module.system.dal.dataobject.dept.SysPostDO;
10 -import cn.iocoder.yudao.module.system.dal.mysql.user.UserMapper; 15 +import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
  16 +import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
  17 +import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;
11 import cn.iocoder.yudao.module.system.service.dept.DeptService; 18 import cn.iocoder.yudao.module.system.service.dept.DeptService;
12 import cn.iocoder.yudao.module.system.service.dept.PostService; 19 import cn.iocoder.yudao.module.system.service.dept.PostService;
13 import cn.iocoder.yudao.module.system.service.permission.PermissionService; 20 import cn.iocoder.yudao.module.system.service.permission.PermissionService;
14 -import cn.iocoder.yudao.coreservice.modules.infra.service.file.InfFileCoreService;  
15 -import cn.iocoder.yudao.module.system.dal.dataobject.user.UserDO;  
16 -import cn.iocoder.yudao.module.system.enums.common.SysSexEnum;  
17 -import cn.iocoder.yudao.module.system.service.dept.SysDeptCoreService;  
18 -import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;  
19 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
20 -import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;  
21 -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;  
22 -import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;  
23 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest; 21 import cn.iocoder.yudao.module.system.test.BaseDbUnitTest;
24 import org.junit.jupiter.api.Test; 22 import org.junit.jupiter.api.Test;
25 import org.mockito.stubbing.Answer; 23 import org.mockito.stubbing.Answer;
@@ -29,37 +27,35 @@ import org.springframework.security.crypto.password.PasswordEncoder; @@ -29,37 +27,35 @@ import org.springframework.security.crypto.password.PasswordEncoder;
29 27
30 import javax.annotation.Resource; 28 import javax.annotation.Resource;
31 import java.io.ByteArrayInputStream; 29 import java.io.ByteArrayInputStream;
32 -import java.util.*; 30 +import java.util.List;
33 import java.util.function.Consumer; 31 import java.util.function.Consumer;
34 32
35 import static cn.hutool.core.util.RandomUtil.randomBytes; 33 import static cn.hutool.core.util.RandomUtil.randomBytes;
36 import static cn.hutool.core.util.RandomUtil.randomEle; 34 import static cn.hutool.core.util.RandomUtil.randomEle;
37 -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;  
38 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime; 35 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.buildTime;
39 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals; 36 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertPojoEquals;
40 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException; 37 import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.assertServiceException;
41 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; 38 import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
  39 +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
42 import static org.assertj.core.util.Lists.newArrayList; 40 import static org.assertj.core.util.Lists.newArrayList;
43 import static org.junit.jupiter.api.Assertions.assertEquals; 41 import static org.junit.jupiter.api.Assertions.assertEquals;
44 import static org.junit.jupiter.api.Assertions.assertNull; 42 import static org.junit.jupiter.api.Assertions.assertNull;
45 import static org.mockito.ArgumentMatchers.*; 43 import static org.mockito.ArgumentMatchers.*;
46 import static org.mockito.Mockito.*; 44 import static org.mockito.Mockito.*;
47 45
48 -@Import(UserServiceImpl.class) 46 +@Import(AdminUserServiceImpl.class)
49 public class UserServiceImplTest extends BaseDbUnitTest { 47 public class UserServiceImplTest extends BaseDbUnitTest {
50 48
51 @Resource 49 @Resource
52 - private UserServiceImpl userService; 50 + private AdminUserServiceImpl userService;
53 51
54 @Resource 52 @Resource
55 - private UserMapper userMapper; 53 + private AdminUserMapper userMapper;
56 54
57 @MockBean 55 @MockBean
58 private DeptService deptService; 56 private DeptService deptService;
59 57
60 @MockBean 58 @MockBean
61 - private SysDeptCoreService deptCoreService;  
62 - @MockBean  
63 private PostService postService; 59 private PostService postService;
64 @MockBean 60 @MockBean
65 private PermissionService permissionService; 61 private PermissionService permissionService;
@@ -80,7 +76,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -80,7 +76,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
80 o.setId(reqVO.getDeptId()); 76 o.setId(reqVO.getDeptId());
81 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 77 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
82 }); 78 });
83 - when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept); 79 + when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
84 // mock postService 的方法 80 // mock postService 的方法
85 List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId -> 81 List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId ->
86 randomPojo(SysPostDO.class, o -> { 82 randomPojo(SysPostDO.class, o -> {
@@ -94,7 +90,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -94,7 +90,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
94 // 调用 90 // 调用
95 Long userId = userService.createUser(reqVO); 91 Long userId = userService.createUser(reqVO);
96 // 断言 92 // 断言
97 - UserDO user = userMapper.selectById(userId); 93 + AdminUserDO user = userMapper.selectById(userId);
98 assertPojoEquals(reqVO, user, "password"); 94 assertPojoEquals(reqVO, user, "password");
99 assertEquals("yudaoyuanma", user.getPassword()); 95 assertEquals("yudaoyuanma", user.getPassword());
100 assertEquals(CommonStatusEnum.ENABLE.getStatus(), user.getStatus()); 96 assertEquals(CommonStatusEnum.ENABLE.getStatus(), user.getStatus());
@@ -103,7 +99,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -103,7 +99,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
103 @Test 99 @Test
104 public void testUpdateUser_success() { 100 public void testUpdateUser_success() {
105 // mock 数据 101 // mock 数据
106 - UserDO dbUser = randomSysUserDO(); 102 + AdminUserDO dbUser = randomSysUserDO();
107 userMapper.insert(dbUser); 103 userMapper.insert(dbUser);
108 // 准备参数 104 // 准备参数
109 UserUpdateReqVO reqVO = randomPojo(UserUpdateReqVO.class, o -> { 105 UserUpdateReqVO reqVO = randomPojo(UserUpdateReqVO.class, o -> {
@@ -116,7 +112,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -116,7 +112,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
116 o.setId(reqVO.getDeptId()); 112 o.setId(reqVO.getDeptId());
117 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 113 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
118 }); 114 });
119 - when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept); 115 + when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
120 // mock postService 的方法 116 // mock postService 的方法
121 List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId -> 117 List<SysPostDO> posts = CollectionUtils.convertList(reqVO.getPostIds(), postId ->
122 randomPojo(SysPostDO.class, o -> { 118 randomPojo(SysPostDO.class, o -> {
@@ -128,14 +124,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -128,14 +124,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
128 // 调用 124 // 调用
129 userService.updateUser(reqVO); 125 userService.updateUser(reqVO);
130 // 断言 126 // 断言
131 - UserDO user = userMapper.selectById(reqVO.getId()); 127 + AdminUserDO user = userMapper.selectById(reqVO.getId());
132 assertPojoEquals(reqVO, user); 128 assertPojoEquals(reqVO, user);
133 } 129 }
134 130
135 @Test 131 @Test
136 public void testUpdateUserProfile_success() { 132 public void testUpdateUserProfile_success() {
137 // mock 数据 133 // mock 数据
138 - UserDO dbUser = randomSysUserDO(); 134 + AdminUserDO dbUser = randomSysUserDO();
139 userMapper.insert(dbUser); 135 userMapper.insert(dbUser);
140 // 准备参数 136 // 准备参数
141 Long userId = dbUser.getId(); 137 Long userId = dbUser.getId();
@@ -147,14 +143,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -147,14 +143,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
147 // 调用 143 // 调用
148 userService.updateUserProfile(userId, reqVO); 144 userService.updateUserProfile(userId, reqVO);
149 // 断言 145 // 断言
150 - UserDO user = userMapper.selectById(userId); 146 + AdminUserDO user = userMapper.selectById(userId);
151 assertPojoEquals(reqVO, user); 147 assertPojoEquals(reqVO, user);
152 } 148 }
153 149
154 @Test 150 @Test
155 public void testUpdateUserPassword_success() { 151 public void testUpdateUserPassword_success() {
156 // mock 数据 152 // mock 数据
157 - UserDO dbUser = randomSysUserDO(o -> o.setPassword("encode:yudao")); 153 + AdminUserDO dbUser = randomSysUserDO(o -> o.setPassword("encode:yudao"));
158 userMapper.insert(dbUser); 154 userMapper.insert(dbUser);
159 // 准备参数 155 // 准备参数
160 Long userId = dbUser.getId(); 156 Long userId = dbUser.getId();
@@ -170,14 +166,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -170,14 +166,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
170 // 调用 166 // 调用
171 userService.updateUserPassword(userId, reqVO); 167 userService.updateUserPassword(userId, reqVO);
172 // 断言 168 // 断言
173 - UserDO user = userMapper.selectById(userId); 169 + AdminUserDO user = userMapper.selectById(userId);
174 assertEquals("encode:yuanma", user.getPassword()); 170 assertEquals("encode:yuanma", user.getPassword());
175 } 171 }
176 172
177 @Test 173 @Test
178 public void testUpdateUserAvatar_success() { 174 public void testUpdateUserAvatar_success() {
179 // mock 数据 175 // mock 数据
180 - UserDO dbUser = randomSysUserDO(); 176 + AdminUserDO dbUser = randomSysUserDO();
181 userMapper.insert(dbUser); 177 userMapper.insert(dbUser);
182 // 准备参数 178 // 准备参数
183 Long userId = dbUser.getId(); 179 Long userId = dbUser.getId();
@@ -190,14 +186,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -190,14 +186,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
190 // 调用 186 // 调用
191 userService.updateUserAvatar(userId, avatarFile); 187 userService.updateUserAvatar(userId, avatarFile);
192 // 断言 188 // 断言
193 - UserDO user = userMapper.selectById(userId); 189 + AdminUserDO user = userMapper.selectById(userId);
194 assertEquals(avatar, user.getAvatar()); 190 assertEquals(avatar, user.getAvatar());
195 } 191 }
196 192
197 @Test 193 @Test
198 public void testUpdateUserPassword02_success() { 194 public void testUpdateUserPassword02_success() {
199 // mock 数据 195 // mock 数据
200 - UserDO dbUser = randomSysUserDO(); 196 + AdminUserDO dbUser = randomSysUserDO();
201 userMapper.insert(dbUser); 197 userMapper.insert(dbUser);
202 // 准备参数 198 // 准备参数
203 Long userId = dbUser.getId(); 199 Long userId = dbUser.getId();
@@ -209,14 +205,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -209,14 +205,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
209 // 调用 205 // 调用
210 userService.updateUserPassword(userId, password); 206 userService.updateUserPassword(userId, password);
211 // 断言 207 // 断言
212 - UserDO user = userMapper.selectById(userId); 208 + AdminUserDO user = userMapper.selectById(userId);
213 assertEquals("encode:" + password, user.getPassword()); 209 assertEquals("encode:" + password, user.getPassword());
214 } 210 }
215 211
216 @Test 212 @Test
217 public void testUpdateUserStatus() { 213 public void testUpdateUserStatus() {
218 // mock 数据 214 // mock 数据
219 - UserDO dbUser = randomSysUserDO(); 215 + AdminUserDO dbUser = randomSysUserDO();
220 userMapper.insert(dbUser); 216 userMapper.insert(dbUser);
221 // 准备参数 217 // 准备参数
222 Long userId = dbUser.getId(); 218 Long userId = dbUser.getId();
@@ -225,14 +221,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -225,14 +221,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
225 // 调用 221 // 调用
226 userService.updateUserStatus(userId, status); 222 userService.updateUserStatus(userId, status);
227 // 断言 223 // 断言
228 - UserDO user = userMapper.selectById(userId); 224 + AdminUserDO user = userMapper.selectById(userId);
229 assertEquals(status, user.getStatus()); 225 assertEquals(status, user.getStatus());
230 } 226 }
231 227
232 @Test 228 @Test
233 public void testDeleteUser_success(){ 229 public void testDeleteUser_success(){
234 // mock 数据 230 // mock 数据
235 - UserDO dbUser = randomSysUserDO(); 231 + AdminUserDO dbUser = randomSysUserDO();
236 userMapper.insert(dbUser); 232 userMapper.insert(dbUser);
237 // 准备参数 233 // 准备参数
238 Long userId = dbUser.getId(); 234 Long userId = dbUser.getId();
@@ -248,7 +244,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -248,7 +244,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
248 @Test 244 @Test
249 public void testGetUserPage() { 245 public void testGetUserPage() {
250 // mock 数据 246 // mock 数据
251 - UserDO dbUser = initGetUserPageData(); 247 + AdminUserDO dbUser = initGetUserPageData();
252 // 准备参数 248 // 准备参数
253 UserPageReqVO reqVO = new UserPageReqVO(); 249 UserPageReqVO reqVO = new UserPageReqVO();
254 reqVO.setUsername("yudao"); 250 reqVO.setUsername("yudao");
@@ -262,7 +258,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -262,7 +258,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
262 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); 258 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList);
263 259
264 // 调用 260 // 调用
265 - PageResult<UserDO> pageResult = userService.getUserPage(reqVO); 261 + PageResult<AdminUserDO> pageResult = userService.getUserPage(reqVO);
266 // 断言 262 // 断言
267 assertEquals(1, pageResult.getTotal()); 263 assertEquals(1, pageResult.getTotal());
268 assertEquals(1, pageResult.getList().size()); 264 assertEquals(1, pageResult.getList().size());
@@ -272,7 +268,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -272,7 +268,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
272 @Test 268 @Test
273 public void testGetUsers() { 269 public void testGetUsers() {
274 // mock 数据 270 // mock 数据
275 - UserDO dbUser = initGetUserPageData(); 271 + AdminUserDO dbUser = initGetUserPageData();
276 // 准备参数 272 // 准备参数
277 UserExportReqVO reqVO = new UserExportReqVO(); 273 UserExportReqVO reqVO = new UserExportReqVO();
278 reqVO.setUsername("yudao"); 274 reqVO.setUsername("yudao");
@@ -286,7 +282,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -286,7 +282,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
286 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList); 282 when(deptService.getDeptsByParentIdFromCache(eq(reqVO.getDeptId()), eq(true))).thenReturn(deptList);
287 283
288 // 调用 284 // 调用
289 - List<UserDO> list = userService.getUsers(reqVO); 285 + List<AdminUserDO> list = userService.getUsers(reqVO);
290 // 断言 286 // 断言
291 assertEquals(1, list.size()); 287 assertEquals(1, list.size());
292 assertPojoEquals(dbUser, list.get(0)); 288 assertPojoEquals(dbUser, list.get(0));
@@ -295,9 +291,9 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -295,9 +291,9 @@ public class UserServiceImplTest extends BaseDbUnitTest {
295 /** 291 /**
296 * 初始化 getUserPage 方法的测试数据 292 * 初始化 getUserPage 方法的测试数据
297 */ 293 */
298 - private UserDO initGetUserPageData() { 294 + private AdminUserDO initGetUserPageData() {
299 // mock 数据 295 // mock 数据
300 - UserDO dbUser = randomSysUserDO(o -> { // 等会查询到 296 + AdminUserDO dbUser = randomSysUserDO(o -> { // 等会查询到
301 o.setUsername("yudaoyuanma"); 297 o.setUsername("yudaoyuanma");
302 o.setMobile("15601691300"); 298 o.setMobile("15601691300");
303 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 299 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
@@ -351,7 +347,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -351,7 +347,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
351 o.setId(importUser.getDeptId()); 347 o.setId(importUser.getDeptId());
352 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 348 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
353 }); 349 });
354 - when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept); 350 + when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
355 // mock passwordEncoder 的方法 351 // mock passwordEncoder 的方法
356 when(passwordEncoder.encode(eq("yudaoyuanma"))).thenReturn("java"); 352 when(passwordEncoder.encode(eq("yudaoyuanma"))).thenReturn("java");
357 353
@@ -359,7 +355,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -359,7 +355,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
359 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true); 355 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true);
360 // 断言 356 // 断言
361 assertEquals(1, respVO.getCreateUsernames().size()); 357 assertEquals(1, respVO.getCreateUsernames().size());
362 - UserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0)); 358 + AdminUserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0));
363 assertPojoEquals(importUser, user); 359 assertPojoEquals(importUser, user);
364 assertEquals("java", user.getPassword()); 360 assertEquals("java", user.getPassword());
365 assertEquals(0, respVO.getUpdateUsernames().size()); 361 assertEquals(0, respVO.getUpdateUsernames().size());
@@ -372,7 +368,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -372,7 +368,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
372 @Test 368 @Test
373 public void testImportUsers_03() { 369 public void testImportUsers_03() {
374 // mock 数据 370 // mock 数据
375 - UserDO dbUser = randomSysUserDO(); 371 + AdminUserDO dbUser = randomSysUserDO();
376 userMapper.insert(dbUser); 372 userMapper.insert(dbUser);
377 // 准备参数 373 // 准备参数
378 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { 374 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
@@ -385,7 +381,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -385,7 +381,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
385 o.setId(importUser.getDeptId()); 381 o.setId(importUser.getDeptId());
386 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 382 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
387 }); 383 });
388 - when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept); 384 + when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
389 385
390 // 调用 386 // 调用
391 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), false); 387 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), false);
@@ -402,7 +398,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -402,7 +398,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
402 @Test 398 @Test
403 public void testImportUsers_04() { 399 public void testImportUsers_04() {
404 // mock 数据 400 // mock 数据
405 - UserDO dbUser = randomSysUserDO(); 401 + AdminUserDO dbUser = randomSysUserDO();
406 userMapper.insert(dbUser); 402 userMapper.insert(dbUser);
407 // 准备参数 403 // 准备参数
408 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> { 404 UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
@@ -415,14 +411,14 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -415,14 +411,14 @@ public class UserServiceImplTest extends BaseDbUnitTest {
415 o.setId(importUser.getDeptId()); 411 o.setId(importUser.getDeptId());
416 o.setStatus(CommonStatusEnum.ENABLE.getStatus()); 412 o.setStatus(CommonStatusEnum.ENABLE.getStatus());
417 }); 413 });
418 - when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept); 414 + when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
419 415
420 // 调用 416 // 调用
421 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true); 417 UserImportRespVO respVO = userService.importUsers(newArrayList(importUser), true);
422 // 断言 418 // 断言
423 assertEquals(0, respVO.getCreateUsernames().size()); 419 assertEquals(0, respVO.getCreateUsernames().size());
424 assertEquals(1, respVO.getUpdateUsernames().size()); 420 assertEquals(1, respVO.getUpdateUsernames().size());
425 - UserDO user = userMapper.selectByUsername(respVO.getUpdateUsernames().get(0)); 421 + AdminUserDO user = userMapper.selectByUsername(respVO.getUpdateUsernames().get(0));
426 assertPojoEquals(importUser, user); 422 assertPojoEquals(importUser, user);
427 assertEquals(0, respVO.getFailureUsernames().size()); 423 assertEquals(0, respVO.getFailureUsernames().size());
428 } 424 }
@@ -508,51 +504,6 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -508,51 +504,6 @@ public class UserServiceImplTest extends BaseDbUnitTest {
508 } 504 }
509 505
510 @Test 506 @Test
511 - public void testCheckDeptEnable_notFound() {  
512 - assertServiceException(() -> userService.checkDeptEnable(randomLongId()),  
513 - DEPT_NOT_FOUND);  
514 - }  
515 -  
516 - @Test  
517 - public void testCheckDeptEnable_notEnable() {  
518 - // 准备参数  
519 - Long deptId = randomLongId();  
520 - // mock deptService 的方法  
521 - SysDeptDO dept = randomPojo(SysDeptDO.class, o -> {  
522 - o.setId(deptId);  
523 - o.setStatus(CommonStatusEnum.DISABLE.getStatus());  
524 - });  
525 - when(deptCoreService.getDept(eq(dept.getId()))).thenReturn(dept);  
526 -  
527 - // 调用,校验异常  
528 - assertServiceException(() -> userService.checkDeptEnable(deptId),  
529 - DEPT_NOT_ENABLE);  
530 - }  
531 -  
532 - @Test  
533 - public void testCheckPostEnable_notFound() {  
534 - assertServiceException(() -> userService.checkPostEnable(randomSet(Long.class)),  
535 - POST_NOT_FOUND);  
536 - }  
537 -  
538 - @Test  
539 - public void testCheckPostEnable_notEnable() {  
540 - // 准备参数  
541 - Set<Long> postIds = randomSet(Long.class);  
542 - // mock postService 的方法  
543 - List<SysPostDO> posts = CollectionUtils.convertList(postIds, postId ->  
544 - randomPojo(SysPostDO.class, o -> {  
545 - o.setId(postId);  
546 - o.setStatus(CommonStatusEnum.DISABLE.getStatus());  
547 - }));  
548 - when(postService.getPosts(eq(postIds), isNull())).thenReturn(posts);  
549 -  
550 - // 调用,校验异常  
551 - assertServiceException(() -> userService.checkPostEnable(postIds),  
552 - POST_NOT_ENABLE, CollUtil.getFirst(posts).getName());  
553 - }  
554 -  
555 - @Test  
556 public void testCheckOldPassword_notExists() { 507 public void testCheckOldPassword_notExists() {
557 assertServiceException(() -> userService.checkOldPassword(randomLongId(), randomString()), 508 assertServiceException(() -> userService.checkOldPassword(randomLongId(), randomString()),
558 USER_NOT_EXISTS); 509 USER_NOT_EXISTS);
@@ -561,7 +512,7 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -561,7 +512,7 @@ public class UserServiceImplTest extends BaseDbUnitTest {
561 @Test 512 @Test
562 public void testCheckOldPassword_passwordFailed() { 513 public void testCheckOldPassword_passwordFailed() {
563 // mock 数据 514 // mock 数据
564 - UserDO user = randomSysUserDO(); 515 + AdminUserDO user = randomSysUserDO();
565 userMapper.insert(user); 516 userMapper.insert(user);
566 // 准备参数 517 // 准备参数
567 Long id = user.getId(); 518 Long id = user.getId();
@@ -594,12 +545,12 @@ public class UserServiceImplTest extends BaseDbUnitTest { @@ -594,12 +545,12 @@ public class UserServiceImplTest extends BaseDbUnitTest {
594 // ========== 随机对象 ========== 545 // ========== 随机对象 ==========
595 546
596 @SafeVarargs 547 @SafeVarargs
597 - private static UserDO randomSysUserDO(Consumer<UserDO>... consumers) {  
598 - Consumer<UserDO> consumer = (o) -> { 548 + private static AdminUserDO randomSysUserDO(Consumer<AdminUserDO>... consumers) {
  549 + Consumer<AdminUserDO> consumer = (o) -> {
599 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围 550 o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
600 o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围 551 o.setSex(randomEle(SysSexEnum.values()).getSex()); // 保证 sex 的范围
601 }; 552 };
602 - return randomPojo(UserDO.class, ArrayUtils.append(consumer, consumers)); 553 + return randomPojo(AdminUserDO.class, ArrayUtils.append(consumer, consumers));
603 } 554 }
604 555
605 } 556 }