更改发送短信,

This commit is contained in:
lyf
2023-01-28 17:21:04 +08:00
parent b017339f5f
commit 76c4265134
38 changed files with 446 additions and 1831 deletions

View File

@@ -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);
}
}