add 企业管理员登录

This commit is contained in:
lijiarao
2022-08-15 17:45:46 +08:00
parent d18476db78
commit 7b9da8227e
4 changed files with 39 additions and 1 deletions
@@ -79,6 +79,21 @@ public class JwtUtil {
}
/**
* 生成签名,5min后过期
*
* @param username 用户名
* @param secret 用户的密码
* @return 加密的token
*/
public static String signByCompanyManagement(String username,String phone, String secret) {
Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME);
Algorithm algorithm = Algorithm.HMAC256(secret);
// 附带username信息
return JWT.create().withClaim("username", username).withClaim("phone", phone).withExpiresAt(date).sign(algorithm);
}
/**
* 根据request中的token获取用户账号
*
@@ -12,8 +12,10 @@ import com.jero.common.system.util.JwtUtil;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.*;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.entity.PayManagerManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.company.service.IPayManagerManagementService;
import com.jero.company.vo.CompanyManagerLoginVO;
import com.jero.modules.base.service.BaseCommonService;
@@ -58,6 +60,8 @@ public class CompanyManagerLoginController {
private BaseCommonService baseCommonService;
@Value("${defaultPassword}")
private String defaultPassword;
@Autowired
private IPayContactsManagementService payContactsManagementService;
/**
* 密码登录错误的次数前缀
*/
@@ -312,8 +316,15 @@ public class CompanyManagerLoginController {
}else {
managerManagement.setCompanyRole(one.getRoleCode());
}
PayContactsManagement management = payContactsManagementService.getManagementByCompanyId(one.getId());
// 生成token
String token = JwtUtil.sign(LoginUserTypeEnum.company_management_ + phone, syspassword);
String token;
if (management == null) {
token = JwtUtil.sign(LoginUserTypeEnum.company_management_ + phone, syspassword);
}else {
token = JwtUtil.signByCompanyManagement(LoginUserTypeEnum.company_management_ + phone,management.getPhone(), syspassword);
}
// 设置token缓存有效时间
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + LoginUserTypeEnum.company_management_ + phone, token);
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + LoginUserTypeEnum.company_management_ + phone, JwtUtil.EXPIRE_TIME * 2 / 1000);
@@ -79,4 +79,6 @@ public interface IPayContactsManagementService extends IService<PayContactsManag
void changePassword(CompanyLoginVO companyLoginVO);
void changePasswordWithToken(CompanyLoginVO companyLoginVO);
PayContactsManagement getManagementByCompanyId(String companyId);
}
@@ -2,6 +2,7 @@ package com.jero.company.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -426,4 +427,13 @@ public class PayContactsManagementServiceImpl extends ServiceImpl<PayContactsMan
updatePassword(newPassword,verifyPassword,phone);
}
@Override
public PayContactsManagement getManagementByCompanyId(String companyId) {
LambdaQueryWrapper<PayContactsManagement> query = new LambdaQueryWrapper<>();
query.eq(PayContactsManagement::getCompanyId,companyId);
query.eq(PayContactsManagement::getRoleCode,PayContactsManagementCommon.ROLE_CODE2);
PayContactsManagement payContactsManagement = baseMapper.selectOne(query);
return payContactsManagement;
}
}