|
@@ -4,6 +4,7 @@ import cn.cslg.permission.common.core.base.RedisConf;
|
|
import cn.cslg.permission.common.core.business.LoginCacheKeyUtil;
|
|
import cn.cslg.permission.common.core.business.LoginCacheKeyUtil;
|
|
import cn.cslg.permission.common.core.business.SmsService;
|
|
import cn.cslg.permission.common.core.business.SmsService;
|
|
import cn.cslg.permission.common.model.dto.*;
|
|
import cn.cslg.permission.common.model.dto.*;
|
|
|
|
+import cn.cslg.permission.common.model.qiaobi.PersonVipMessVO;
|
|
import cn.cslg.permission.common.model.vo.*;
|
|
import cn.cslg.permission.common.model.vo.*;
|
|
import cn.cslg.permission.common.utils.*;
|
|
import cn.cslg.permission.common.utils.*;
|
|
import cn.cslg.permission.common.utils.message.MessageUtils;
|
|
import cn.cslg.permission.common.utils.message.MessageUtils;
|
|
@@ -13,15 +14,14 @@ import cn.cslg.permission.domain.associate.AssoPersonnelMachine;
|
|
import cn.cslg.permission.domain.qiaobi.AssoPersonVipType;
|
|
import cn.cslg.permission.domain.qiaobi.AssoPersonVipType;
|
|
import cn.cslg.permission.exception.ExceptionEnum;
|
|
import cn.cslg.permission.exception.ExceptionEnum;
|
|
import cn.cslg.permission.exception.XiaoShiException;
|
|
import cn.cslg.permission.exception.XiaoShiException;
|
|
-import cn.cslg.permission.mapper.FunctionMapper;
|
|
|
|
-import cn.cslg.permission.mapper.PersonInvitationCodeMapper;
|
|
|
|
-import cn.cslg.permission.mapper.PersonnelMapper;
|
|
|
|
|
|
+import cn.cslg.permission.mapper.*;
|
|
import cn.cslg.permission.mapper.associate.AssoFunctionModuleMapper;
|
|
import cn.cslg.permission.mapper.associate.AssoFunctionModuleMapper;
|
|
import cn.cslg.permission.mapper.associate.AssoPersonnelMachineMapper;
|
|
import cn.cslg.permission.mapper.associate.AssoPersonnelMachineMapper;
|
|
import cn.cslg.permission.mapper.qiaobi.AssoPersonVipTypeMapper;
|
|
import cn.cslg.permission.mapper.qiaobi.AssoPersonVipTypeMapper;
|
|
import cn.cslg.permission.service.associate.PerDpService;
|
|
import cn.cslg.permission.service.associate.PerDpService;
|
|
import cn.cslg.permission.service.associate.PersonRoleService;
|
|
import cn.cslg.permission.service.associate.PersonRoleService;
|
|
import cn.cslg.permission.service.associate.RoleFunctionDataService;
|
|
import cn.cslg.permission.service.associate.RoleFunctionDataService;
|
|
|
|
+import cn.cslg.permission.service.qiaobi.AssoPersonVipTypeService;
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
import cn.hutool.captcha.CaptchaUtil;
|
|
import cn.hutool.captcha.CaptchaUtil;
|
|
import cn.hutool.captcha.CircleCaptcha;
|
|
import cn.hutool.captcha.CircleCaptcha;
|
|
@@ -50,6 +50,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import java.lang.System;
|
|
import java.lang.System;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @author 沈永艺
|
|
* @author 沈永艺
|
|
@@ -74,7 +75,8 @@ public class LoginService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
private final HttpServletRequest request;
|
|
private final HttpServletRequest request;
|
|
private final RoleFunctionDataService roleFunctionDataService;
|
|
private final RoleFunctionDataService roleFunctionDataService;
|
|
private final FunctionService functionService;
|
|
private final FunctionService functionService;
|
|
- private final ApplicationService applicationService;
|
|
|
|
|
|
+ private final AssoPersonVipTypeService assoPersonVipTypeService;
|
|
|
|
+ private final AssoTenantVipTypeFunctionMapper assoTenantVipTypeFunctionMapper;
|
|
private final SmsService smsService;
|
|
private final SmsService smsService;
|
|
@Autowired
|
|
@Autowired
|
|
private PersonnelMapper personnelMapper;
|
|
private PersonnelMapper personnelMapper;
|
|
@@ -351,7 +353,7 @@ public class LoginService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
}
|
|
}
|
|
|
|
|
|
//校验登录时参数
|
|
//校验登录时参数
|
|
- public EncryptionLoginVO loginCommonMethod(LoginCommonDTO vo,Personnel personnel) throws Exception {
|
|
|
|
|
|
+ public EncryptionLoginVO loginCommonMethod(LoginCommonDTO vo, Personnel personnel) throws Exception {
|
|
Integer personnelId = personnel.getId();
|
|
Integer personnelId = personnel.getId();
|
|
List<AssoPersonVipType> personVipTypes = assoPersonVipTypeMapper.selectList(new LambdaQueryWrapper<AssoPersonVipType>()
|
|
List<AssoPersonVipType> personVipTypes = assoPersonVipTypeMapper.selectList(new LambdaQueryWrapper<AssoPersonVipType>()
|
|
.eq(AssoPersonVipType::getPersonId, personnelId));
|
|
.eq(AssoPersonVipType::getPersonId, personnelId));
|
|
@@ -400,6 +402,8 @@ public class LoginService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
//Sa-token 登录方法 登录后 生成Token 如果集成了Redis的话 会自动存入Redis
|
|
//Sa-token 登录方法 登录后 生成Token 如果集成了Redis的话 会自动存入Redis
|
|
StpUtil.login(personnel.getId());
|
|
StpUtil.login(personnel.getId());
|
|
loginVO.setToken(StpUtil.getTokenValue());
|
|
loginVO.setToken(StpUtil.getTokenValue());
|
|
|
|
+ PersonVipMessVO personVipMessVO = assoPersonVipTypeService.getPersonVipMessage(personnelId);
|
|
|
|
+ loginVO.setPersonVipMessVO(personVipMessVO);
|
|
return loginVO;
|
|
return loginVO;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -517,7 +521,8 @@ public class LoginService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
version = "1.0.0.0";
|
|
version = "1.0.0.0";
|
|
}
|
|
}
|
|
this.checkedRational(sign, appKey, vo.getCurrentTimeMillis());
|
|
this.checkedRational(sign, appKey, vo.getCurrentTimeMillis());
|
|
- Integer userId = StpUtil.getLoginIdAsInt();
|
|
|
|
|
|
+// Integer userId = StpUtil.getLoginIdAsInt();
|
|
|
|
+ Integer userId = 438;
|
|
Personnel personnel = this.getById(userId);
|
|
Personnel personnel = this.getById(userId);
|
|
if (ObjectUtils.isEmpty(personnel)) {
|
|
if (ObjectUtils.isEmpty(personnel)) {
|
|
return Response.error(ResponseEnum.THE_TOKEN_IS_INVALID);
|
|
return Response.error(ResponseEnum.THE_TOKEN_IS_INVALID);
|
|
@@ -528,8 +533,15 @@ public class LoginService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
List<EncryptionFunctionVO> functionVOS = new ArrayList<>();
|
|
List<EncryptionFunctionVO> functionVOS = new ArrayList<>();
|
|
|
|
|
|
List<String> permissions = new ArrayList<>();
|
|
List<String> permissions = new ArrayList<>();
|
|
- //1.获取该人员角色下权限id
|
|
|
|
- List<Integer> functionIds = roleFunctionDataService.getPermission(StpUtil.getLoginIdAsInt());
|
|
|
|
|
|
+ //1.获取该人员的权限id
|
|
|
|
+ List<Integer> functionIds = new ArrayList<>();
|
|
|
|
+ Integer vipId = assoPersonVipTypeService.getPersonVipId(personnel.getId());
|
|
|
|
+ if (vipId != null) {
|
|
|
|
+ List<AssoTenantVipTypeAndFunctionVO> vos = assoTenantVipTypeFunctionMapper.selectByTenantVipTypeId(vipId);
|
|
|
|
+ if (vos != null && vos.size() > 0) {
|
|
|
|
+ functionIds = vos.stream().map(AssoTenantVipTypeAndFunctionVO::getFunctionId).collect(Collectors.toList());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (!CollectionUtils.isEmpty(functionIds)) {
|
|
if (!CollectionUtils.isEmpty(functionIds)) {
|
|
//2.用IDList在功能表中查出对应功能信息
|
|
//2.用IDList在功能表中查出对应功能信息
|
|
List<Function> functionList = functionService.listByIds(functionIds);
|
|
List<Function> functionList = functionService.listByIds(functionIds);
|
|
@@ -559,6 +571,9 @@ public class LoginService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
|
|
|
|
private List<EncryptionFunctionVO> loadFunctionVOS(List<String> permissions, Integer type, String symmetryKey, String version) throws Exception {
|
|
private List<EncryptionFunctionVO> loadFunctionVOS(List<String> permissions, Integer type, String symmetryKey, String version) throws Exception {
|
|
List<EncryptionFunctionVO> functionVOS = new ArrayList<>();
|
|
List<EncryptionFunctionVO> functionVOS = new ArrayList<>();
|
|
|
|
+ if (permissions == null || permissions.size() <= 0) {
|
|
|
|
+ return functionVOS;
|
|
|
|
+ }
|
|
List<Function> functions = functionMapper.selectList(new LambdaQueryWrapper<Function>()
|
|
List<Function> functions = functionMapper.selectList(new LambdaQueryWrapper<Function>()
|
|
.in(Function::getFunctionPath, permissions));
|
|
.in(Function::getFunctionPath, permissions));
|
|
for (Function function : functions) {
|
|
for (Function function : functions) {
|
|
@@ -599,13 +614,13 @@ public class LoginService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
if (StringUtils.isNotEmpty(vo.getPhoneNum())) {
|
|
if (StringUtils.isNotEmpty(vo.getPhoneNum())) {
|
|
String code = redisUtil.get(LoginCacheKeyUtil.getLoginCaptcha(vo.getPhoneNum()));
|
|
String code = redisUtil.get(LoginCacheKeyUtil.getLoginCaptcha(vo.getPhoneNum()));
|
|
if (org.apache.commons.lang3.StringUtils.isNotEmpty(code)) {
|
|
if (org.apache.commons.lang3.StringUtils.isNotEmpty(code)) {
|
|
- throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "请在60秒后重新获取验证码");
|
|
|
|
|
|
+ redisUtil.delete(LoginCacheKeyUtil.getLoginCaptcha(vo.getPhoneNum()));
|
|
}
|
|
}
|
|
//生成验证码
|
|
//生成验证码
|
|
String random = RandomUtil.getSixRandom();
|
|
String random = RandomUtil.getSixRandom();
|
|
//手机号和验证码放进缓存 设置过期时间60s
|
|
//手机号和验证码放进缓存 设置过期时间60s
|
|
redisUtil.set(LoginCacheKeyUtil.getLoginCaptcha(vo.getPhoneNum()), random);
|
|
redisUtil.set(LoginCacheKeyUtil.getLoginCaptcha(vo.getPhoneNum()), random);
|
|
- redisUtil.expire(LoginCacheKeyUtil.getLoginCaptcha(vo.getPhoneNum()), 60L, TimeUnit.SECONDS);
|
|
|
|
|
|
+ redisUtil.expire(LoginCacheKeyUtil.getLoginCaptcha(vo.getPhoneNum()), 300L, TimeUnit.SECONDS);
|
|
//发送短信
|
|
//发送短信
|
|
smsService.sendMessage(vo.getPhoneNum(), random);
|
|
smsService.sendMessage(vo.getPhoneNum(), random);
|
|
res = "发送验证码成功";
|
|
res = "发送验证码成功";
|