package com.smartor.service.impl;
|
|
import com.aliyun.dysmsapi20170525.Client;
|
import com.aliyun.dysmsapi20170525.models.*;
|
import com.aliyun.tea.TeaException;
|
import com.aliyun.teaopenapi.models.Config;
|
import com.aliyun.teautil.Common;
|
import com.aliyun.teautil.models.RuntimeOptions;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.HttpUtil;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.sign.Md5Utils;
|
import com.smartor.domain.BaseSmsRequest;
|
import com.smartor.domain.BaseSmsaccount;
|
import com.smartor.domain.BatchBaseSmsRequest;
|
import com.smartor.domain.TemplateSmsRequest;
|
import com.smartor.mapper.BaseSmsaccountMapper;
|
import com.smartor.service.IBaseSmsaccountService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Service;
|
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 短信账号Service业务层处理
|
*
|
* @author smartor
|
* @date 2023-03-06
|
*/
|
@Service
|
public class BaseSmsaccountServiceImpl implements IBaseSmsaccountService {
|
@Autowired
|
private BaseSmsaccountMapper baseSmsaccountMapper;
|
|
@Value("${accessKeyId}")
|
private String accessKeyId;
|
|
@Value("${accessKeySecret}")
|
private String accessKeySecret;
|
|
@Value("${signName}")
|
private String signName;
|
|
@Value("${xhsmsPath}")
|
private String xhsmsPath;
|
|
/**
|
* 查询短信账号
|
*
|
* @param smsacountid 短信账号主键
|
* @return 短信账号
|
*/
|
@Override
|
public BaseSmsaccount selectBaseSmsaccountBySmsacountid(Long smsacountid) {
|
return baseSmsaccountMapper.selectBaseSmsaccountBySmsacountid(smsacountid);
|
}
|
|
/**
|
* 查询短信账号列表
|
*
|
* @param baseSmsaccount 短信账号
|
* @return 短信账号
|
*/
|
@Override
|
public List<BaseSmsaccount> selectBaseSmsaccountList(BaseSmsaccount baseSmsaccount) {
|
return baseSmsaccountMapper.selectBaseSmsaccountList(baseSmsaccount);
|
}
|
|
/**
|
* 新增短信账号
|
*
|
* @param baseSmsaccount 短信账号
|
* @return 结果
|
*/
|
@Override
|
public int insertBaseSmsaccount(BaseSmsaccount baseSmsaccount) {
|
baseSmsaccount.setCreateTime(DateUtils.getNowDate());
|
return baseSmsaccountMapper.insertBaseSmsaccount(baseSmsaccount);
|
}
|
|
/**
|
* 修改短信账号
|
*
|
* @param baseSmsaccount 短信账号
|
* @return 结果
|
*/
|
@Override
|
public int updateBaseSmsaccount(BaseSmsaccount baseSmsaccount) {
|
baseSmsaccount.setUpdateTime(DateUtils.getNowDate());
|
return baseSmsaccountMapper.updateBaseSmsaccount(baseSmsaccount);
|
}
|
|
/**
|
* 批量删除短信账号
|
*
|
* @param smsacountids 需要删除的短信账号主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteBaseSmsaccountBySmsacountids(Long[] smsacountids) {
|
return baseSmsaccountMapper.deleteBaseSmsaccountBySmsacountids(smsacountids);
|
}
|
|
/**
|
* 删除短信账号信息
|
*
|
* @param smsacountid 短信账号主键
|
* @return 结果
|
*/
|
@Override
|
public int deleteBaseSmsaccountBySmsacountid(Long smsacountid) {
|
return baseSmsaccountMapper.deleteBaseSmsaccountBySmsacountid(smsacountid);
|
}
|
|
|
/**
|
* 短信发送
|
*
|
* @param baseSmsRequest
|
* @return
|
*/
|
@Override
|
public Boolean sendMsg(BaseSmsRequest baseSmsRequest) {
|
String mac = "shuifang" + baseSmsRequest.getPhoneNumber() + baseSmsRequest.getContent() + "ShuiFang_jjty_20250106";
|
StringBuilder strb = new StringBuilder();
|
strb.append("send_source=shuifang&send_to_mobiles=" + baseSmsRequest.getPhoneNumber());
|
strb.append("&send_text=" + baseSmsRequest.getContent());
|
strb.append("&send_mac=" + Md5Utils.hash(mac));
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddhhmmsszzz"); // 输出日期格式
|
strb.append("&send_time=" + dateFormat.format(new Date()));
|
String isSuccess = HttpUtil.postFormRequest(xhsmsPath, strb.toString());
|
|
if (StringUtils.isNotEmpty(isSuccess) && isSuccess.contains("200")) {
|
return true;
|
}
|
return false;
|
|
|
}
|
|
/**
|
* 批量发送短信
|
*
|
* @param batchBaseSmsRequest
|
* @return
|
*/
|
public SendBatchSmsResponseBody batchSendMsg(BatchBaseSmsRequest batchBaseSmsRequest) {
|
Client client = null;
|
try {
|
client = this.createClient();
|
List<String> signNameJson = new ArrayList<String>();
|
for (int i = 0; i < batchBaseSmsRequest.getPhoneNumber().size(); i++) {
|
signNameJson.add("\"" + this.signName + "\"");
|
}
|
SendBatchSmsRequest sendBatchSmsRequest = new SendBatchSmsRequest().setSignNameJson(signNameJson.toString()).setPhoneNumberJson(batchBaseSmsRequest.getPhoneNumber().toString()).setTemplateCode(batchBaseSmsRequest.getTemplateCode());
|
RuntimeOptions runtime = new RuntimeOptions();
|
try {
|
// 复制代码运行请自行打印 API 的返回值
|
SendBatchSmsResponse sendBatchSmsResponse = client.sendBatchSmsWithOptions(sendBatchSmsRequest, runtime);
|
return sendBatchSmsResponse.getBody();
|
} catch (TeaException error) {
|
// 如有需要,请打印 error
|
com.aliyun.teautil.Common.assertAsString(error.message);
|
} catch (Exception _error) {
|
TeaException error = new TeaException(_error.getMessage(), _error);
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
@Override
|
public AddSmsTemplateResponseBody addSmsTemplate(TemplateSmsRequest templateSmsRequest) {
|
Client client = null;
|
try {
|
client = this.createClient();
|
AddSmsTemplateRequest addSmsTemplateRequest = new AddSmsTemplateRequest().setTemplateType(templateSmsRequest.getTemplateType()).setTemplateName(templateSmsRequest.getTemplateName()).setTemplateContent(templateSmsRequest.getTemplateContent()).setRemark(templateSmsRequest.getRemark());
|
RuntimeOptions runtime = new RuntimeOptions();
|
// 复制代码运行请自行打印 API 的返回值
|
AddSmsTemplateResponse addSmsTemplateResponse = client.addSmsTemplateWithOptions(addSmsTemplateRequest, runtime);
|
return addSmsTemplateResponse.getBody();
|
} catch (TeaException error) {
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
} catch (Exception _error) {
|
TeaException error = new TeaException(_error.getMessage(), _error);
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
}
|
return null;
|
}
|
|
@Override
|
public ModifySmsTemplateResponseBody delSmsTemplate(String templateCode) {
|
Client client = null;
|
try {
|
client = this.createClient();
|
ModifySmsTemplateRequest modifySmsTemplateRequest = new ModifySmsTemplateRequest();
|
modifySmsTemplateRequest.setTemplateCode(templateCode);
|
RuntimeOptions runtime = new RuntimeOptions();
|
// 复制代码运行请自行打印 API 的返回值
|
ModifySmsTemplateResponse modifySmsTemplateResponse = client.modifySmsTemplateWithOptions(modifySmsTemplateRequest, runtime);
|
return modifySmsTemplateResponse.getBody();
|
} catch (TeaException error) {
|
// 如有需要,请打印 error
|
com.aliyun.teautil.Common.assertAsString(error.message);
|
} catch (Exception _error) {
|
TeaException error = new TeaException(_error.getMessage(), _error);
|
// 如有需要,请打印 error
|
com.aliyun.teautil.Common.assertAsString(error.message);
|
}
|
return null;
|
}
|
|
@Override
|
public ModifySmsTemplateResponseBody updateSmsTemplate(TemplateSmsRequest templateSmsRequest) {
|
Client client = null;
|
try {
|
client = this.createClient();
|
ModifySmsTemplateRequest modifySmsTemplateRequest = new ModifySmsTemplateRequest().setTemplateType(1).setTemplateName("AAA").setTemplateCode("SMS_279456451").setTemplateContent("ASD").setRemark("ASFD");
|
RuntimeOptions runtime = new RuntimeOptions();
|
// 复制代码运行请自行打印 API 的返回值
|
ModifySmsTemplateResponse modifySmsTemplateResponse = client.modifySmsTemplateWithOptions(modifySmsTemplateRequest, runtime);
|
return modifySmsTemplateResponse.getBody();
|
} catch (TeaException error) {
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
} catch (Exception _error) {
|
TeaException error = new TeaException(_error.getMessage(), _error);
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
}
|
return null;
|
}
|
|
@Override
|
public QuerySmsTemplateListResponseBody querySmsTemplate(Integer pageIndex, Integer pageSize) {
|
Client client = null;
|
try {
|
client = this.createClient();
|
QuerySmsTemplateListRequest querySmsTemplateListRequest = new QuerySmsTemplateListRequest().setPageIndex(pageIndex).setPageSize(pageSize);
|
RuntimeOptions runtime = new RuntimeOptions();
|
// 复制代码运行请自行打印 API 的返回值
|
QuerySmsTemplateListResponse querySmsTemplateListResponse = client.querySmsTemplateListWithOptions(querySmsTemplateListRequest, runtime);
|
return querySmsTemplateListResponse.getBody();
|
} catch (TeaException error) {
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
} catch (Exception _error) {
|
TeaException error = new TeaException(_error.getMessage(), _error);
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
}
|
return null;
|
}
|
|
@Override
|
public QuerySmsTemplateResponseBody querySmsTemplateStatus(String templateCode) {
|
Client client = null;
|
try {
|
client = this.createClient();
|
QuerySmsTemplateRequest querySmsTemplateRequest = new QuerySmsTemplateRequest().setTemplateCode(templateCode);
|
RuntimeOptions runtime = new RuntimeOptions();
|
// 复制代码运行请自行打印 API 的返回值
|
QuerySmsTemplateResponse querySmsTemplateResponse = client.querySmsTemplateWithOptions(querySmsTemplateRequest, runtime);
|
return querySmsTemplateResponse.getBody();
|
} catch (TeaException error) {
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
} catch (Exception _error) {
|
TeaException error = new TeaException(_error.getMessage(), _error);
|
// 如有需要,请打印 error
|
Common.assertAsString(error.message);
|
}
|
return null;
|
}
|
|
|
private Client createClient() throws Exception {
|
Config config = new Config()
|
// 必填,您的 AccessKey ID
|
.setAccessKeyId(this.accessKeyId)
|
// 必填,您的 AccessKey Secret
|
.setAccessKeySecret(this.accessKeySecret);
|
// 访问的域名
|
config.endpoint = "dysmsapi.aliyuncs.com";
|
return new Client(config);
|
}
|
}
|