SmsUtil参数从sysparam获取

This commit is contained in:
张松
2025-03-10 09:59:37 +08:00
parent d7102db1e8
commit d808e70eec
3 changed files with 32 additions and 8 deletions

View File

@@ -34,6 +34,10 @@
<groupId>com.pig4cloud.excel</groupId>
<artifactId>excel-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,102 @@
package com.czg.utils;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.czg.exception.ApiNotPrintException;
import com.czg.resp.CzgResult;
import com.czg.system.dto.SysParamsDTO;
import com.czg.system.service.SysParamsService;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
/**
* 验证码工具类
*
* @author Administrator
*/
@Component
@Slf4j
public class SmsUtil {
@Resource
private ApplicationContext applicationContext;
@DubboReference(check = false)
private SysParamsService remoteSysParamsService;
private SysParamsService sysParamsService;
/**
* 阿里云key
*/
// @Value("${alipay.sms.key}")
private String key;
/**
* 阿里云secret
*/
// @Value("${alipay.sms.secret}")
private String secret;
/**
* 短信模板id
*/
// @Value("${alipay.sms.templateCode}")
private String templateCode;
@PostConstruct
public SysParamsService init() {
sysParamsService = remoteSysParamsService == null ? applicationContext.getBean(SysParamsService.class): remoteSysParamsService;
CzgResult<SysParamsDTO> aliSmsKey = sysParamsService.getParamsByCode("ali_sms_key");
CzgResult<SysParamsDTO> aliSmsSecret = sysParamsService.getParamsByCode("ali_sms_secret");
CzgResult<SysParamsDTO> aliSmsTemplateCode = sysParamsService.getParamsByCode("ali_sms_template_code");
key = aliSmsKey.getData().getParamValue();
secret = aliSmsSecret.getData().getParamValue();
templateCode = aliSmsTemplateCode.getData().getParamValue();
log.info("短信工具类初始化完毕key: {}, secret: {}, templateCode: {}", key, secret, templateCode);
return sysParamsService;
}
public Client createClient() throws Exception {
Config config = new Config();
config.accessKeyId = key;
config.accessKeySecret = secret;
return new Client(config);
}
public void sendCode(String phone, String checkCode) {
try {
Client client = createClient();
// 1.发送短信
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
.setSignName("银收客")
.setTemplateCode(templateCode)
.setTemplateParam("{\"code\":" + "'" + checkCode + "'" + "}")
.setPhoneNumbers(phone);
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
log.info("短信发送请求参数: 手机号: {}, 短信模板: {}, 短信内容: {}", phone, templateCode, checkCode);
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
if (sendSmsResponse.getStatusCode() != 200) {
throw new ApiNotPrintException("短信发送失败");
}
}catch (Exception e) {
log.info("发送短信失败", e);
}
}
public static void main(String[] args) throws Exception {
Config config = new Config();
config.accessKeyId = "LTAI5tPdEfYSZcqHbjCrtPRD";
config.accessKeySecret = "DZjyHBq3nTujF0NMLxnZgsecU8ZCvy";
Client client = new Client(config);
// 1.发送短信
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
.setSignName("银收客")
.setTemplateCode("SMS_244665149")
.setTemplateParam("{\"code\":" + "'" + "23123" + "'" + "}")
.setPhoneNumbers("19502966242");
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
System.out.println(sendSmsResponse);
}
}