Sfoglia il codice sorgente

加入邀请码被使用提示语

liyanbo 2 mesi fa
parent
commit
768e666016

+ 1 - 0
byzs-module-system/src/main/java/cn/iocoder/byzs/module/system/enums/ErrorCodeConstants.java

@@ -55,6 +55,7 @@ public interface ErrorCodeConstants {
     ErrorCode USER_MOBILE_NOT_EXISTS = new ErrorCode(1_002_003_010, "该手机号尚未注册");
     ErrorCode USER_REGISTER_DISABLED = new ErrorCode(1_002_003_011, "注册功能已关闭");
     ErrorCode USER_CODE_FAILURE = new ErrorCode(1_002_003_012, "邀请码校验失败");
+    ErrorCode USER_CODE_USED = new ErrorCode(1_002_003_013, "邀请码已被使用");
 
     // ========== 部门模块 1-002-004-000 ==========
     ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");

+ 1 - 2
byzs-module-system/src/main/java/cn/iocoder/byzs/module/system/service/invitecode/InviteCodeServiceImpl.java

@@ -152,8 +152,7 @@ public class InviteCodeServiceImpl implements InviteCodeService {
     @Override
     public InviteCodeDO getUnusedInviteCode(String inviteCode) {
         return inviteCodeMapper.selectOne(new LambdaQueryWrapper<InviteCodeDO>()
-                .eq(InviteCodeDO::getCode, inviteCode)
-                .eq(InviteCodeDO::getStatus, "0"));
+                .eq(InviteCodeDO::getCode, inviteCode));
     }
 
     @Override

+ 9 - 5
byzs-web/src/main/java/cn/iocoder/byzs/module/web/service/login/WebLoginServiceImpl.java

@@ -9,6 +9,7 @@ import cn.iocoder.byzs.module.system.controller.admin.userwebexpiretime.vo.UserW
 import cn.iocoder.byzs.module.system.dal.dataobject.dict.DictDataDO;
 import cn.iocoder.byzs.module.system.dal.dataobject.invitecode.InviteCodeDO;
 import cn.iocoder.byzs.module.system.dal.dataobject.permission.RoleDO;
+import cn.iocoder.byzs.module.system.dal.dataobject.user.AdminUserDO;
 import cn.iocoder.byzs.module.system.dal.dataobject.userwebexpiretime.UserWebExpireTimeDO;
 import cn.iocoder.byzs.module.system.service.auth.AdminAuthService;
 import cn.iocoder.byzs.module.system.service.dict.DictDataService;
@@ -31,6 +32,8 @@ import java.util.stream.Collectors;
 
 import static cn.iocoder.byzs.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.byzs.module.system.enums.ErrorCodeConstants.USER_CODE_FAILURE;
+import static cn.iocoder.byzs.module.system.enums.ErrorCodeConstants.USER_CODE_USED;
+
 @Service
 public class WebLoginServiceImpl {
     @Resource
@@ -48,8 +51,6 @@ public class WebLoginServiceImpl {
     @Resource
     private AdminAuthService authService;
 
-
-    @Transactional(rollbackFor = Exception.class)
     public Long register(WebRegisterVO registerVO) {
 
         //校验邀请码
@@ -57,6 +58,9 @@ public class WebLoginServiceImpl {
         if (inviteCode == null) {
             throw exception(USER_CODE_FAILURE);
         }
+        if(!"0".equals(inviteCode.getStatus())){
+            throw exception(USER_CODE_USED);
+        }
 
         // 注册
         AuthRegisterReqVO registerReqVo = new AuthRegisterReqVO();
@@ -65,8 +69,8 @@ public class WebLoginServiceImpl {
         AuthLoginRespVO register = authService.register(registerReqVo);
         Long userId = register.getUserId();
 
-        //租户id有问题
-//        AdminUserDO user = userService.getUser(userId);
+        //租户id
+        AdminUserDO user = userService.getUser(userId);
         Set<Long> roleIds = Arrays.stream(inviteCode.getRoleIds().split(","))
                 .map(s ->Long.parseLong(s.trim())).collect(Collectors.toSet());
         permissionService.assignUserRole(userId, roleIds);
@@ -75,7 +79,7 @@ public class WebLoginServiceImpl {
         inviteCodeService.updateInviteCode(new InviteCodeSaveReqVO()
                         .setId(inviteCode.getId())
                         .setUseUserId(userId)
-                        .setUseUserTenantId(null)
+                        .setUseUserTenantId(user.getTenantId())
                         .setUseTime(LocalDateTime.now())
                         .setExpireTime(LocalDateTime.now().plusDays(inviteCode.getValidTime()))
                         .setStatus("1"));

+ 4 - 1
byzs-web/src/main/java/cn/iocoder/byzs/module/web/service/user/WebUserInfoServiceImpl.java

@@ -33,6 +33,7 @@ import java.util.stream.Collectors;
 import static cn.iocoder.byzs.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.byzs.framework.common.util.collection.CollectionUtils.convertSet;
 import static cn.iocoder.byzs.module.system.enums.ErrorCodeConstants.USER_CODE_FAILURE;
+import static cn.iocoder.byzs.module.system.enums.ErrorCodeConstants.USER_CODE_USED;
 
 @Service
 public class WebUserInfoServiceImpl {
@@ -53,7 +54,6 @@ public class WebUserInfoServiceImpl {
     @Resource
     private UserRoleMapper userRoleMapper;
 
-
     @Transactional(rollbackFor = Exception.class)
     public Boolean activateInviteCode(String inviteCode) {
 
@@ -62,6 +62,9 @@ public class WebUserInfoServiceImpl {
         if (inviteCodeDo == null) {
             throw exception(USER_CODE_FAILURE);
         }
+        if(!"0".equals(inviteCodeDo.getStatus())){
+            throw exception(USER_CODE_USED);
+        }
         Set<Long> codeRoleIds = Arrays.stream(inviteCodeDo.getRoleIds().split(","))
                 .map(s ->Long.parseLong(s.trim())).collect(Collectors.toSet());