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.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.util.ArrayList; 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; /** * 查询短信账号 * * @param smsacountid 短信账号主键 * @return 短信账号 */ @Override public BaseSmsaccount selectBaseSmsaccountBySmsacountid(Long smsacountid) { return baseSmsaccountMapper.selectBaseSmsaccountBySmsacountid(smsacountid); } /** * 查询短信账号列表 * * @param baseSmsaccount 短信账号 * @return 短信账号 */ @Override public List 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 SendSmsResponseBody sendMsg(BaseSmsRequest baseSmsRequest) { Client client = null; try { client = this.createClient(); SendSmsRequest sendSmsRequest = new SendSmsRequest().setPhoneNumbers(baseSmsRequest.getPhoneNumber()).setSignName(this.signName).setTemplateCode(baseSmsRequest.getTemplateCode()).setTemplateParam(baseSmsRequest.getTemplateParam()); // 复制代码运行请自行打印 API 的返回值 SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, new RuntimeOptions()); return sendSmsResponse.getBody(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 批量发送短信 * * @param batchBaseSmsRequest * @return */ public SendBatchSmsResponseBody batchSendMsg(BatchBaseSmsRequest batchBaseSmsRequest) { Client client = null; try { client = this.createClient(); List signNameJson = new ArrayList<>(); 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); } }