package com.ks.app.controller.client.api;
|
|
import com.ks.app.entity.config.SystemConfigKey;
|
import com.ks.app.service.inter.config.SystemConfigService;
|
import com.ks.app.service.manager.VerifyCodeManager;
|
import com.ks.app.vo.AcceptData;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.yeshi.utils.JsonUtil;
|
import org.yeshi.utils.StringUtil;
|
import org.yeshi.utils.sms.TencentSMSUtil;
|
import org.yeshi.utils.sms.VerifyCodeFactory;
|
|
import javax.annotation.Resource;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* @author hxh
|
* @title: UserController
|
* @description: 用户接口
|
* @date 2021/11/16 17:37
|
*/
|
@Controller
|
@RequestMapping("api/v1/sms")
|
public class SMSController {
|
|
@Resource
|
private SystemConfigService systemConfigService;
|
|
@Resource
|
private VerifyCodeManager verifyCodeManager;
|
|
@Resource
|
private RedisTemplate<String, String> redisTemplate;
|
|
/**
|
* @return java.lang.String
|
* @author hxh
|
* @description 发送验证码
|
* @date 18:31 2021/11/16
|
* @param: acceptData
|
* @param: phone
|
**/
|
@ResponseBody
|
@RequestMapping("sendSMS")
|
public String sendSMS(AcceptData acceptData, String phone) {
|
if (StringUtil.isMobile(phone)) {
|
return JsonUtil.loadFalseResult("手机号格式错误");
|
}
|
String key = "sendsms-" + phone;
|
|
if (redisTemplate.opsForValue().setIfAbsent(key, "1", 60, TimeUnit.SECONDS)) {
|
String code = VerifyCodeFactory.createNumber(6);
|
String msg = systemConfigService.getValueCache(acceptData.getSystem(), SystemConfigKey.tencentVerifySMSTemplate);
|
String appId = systemConfigService.getValueCache(acceptData.getSystem(), SystemConfigKey.tencentSMSAppId);
|
String appKey = systemConfigService.getValueCache(acceptData.getSystem(), SystemConfigKey.tencentSMSAppKey);
|
// SmsSingleSenderResult result=
|
// TencentSMSUtil.sendSingleMsg(Integer.parseInt(appId), appKey, phone, msg.replace("{验证码}", code));
|
verifyCodeManager.sendSMSSuccess(phone, code);
|
return JsonUtil.loadTrueResult("");
|
} else {
|
return JsonUtil.loadFalseResult("服务器繁忙,请稍后再试");
|
}
|
|
|
}
|
|
|
}
|