| | |
| | | import cn.com.flaginfo.sdk.cmc.api.sms.send.SMSSendRequest; |
| | | import cn.gistack.alerts.alarmRule.entity.AlarmRecordDetail; |
| | | import cn.gistack.alerts.alarmRule.service.AlarmRecordDetailService; |
| | | import cn.gistack.alerts.sms.constant.MinConstant; |
| | | import cn.gistack.alerts.sms.entity.SmsRecord; |
| | | import cn.gistack.alerts.sms.entity.SmsResult; |
| | | import cn.gistack.alerts.sms.entity.SmsTemplate; |
| | | import cn.gistack.alerts.sms.service.ISmsRecordService; |
| | | import cn.gistack.alerts.sms.service.ISmsResultService; |
| | | import cn.gistack.alerts.sms.service.ISmsTemplateService; |
| | | import cn.gistack.alerts.sms.service.SmsService; |
| | | import cn.gistack.alerts.sms.util.SmsUtils; |
| | | import cn.gistack.alerts.sms.vo.SmsRequestTemplate; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | |
| | | @Autowired |
| | | private ISmsResultService smsResultService; |
| | | |
| | | @Autowired |
| | | private ISmsTemplateService smsTemplateService; |
| | | |
| | | /** |
| | | * 发送 xx 变量模板短信 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 外呼未接通-发送短信 |
| | | * @param taskId |
| | | * @param time |
| | | * @return |
| | | */ |
| | | @Override |
| | | public String sendSmsByOutCallNotConnect(String taskId,String time) { |
| | | String templateId = "2431012249882"; |
| | | // 查询当前任务未接通的人员信息(包含水库编号) |
| | | List<Map<String, Object>> list = smsTemplateService.getNotConnectPatrolPersonList(taskId); |
| | | SmsTemplate smsTemplate = smsTemplateService.getOne(new QueryWrapper<SmsTemplate>().eq("template_id", templateId)); |
| | | if (list.size()>0) { |
| | | // 组装短信数据 |
| | | StringBuilder builder = new StringBuilder(); |
| | | // 遍历 |
| | | for (Map<String, Object> map : list) { |
| | | builder.append(map.get("userPhone") + ",") |
| | | .append(time + ",") |
| | | .append(MinConstant.fillWaterInfoUrl + ",") |
| | | .append(map.get("waterName")) |
| | | .append(";"); |
| | | } |
| | | String datas = builder.toString(); |
| | | String title = "手机号码,时间范围,链接地址,水库名称"; |
| | | String[] titleArr = title.split(","); |
| | | String[] rows = datas.split(";"); |
| | | String[][] dyns = new String[rows.length + 1][titleArr.length]; |
| | | dyns[0] = titleArr; |
| | | int rowNum = 1; |
| | | for (String row : rows) { |
| | | String[] cols = row.split(","); |
| | | dyns[rowNum++] = cols; |
| | | } |
| | | //请求参数 |
| | | DynSMSSendRequest sendRequest = new DynSMSSendRequest(); |
| | | sendRequest.setTemplateId(templateId); |
| | | sendRequest.setDynData(dyns); |
| | | // 发送 |
| | | ComResult<DynSMSSendDataResult> resultComResult = SmsUtils.dynSendMethod(sendRequest); |
| | | SMSSendRequest request = new SMSSendRequest(); |
| | | request.setTemplateId(templateId); |
| | | request.setMessageContent(""); |
| | | request.setUserNumber(""); |
| | | // 先保存结果记录 |
| | | SmsResult smsResult = saveSendResult(request, rows.length); |
| | | if (null != smsResult) { |
| | | List<SmsRecord> smsRecordList = new ArrayList<>(); |
| | | // 遍历保存 |
| | | for (Map<String, Object> map : list) { |
| | | SmsRecord smsRecord = new SmsRecord(); |
| | | smsRecord.setId(IdWorker.getId()); |
| | | smsRecord.setTel(map.get("userPhone").toString()); |
| | | // 内容处理 |
| | | String s = smsTemplate.getContent().replaceAll("\\{.+?\\}", "%s"); |
| | | // 拼接内容 |
| | | String arrString = time + "," + MinConstant.fillWaterInfoUrl + "," + map.get("waterName").toString(); |
| | | // 格式转换 |
| | | String format = String.format(s, arrString.split(",")); |
| | | smsRecord.setContent(format); |
| | | smsRecord.setTemplateId(templateId); |
| | | smsRecord.setResultId(smsResult.getId()); |
| | | smsRecord.setResponseStatus(resultComResult.getCode().toString()); |
| | | smsRecord.setResponseMsg(resultComResult.getMsg()); |
| | | // 加入集合 |
| | | smsRecordList.add(smsRecord); |
| | | } |
| | | // 批量保存记录 |
| | | Integer count = smsRecordService.batchSaveSendRecord(smsRecordList); |
| | | // 返回 |
| | | return count.toString(); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 校验手机号码 |
| | | */ |
| | | public static boolean validator(String phone) { |