diff --git a/bonus-common-biz/src/main/java/net/xnzn/api/SmsCodeApi.java b/bonus-common-biz/src/main/java/net/xnzn/api/SmsCodeApi.java index 4edf95b3..162c6885 100644 --- a/bonus-common-biz/src/main/java/net/xnzn/api/SmsCodeApi.java +++ b/bonus-common-biz/src/main/java/net/xnzn/api/SmsCodeApi.java @@ -1,6 +1,8 @@ package net.xnzn.api; import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson2.JSON; +import com.bonus.common.core.exception.ServiceException; import com.bonus.common.redis.service.RedisService; import net.xnzn.domain.SmsCodeVerifyDTO; import org.slf4j.Logger; @@ -8,6 +10,13 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.TimeUnit; + @Service public class SmsCodeApi { private static final Logger log = LoggerFactory.getLogger(SmsCodeApi.class); @@ -18,26 +27,26 @@ public class SmsCodeApi { // public void sendSmsCodePost(String telephoneNumber) { // this.sendSmsCodePost(telephoneNumber, "code_"); // } - +// // public void sendSmsCodePost(String telephoneNumber, String cacheKey) { // String limitKey = "limit_" + telephoneNumber; // LocalDateTime now = LocalDateTime.now(); // LocalDateTime endOfDay = now.with(LocalTime.MAX); // long expirTime = Math.max(1L, Duration.between(now, endOfDay).getSeconds()); // String lastSendTimeKey = "last_send_time_" + telephoneNumber; -// String lastSendTime = RedisUtil.getString(lastSendTimeKey); +// String lastSendTime = redisService.getCacheObject(lastSendTimeKey); // if (lastSendTime != null) { // long lastSendTimestamp = Long.parseLong(lastSendTime); // long currentTimestamp = System.currentTimeMillis(); // long timeElapsed = currentTimestamp - lastSendTimestamp; // if (timeElapsed < 60000L) { -// throw new LeException(I18n.getMessage("notice_verify_repeat_sms_code_exception", new Object[]{60})); +// throw new ServiceException("notice_verify_repeat_sms_code_exception"); // } // } // // Integer times = RedisUtil.incr(limitKey, expirTime); // if (times > 5) { -// throw new LeException(I18n.getMessage("notice_verify_limit_sms_code_time", new Object[0])); +// throw new ServiceException("notice_verify_limit_sms_code_time"); // } else { // int code = (int)((Math.random() * 9.0 + 1.0) * 100000.0); // String codeString = "" + code; @@ -45,16 +54,16 @@ public class SmsCodeApi { // maps.put("telephoneNumber", telephoneNumber); // maps.put("sendCode", codeString); // log.info("验证码发送code : {}", codeString); -// MqUtil.send(JSON.toJSONString(maps), LeMqConstant.Topic.NOTICE_VERIFICATION_CODE); +// //MqUtil.send(JSON.toJSONString(maps), LeMqConstant.Topic.NOTICE_VERIFICATION_CODE); // String key = cacheKey + telephoneNumber; -// RedisUtil.setString(key, codeString, 300L); -// RedisUtil.setString(lastSendTimeKey, String.valueOf(System.currentTimeMillis())); +// redisService.setCacheObject(key, codeString, 300L, TimeUnit.SECONDS); +// redisService.setCacheObject(lastSendTimeKey, String.valueOf(System.currentTimeMillis())); // } // } - public boolean verifySmsCode(SmsCodeVerifyDTO smsCodeVerifyDTO) { - return this.verifySmsCode(smsCodeVerifyDTO, "code_"); - } +// public boolean verifySmsCode(SmsCodeVerifyDTO smsCodeVerifyDTO) { +// return this.verifySmsCode(smsCodeVerifyDTO, "code_"); +// } public boolean verifySmsCode(SmsCodeVerifyDTO smsCodeVerifyDTO, String cacheKey) { String key = cacheKey + smsCodeVerifyDTO.getTelephoneNumber(); diff --git a/bonus-cust-auth/src/main/java/com/bonus/auth/controller/TokenController.java b/bonus-cust-auth/src/main/java/com/bonus/auth/controller/TokenController.java index 051cdd35..eb0627c9 100644 --- a/bonus-cust-auth/src/main/java/com/bonus/auth/controller/TokenController.java +++ b/bonus-cust-auth/src/main/java/com/bonus/auth/controller/TokenController.java @@ -2,6 +2,7 @@ package com.bonus.auth.controller; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.IdUtil; +import com.bonus.common.core.constant.CacheConstants; import net.xnzn.api.SmsCodeApi; import net.xnzn.constant.CustLoginTypeEnum; import net.xnzn.constant.DelFlagEnum; @@ -128,14 +129,10 @@ public class TokenController { SmsCodeVerifyDTO smsCodeVerifyDTO = new SmsCodeVerifyDTO(); smsCodeVerifyDTO.setCode(content.getCode()); smsCodeVerifyDTO.setTelephoneNumber(content.getMobile()); - boolean flag = this.smsCodeApi.verifySmsCode(smsCodeVerifyDTO); + boolean flag = this.smsCodeApi.verifySmsCode(smsCodeVerifyDTO, CacheConstants.VERIFICATION_CODE); if (!flag) { throw new ServiceException("验证码错误"); } -// R result = sysLoginService.getPhoneCode(content.getMobile(), content.getVerificationCodeType()); -// if (result.getCode() != 200) { -// throw new ServiceException("验证码错误"); -// } custInfo.setMobile(SM4EncryptUtils.sm4Encryptbyconfig(content.getMobile())); } else { if (!CustLoginTypeEnum.ID_CARD_PWD.key().equals(content.getLoginType())) { @@ -159,6 +156,13 @@ public class TokenController { } } + public static void main(String[] args) { + boolean flag = encoder.matches("abc", "$2a$10$UMNFdXSz5S1NQSDXv/B4L.iCTppSO1FFE4g6c4Mab.Z7VPWvGcLwG"); + String encodedStr = encoder.encode("abc"); + System.out.println(encodedStr); + System.out.println(flag); + } + public CustInfoAppIdLoginVO addOrUpdateCustCasual(Integer sourceType, CustInfoAppIdLoginVO result) { Long custId = result.getCustId(); CustCasual custCasual = this.custCasualMapper.selectCustCasualByCustId(custId, sourceType, DelFlagEnum.DEL_FALSE.key()); diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/customer/service/impl/CustInfoServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/customer/service/impl/CustInfoServiceImpl.java index e925add8..362ae462 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/customer/service/impl/CustInfoServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/net/xnzn/core/customer/service/impl/CustInfoServiceImpl.java @@ -1,6 +1,7 @@ package net.xnzn.core.customer.service.impl; import cn.hutool.core.util.ObjectUtil; +import com.bonus.common.core.constant.CacheConstants; import com.bonus.common.core.exception.ServiceException; import net.xnzn.api.SmsCodeApi; import net.xnzn.constant.RetCodeEnum; @@ -73,7 +74,7 @@ public class CustInfoServiceImpl implements CustInfoService { SmsCodeVerifyDTO smsCodeVerifyDTO = new SmsCodeVerifyDTO(); smsCodeVerifyDTO.setTelephoneNumber(content.getMobile()); smsCodeVerifyDTO.setCode(content.getCode()); - if (!this.smsCodeApi.verifySmsCode(smsCodeVerifyDTO)) { + if (!this.smsCodeApi.verifySmsCode(smsCodeVerifyDTO, CacheConstants.VERIFICATION_CODE)) { throw new ServiceException("验证码异常"); } else { CustInfo custInfoQuery = new CustInfo();