From f450a785f4f311642225097f8911f67bcbbb57ad Mon Sep 17 00:00:00 2001 From: chen-xin-zhi <3588068430@qq.com> Date: Wed, 6 Aug 2025 10:47:58 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E8=B7=A8=E7=BA=A7?= =?UTF-8?q?=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../userInfo/impl/UserInfoServiceImpl.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java b/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java index 5b262ee..c817313 100644 --- a/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java +++ b/src/main/java/com/greenorange/promotion/service/userInfo/impl/UserInfoServiceImpl.java @@ -11,6 +11,7 @@ import com.greenorange.promotion.config.WxOpenConfig; import com.greenorange.promotion.constant.CommonConstant; import com.greenorange.promotion.constant.SystemConstant; import com.greenorange.promotion.constant.UserConstant; +import com.greenorange.promotion.exception.BusinessException; import com.greenorange.promotion.exception.ThrowUtils; import com.greenorange.promotion.mapper.UserInfoMapper; import com.greenorange.promotion.mapper.UserPerformanceSummaryMapper; @@ -170,6 +171,15 @@ public class UserInfoServiceImpl extends ServiceImpl // 根据邀请码获得上级用户信息 String invitationCode = userInfoRegisterRequest.getInvitationCode(); UserInfo parentUserInfo = getParentUserInfoByInvitationCode(invitationCode); + String parentUserRole = parentUserInfo.getUserRole(); + UserRoleEnum parentUserRoleEnum = UserRoleEnum.getEnumByValue(parentUserRole); + Map userRoleMap = new HashMap<>(); + userRoleMap.put(UserRoleEnum.USER, 1); + userRoleMap.put(UserRoleEnum.STAFF, 2); + userRoleMap.put(UserRoleEnum.SUPERVISOR, 3); + userRoleMap.put(UserRoleEnum.MANAGER, 4); + if (userRoleMap.get(parentUserRoleEnum) - userRoleMap.get(userRoleEnum) != 1 || UserRoleEnum.USER.equals(userRoleEnum) && UserRoleEnum.USER.equals(parentUserRoleEnum)) + throw new BusinessException(ErrorCode.OPERATION_ERROR, "邀请码错误"); // 保存用户 UserInfo myUserInfo = commonService.copyProperties(userInfoRegisterRequest, UserInfo.class); @@ -274,10 +284,12 @@ public class UserInfoServiceImpl extends ServiceImpl if (isInner) { // 获取token的过期时间 String sourceToken = userInfoResetRequest.getSourceToken(); - DecodedJWT decodedJWT = jwtUtils.verify(sourceToken); - long expirationTime = decodedJWT.getExpiresAt().getTime() - System.currentTimeMillis(); - // 将token存入Redis黑名单,并设置过期时间与token一致 - redisTemplate.opsForValue().set(sourceToken, sourceToken, expirationTime, TimeUnit.MILLISECONDS); + if (StringUtils.isNotBlank(sourceToken)) { + DecodedJWT decodedJWT = jwtUtils.verify(sourceToken); + long expirationTime = decodedJWT.getExpiresAt().getTime() - System.currentTimeMillis(); + // 将token存入Redis黑名单,并设置过期时间与token一致 + redisTemplate.opsForValue().set(sourceToken, sourceToken, expirationTime, TimeUnit.MILLISECONDS); + } } }