更改发送短信,

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

@@ -124,6 +124,20 @@
<orderEntry type="library" name="Maven: com.github.penggle:kaptcha:2.3.2" level="project" />
<orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
<orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235-1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:dysmsapi20170525:2.0.21" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea-util:0.2.14" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:endpoint-util:0.0.7" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea:1.2.0" level="project" />
<orderEntry type="library" name="Maven: org.jacoco:org.jacoco.agent:runtime:0.8.4" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea-openapi:0.2.6" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:credentials-java:0.2.4" level="project" />
<orderEntry type="library" name="Maven: org.ini4j:ini4j:0.5.4" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:alibabacloud-gateway-spi:0.0.1" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:tea-xml:0.1.5" level="project" />
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.0.3" level="project" />
<orderEntry type="library" name="Maven: com.aliyun:openapiutil:0.1.14" level="project" />
<orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.16.11.ALL" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.4" level="project" />

View File

@@ -118,6 +118,12 @@
<version>2.3.2</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.21</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.apache.logging.log4j</groupId>-->
<!-- <artifactId>log4j-api</artifactId>-->

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