更改发送短信,
This commit is contained in:
@@ -9,6 +9,8 @@ import cn.pluss.platform.exception.MsgException;
|
||||
import cn.pluss.platform.service.ReqRecordsService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.aliyun.teaopenapi.models.Config;
|
||||
import com.aliyun.tea.TeaException;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.google.code.kaptcha.impl.DefaultKaptcha;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -23,6 +25,7 @@ import java.awt.image.BufferedImage;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import com.aliyun.dysmsapi20170525.Client;
|
||||
|
||||
/**
|
||||
* 获取验证码相关工具
|
||||
@@ -37,6 +40,17 @@ public class ValidateCodeUtil {
|
||||
*/
|
||||
@Value("${juhe.send.key}")
|
||||
private String KEY;
|
||||
/**
|
||||
* 阿里云key
|
||||
*/
|
||||
@Value("${aliyun.keyid}")
|
||||
private String ACCESSKEYID;
|
||||
/**
|
||||
* 阿里云secret
|
||||
*/
|
||||
@Value("${aliyun.keysecret}")
|
||||
private String ACCESSKEYSECRET;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ReqRecordsService reqRecordService;
|
||||
@@ -193,4 +207,80 @@ public class ValidateCodeUtil {
|
||||
return ResultGenerator.genFailJsonResult(e.getMessage());
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 获取验证码(阿里云)
|
||||
*/
|
||||
public Result<Object> requestValidateCodeALi(String phone, String checkCode) {
|
||||
String requestUri = request.getRequestURI();
|
||||
String myLoginName = request.getHeader("myLoginName");
|
||||
|
||||
ReqRecords reqRecords = new ReqRecords();
|
||||
reqRecords.setIp(IpUtils.getIpAddr(request));
|
||||
reqRecords.setPhone(phone);
|
||||
reqRecords.setLoginName(myLoginName);
|
||||
reqRecords.setUri(requestUri);
|
||||
|
||||
// 短信一天限制10次
|
||||
ReqRecords reqRecords1 = new ReqRecords();
|
||||
reqRecords1.setIp(reqRecords.getIp());
|
||||
reqRecords1.setCreateTimeStart(DateUtil.beginOfDay(new Date()).toJdkDate());
|
||||
reqRecords1.setCreateTimeEnd(new Date());
|
||||
int count = reqRecordService.count(new QueryWrapper<>(reqRecords1));
|
||||
if (count >= 50) {
|
||||
return ResultGenerator.genFailResult("限制请求");
|
||||
}
|
||||
|
||||
// 短信一周限制45次
|
||||
// ReqRecords reqRecords2 = new ReqRecords();
|
||||
// reqRecords2.setIp(reqRecords.getIp());
|
||||
// reqRecords2.setCreateTimeStart(DateUtil.beginOfWeek(new Date()).toJdkDate());
|
||||
// reqRecords2.setCreateTimeEnd(new Date());
|
||||
// count = reqRecordService.count(new QueryWrapper<>(reqRecords2));
|
||||
// if (count >= 250) {
|
||||
// return ResultGenerator.genFailResult("限制请求");
|
||||
// }
|
||||
|
||||
try {
|
||||
reqRecordService.checkLimit(reqRecords, 60000);
|
||||
} catch (Exception e) {
|
||||
return ResultGenerator.genFailResult(e.getMessage());
|
||||
}
|
||||
|
||||
|
||||
Client client = null;
|
||||
try {
|
||||
client = createClient();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// 1.发送短信
|
||||
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
|
||||
.setSignName("超掌柜")
|
||||
.setTemplateCode("SMS_244665149")
|
||||
.setTemplateParam("{\"code\":" + checkCode + "}")
|
||||
.setPhoneNumbers(phone);
|
||||
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
|
||||
|
||||
try {
|
||||
assert client != null;
|
||||
return ResultGenerator.genSuccessResult(client.sendSmsWithOptions(sendSmsRequest, runtime));
|
||||
} catch (Exception e) {
|
||||
return ResultGenerator.genFailResult(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* 发送短信(阿里云)
|
||||
*
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public Client createClient() throws Exception {
|
||||
Config config = new Config();
|
||||
config.accessKeyId = ACCESSKEYID;
|
||||
config.accessKeySecret = ACCESSKEYSECRET;
|
||||
return new com.aliyun.dysmsapi20170525.Client(config);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user