解决了跨级注册
This commit is contained in:
@ -11,6 +11,7 @@ import com.greenorange.promotion.config.WxOpenConfig;
|
|||||||
import com.greenorange.promotion.constant.CommonConstant;
|
import com.greenorange.promotion.constant.CommonConstant;
|
||||||
import com.greenorange.promotion.constant.SystemConstant;
|
import com.greenorange.promotion.constant.SystemConstant;
|
||||||
import com.greenorange.promotion.constant.UserConstant;
|
import com.greenorange.promotion.constant.UserConstant;
|
||||||
|
import com.greenorange.promotion.exception.BusinessException;
|
||||||
import com.greenorange.promotion.exception.ThrowUtils;
|
import com.greenorange.promotion.exception.ThrowUtils;
|
||||||
import com.greenorange.promotion.mapper.UserInfoMapper;
|
import com.greenorange.promotion.mapper.UserInfoMapper;
|
||||||
import com.greenorange.promotion.mapper.UserPerformanceSummaryMapper;
|
import com.greenorange.promotion.mapper.UserPerformanceSummaryMapper;
|
||||||
@ -170,6 +171,15 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
|||||||
// 根据邀请码获得上级用户信息
|
// 根据邀请码获得上级用户信息
|
||||||
String invitationCode = userInfoRegisterRequest.getInvitationCode();
|
String invitationCode = userInfoRegisterRequest.getInvitationCode();
|
||||||
UserInfo parentUserInfo = getParentUserInfoByInvitationCode(invitationCode);
|
UserInfo parentUserInfo = getParentUserInfoByInvitationCode(invitationCode);
|
||||||
|
String parentUserRole = parentUserInfo.getUserRole();
|
||||||
|
UserRoleEnum parentUserRoleEnum = UserRoleEnum.getEnumByValue(parentUserRole);
|
||||||
|
Map<UserRoleEnum, Integer> 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);
|
UserInfo myUserInfo = commonService.copyProperties(userInfoRegisterRequest, UserInfo.class);
|
||||||
@ -274,12 +284,14 @@ public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo>
|
|||||||
if (isInner) {
|
if (isInner) {
|
||||||
// 获取token的过期时间
|
// 获取token的过期时间
|
||||||
String sourceToken = userInfoResetRequest.getSourceToken();
|
String sourceToken = userInfoResetRequest.getSourceToken();
|
||||||
|
if (StringUtils.isNotBlank(sourceToken)) {
|
||||||
DecodedJWT decodedJWT = jwtUtils.verify(sourceToken);
|
DecodedJWT decodedJWT = jwtUtils.verify(sourceToken);
|
||||||
long expirationTime = decodedJWT.getExpiresAt().getTime() - System.currentTimeMillis();
|
long expirationTime = decodedJWT.getExpiresAt().getTime() - System.currentTimeMillis();
|
||||||
// 将token存入Redis黑名单,并设置过期时间与token一致
|
// 将token存入Redis黑名单,并设置过期时间与token一致
|
||||||
redisTemplate.opsForValue().set(sourceToken, sourceToken, expirationTime, TimeUnit.MILLISECONDS);
|
redisTemplate.opsForValue().set(sourceToken, sourceToken, expirationTime, TimeUnit.MILLISECONDS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user