Explorar o código

fix短信验证校验

Eric hai 1 ano
pai
achega
9f0f77c155

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/SysMessageService.java

@@ -68,7 +68,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param mobileNOOrEmailAddr
 	 * @return
 	 */
-	public String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr);
+	String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr, String verifyCode);
 
 
 	/**

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SmsCodeServiceImpl.java

@@ -44,7 +44,9 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 		} else {
 			typeEnum  = MessageTypeEnum.SMS_VERIFY_CODE;
 		}
-		String verifyCode = sysMessageService.getSendedVerificationCode(typeEnum, mobile);
+		String verifyCode = sysMessageService.getSendedVerificationCode(typeEnum, mobile, authCode);
+
+		// 校验缓存中的验证码
 		if (StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode, authCode)) {
 			return true;
 		}

+ 12 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysMessageServiceImpl.java

@@ -303,10 +303,12 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		}
 
 		String key = getVerificationCodeCacheKey(messageType, receiver);
-		int code = DEFAULT_CODE;
+		// 生成验证码
+		int code = getRandomCode(messageType, receiver);
+		/*int code = DEFAULT_CODE;
 		if (debugMode == false && !authCode) {
 			code = getRandomCode(messageType, receiver);
-		}
+		}*/
 		Map<Long, String> receivers = new HashMap<>(1);
 		receivers.put(userId, receiver);
 		batchSendMessage(messageSender, messageType, receivers, null, 1, "","",platform, code);
@@ -316,10 +318,15 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr) {
-		if (debugMode == true) {
-			return DEFAULT_CODE + "";
+	public String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr, String verifyCode) {
+
+		// 本地调试模式
+		String defaultVerifyCode = DEFAULT_CODE + "";
+		if (debugMode == true && StringUtils.equalsIgnoreCase(verifyCode, defaultVerifyCode)) {
+			return defaultVerifyCode;
 		}
+
+		// 返回缓存中的验证码
 		String key = getVerificationCodeCacheKey(type, mobileNOOrEmailAddr);
 		Object object = redisCache.get(key);
 		return object == null ? null : object.toString();