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