diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/util/JwtUtil.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/util/JwtUtil.java index dd90fb95..064c43b3 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/util/JwtUtil.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/util/JwtUtil.java @@ -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获取用户账号 * diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyManagerLoginController.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyManagerLoginController.java index c8cc9780..f288cd74 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyManagerLoginController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/CompanyManagerLoginController.java @@ -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); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayContactsManagementService.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayContactsManagementService.java index e1697aec..a9d448db 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayContactsManagementService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/service/IPayContactsManagementService.java @@ -79,4 +79,6 @@ public interface IPayContactsManagementService extends IService query = new LambdaQueryWrapper<>(); + query.eq(PayContactsManagement::getCompanyId,companyId); + query.eq(PayContactsManagement::getRoleCode,PayContactsManagementCommon.ROLE_CODE2); + PayContactsManagement payContactsManagement = baseMapper.selectOne(query); + return payContactsManagement; + } }