Commit 8e9689a7 authored by 技术部-任文超's avatar 技术部-任文超

添加VCC短信验证码专用接口(6位数字)

parent 46d8187c
......@@ -10,6 +10,7 @@ import cn.quantgroup.xyqb.service.sms.ISmsService;
import cn.quantgroup.xyqb.util.DateUtils;
import cn.quantgroup.xyqb.util.IPUtil;
import cn.quantgroup.xyqb.util.ValidationUtil;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -32,7 +33,7 @@ import java.util.concurrent.TimeUnit;
public class SmsController implements IBaseController {
private static final Logger LOGGER = LoggerFactory.getLogger(SmsController.class);
private static final Random random = new Random();
private final static String RANDOM_CHARS = "0123456789";
private static final long EXPIRE_MINUTES = 10;
@Autowired
private ISmsService smsService;
......@@ -66,7 +67,8 @@ public class SmsController implements IBaseController {
@RequestParam(required = false, defaultValue = "") String appName,
@RequestParam(required = false) String smsMerchant) {
LOGGER.info("注册-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2(phoneNo, appName, smsMerchant);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2(phoneNo, randomCode, appName, smsMerchant);
}
/**
......@@ -85,7 +87,8 @@ public class SmsController implements IBaseController {
@RequestParam(required = false, defaultValue = "") String appName,
@RequestParam(required = false) String smsMerchant) {
LOGGER.info("重置密码-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2(phoneNo, appName, smsMerchant);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2(phoneNo, randomCode, appName, smsMerchant);
}
/**
......@@ -101,7 +104,8 @@ public class SmsController implements IBaseController {
return JsonResult.buildErrorStateResult("参数校验失败.", null);
}
LOGGER.info("注册-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2Voice(phoneNo, usage);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2Voice(phoneNo, randomCode, usage);
}
@CaptchaNewValidator
......@@ -113,7 +117,8 @@ public class SmsController implements IBaseController {
return JsonResult.buildErrorStateResult("参数校验失败.", null);
}
LOGGER.info("重置密码-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2Voice(phoneNo, usage);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2Voice(phoneNo, randomCode, usage);
}
/**
......@@ -128,7 +133,8 @@ public class SmsController implements IBaseController {
return JsonResult.buildErrorStateResult("参数校验失败.", null);
}
LOGGER.info("快速登陆-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2Voice(phoneNo, usage);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2Voice(phoneNo, randomCode, usage);
}
/**
......@@ -145,7 +151,8 @@ public class SmsController implements IBaseController {
@RequestParam(required = false, defaultValue = "") String appName,
@RequestParam(required = false) String smsMerchant) {
LOGGER.info("快速登陆-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2(phoneNo, appName, smsMerchant);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2(phoneNo, randomCode, appName, smsMerchant);
}
/**
......@@ -162,7 +169,8 @@ public class SmsController implements IBaseController {
@RequestParam(required = false, defaultValue = "") String appName,
@RequestParam(required = false) String smsMerchant) {
LOGGER.info("快速注册-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2(phoneNo, appName, smsMerchant);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2(phoneNo, randomCode, appName, smsMerchant);
}
/**
......@@ -173,7 +181,7 @@ public class SmsController implements IBaseController {
* @param smsMerchant - 短信模板/类型
* @return
*/
private JsonResult sendVerificationCode2(String phoneNo, String appName, String smsMerchant) {
private JsonResult sendVerificationCode2(String phoneNo, String randomCode, String appName, String smsMerchant) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return JsonResult.buildErrorStateResult("手机号格式有误", null);
}
......@@ -183,7 +191,6 @@ public class SmsController implements IBaseController {
if (expire >= EXPIRE_MINUTES - 1) {
return JsonResult.buildErrorStateResult("1分钟内不能重复获取验证码", null);
}
String randomCode = smsIsDebug ? "0000" : String.valueOf(random.nextInt(8999) + 1000);
String uniqueId = phoneNo + UUID.randomUUID().toString().replaceAll("-", "");
List<String> newList = new ArrayList<>();
newList.add(randomCode);
......@@ -211,7 +218,7 @@ public class SmsController implements IBaseController {
}
}
private JsonResult sendVerificationCode2Voice(String phoneNo, String usage) {
private JsonResult sendVerificationCode2Voice(String phoneNo, String randomCode, String usage) {
String verificationCountKey = Constants.REDIS_VOICE_CODE_COUNT + phoneNo;
Long getVerificationCount = redisTemplate.opsForHash().increment(verificationCountKey, usage, 1);
redisTemplate.expire(verificationCountKey, DateUtils.getSeconds(), TimeUnit.SECONDS);
......@@ -227,7 +234,6 @@ public class SmsController implements IBaseController {
if (expire >= EXPIRE_MINUTES - 1) {
return JsonResult.buildErrorStateResult("1分钟内不能重复获取验证码", null);
}
String randomCode = smsIsDebug ? "0000" : String.valueOf(random.nextInt(8999) + 1000);
String uniqueId = phoneNo + UUID.randomUUID().toString().replaceAll("-", "");
MsgParams message = new MsgParams(Collections.singletonList(4), phoneNo, "1", "4", Collections.singletonList(randomCode), uniqueId);
try {
......@@ -254,7 +260,8 @@ public class SmsController implements IBaseController {
}
LOGGER.info("快速登陆-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2VoiceNew(phoneNo, usage, deviceId);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2VoiceNew(phoneNo, randomCode, usage, deviceId);
}
/**
......@@ -274,7 +281,8 @@ public class SmsController implements IBaseController {
@RequestParam(required = false, defaultValue = "") String appName,
@RequestParam(required = false) String smsMerchant) {
LOGGER.info("快速登陆-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2New(phoneNo, deviceId, true, appName, smsMerchant);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2New(phoneNo, randomCode, deviceId, true, appName, smsMerchant);
}
/**
......@@ -294,7 +302,29 @@ public class SmsController implements IBaseController {
@RequestParam(required = false, defaultValue = "") String appName,
@RequestParam(required = false) String smsMerchant) {
LOGGER.info("快速登陆-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
return sendVerificationCode2New(phoneNo, deviceId, false, appName, smsMerchant);
String randomCode = smsIsDebug ? "0000" : RandomStringUtils.random(4, RANDOM_CHARS);
return sendVerificationCode2New(phoneNo, randomCode, deviceId, false, appName, smsMerchant);
}
/**
* VCC通用 - 发送短信验证码
*
* @param phoneNo - 手机号
* @param registerFrom -
* @param deviceId -
* @param appName -
* @param smsMerchant - 短信模板/类型
*/
@CaptchaNewValidator
@RequestMapping("/send_vcc_sms_code")
public JsonResult sendVccSmsCode(@RequestParam String phoneNo,
@RequestParam(required = false) String registerFrom,
@RequestParam(required = false) String deviceId,
@RequestParam(required = false, defaultValue = "") String appName,
@RequestParam(required = false) String smsMerchant) {
LOGGER.info("VCC-发送验证码, phoneNo:{}, registerFrom:{}", phoneNo, registerFrom);
String randomCode = smsIsDebug ? "000000" : RandomStringUtils.random(6, RANDOM_CHARS);
return sendVerificationCode2New(phoneNo, randomCode, deviceId, true, appName, smsMerchant);
}
/**
......@@ -307,7 +337,7 @@ public class SmsController implements IBaseController {
* @param smsMerchant - 短信模板/类型
* @return
*/
private JsonResult sendVerificationCode2New(String phoneNo, String deviceId, boolean isApp, String appName, String smsMerchant) {
private JsonResult sendVerificationCode2New(String phoneNo, String randomCode, String deviceId, boolean isApp, String appName, String smsMerchant) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return JsonResult.buildErrorStateResult("手机号格式有误", null);
}
......@@ -350,7 +380,6 @@ public class SmsController implements IBaseController {
LOGGER.info("sendVerificationCode2New1分钟内不能重复获取验证码:phoneNo:{},deviceId:{},ip:{}", phoneNo, deviceId, clientIp);
return JsonResult.buildErrorStateResult("1分钟内不能重复获取验证码", null);
}
String randomCode = smsIsDebug ? "0000" : String.valueOf(random.nextInt(8999) + 1000);
String uniqueId = phoneNo + UUID.randomUUID().toString().replaceAll("-", "");
List<String> newList = new ArrayList<>();
newList.add(randomCode);
......@@ -383,7 +412,7 @@ public class SmsController implements IBaseController {
/**
* 新版本语音验证码
*/
private JsonResult sendVerificationCode2VoiceNew(String phoneNo, String usage, String deviceId) {
private JsonResult sendVerificationCode2VoiceNew(String phoneNo, String randomCode, String usage, String deviceId) {
if (!ValidationUtil.validatePhoneNo(phoneNo)) {
return JsonResult.buildErrorStateResult("手机号格式有误", null);
}
......@@ -431,7 +460,6 @@ public class SmsController implements IBaseController {
if (expire >= EXPIRE_MINUTES - 1) {
return JsonResult.buildErrorStateResult("1分钟内不能重复获取验证码", null);
}
String randomCode = smsIsDebug ? "0000" : String.valueOf(random.nextInt(8999) + 1000);
String uniqueId = phoneNo + UUID.randomUUID().toString().replaceAll("-", "");
MsgParams message = new MsgParams(Collections.singletonList(4), phoneNo, "1", "4", Collections.singletonList(randomCode), uniqueId);
try {
......
......@@ -2,12 +2,14 @@ package common;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.UUID;
import java.util.stream.Collectors;
import cn.quantgroup.xyqb.Constants;
import cn.quantgroup.xyqb.util.AESUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.RandomStringUtils;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
......@@ -18,6 +20,7 @@ import cn.quantgroup.xyqb.util.ValidationUtil;
@Slf4j
@RunWith(JUnit4.class)
public class TestJdk8 {
final static String RANDOM_CHARS = "0123456789";
@Test
public void testString() {
......@@ -46,4 +49,11 @@ public class TestJdk8 {
log.info("uuid:{}", uuid);
}
@Test
public void random() {
for(int i=0; i<10; i++){
log.info("{}-random:{}", i, RandomStringUtils.random(6, RANDOM_CHARS));
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment