From 7b9da8227e4a1306350631d0e721efc4be90eedc Mon Sep 17 00:00:00 2001 From: lijiarao Date: Mon, 15 Aug 2022 17:45:46 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E4=BC=81=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jero/common/system/util/JwtUtil.java | 15 +++++++++++++++ .../controller/CompanyManagerLoginController.java | 13 ++++++++++++- .../service/IPayContactsManagementService.java | 2 ++ .../impl/PayContactsManagementServiceImpl.java | 10 ++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) 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; + } }