提交 578493fd authored 作者: 刘海泉's avatar 刘海泉

开发短信发送功能

上级 da8c2c8d
package com.clx.performance.service;
import com.clx.performance.enums.SmsTemplateEnum;
import java.util.List;
public interface SendSmsService {
void sendChildWarnConfigSmsNotice(Integer warnTypeCode, SmsTemplateEnum.Type smsTemplateType,
List<String> paramList);
}
......@@ -17,6 +17,8 @@ import com.clx.performance.dao.OrderChildExceptionReportDealLogDao;
import com.clx.performance.dao.OrderChildExceptionReportOperationLogDao;
import com.clx.performance.dao.breakcontract.BreakContractDriverRecordDao;
import com.clx.performance.enums.*;
import com.clx.performance.enums.linewarn.LineWarnConfigEnum;
import com.clx.performance.enums.vehiclewarn.VehicleWarnConfigEnum;
import com.clx.performance.model.OrderChild;
import com.clx.performance.model.OrderChildExceptionReport;
import com.clx.performance.model.OrderChildExceptionReportDealLog;
......@@ -26,6 +28,7 @@ import com.clx.performance.param.pc.DealExceptionReportParam;
import com.clx.performance.param.pc.PageExceptionReportParam;
import com.clx.performance.param.pc.TransferDriverBreakContractParam;
import com.clx.performance.service.OrderChildExceptionReportService;
import com.clx.performance.service.SendSmsService;
import com.clx.performance.service.breakcontract.BreakContractDriverRecordService;
import com.clx.performance.struct.OrderChildExceptionReportOperationLogStruct;
import com.clx.performance.struct.OrderChildExceptionReportStruct;
......@@ -77,6 +80,7 @@ public class OrderChildExceptionReportServiceImpl implements OrderChildExceptio
private final OrderChildDao orderChildDao;
private final BreakContractDriverRecordDao breakContractDriverRecordDao;
private final OrderChildExceptionReportOperationLogStruct orderChildExceptionReportOperationLogStruct;
private final SendSmsService sendSmsService;
@Override
public Result<String> smbSyncExceptionReportInfo(SmbSyncExceptionReportInfoAction action) {
......@@ -175,6 +179,9 @@ public class OrderChildExceptionReportServiceImpl implements OrderChildExceptio
report.setStatus(CarrierExceptionReportEnum.Status.WAIT_DEAL.getCode());
orderChildExceptionReportDao.saveEntity(report);
saveOperationLog(report.getReportNo(),CarrierExceptionLogEnum.Type.CREATE,null,null,SyncPlatformEnum.Source.getNameByCode(source));
//发送预警短信
sendSmsService.sendChildWarnConfigSmsNotice(VehicleWarnConfigEnum.WarnType.EXCEPTION_REPORT_DEAL.getCode(),SmsTemplateEnum.Type.EXCEPTION_REPORT_DEAL,List.of(report.getChildNo()));
return report.getReportNo();
}
......
......@@ -2,9 +2,9 @@ package com.clx.performance.service.impl;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.clx.order.enums.OrderEnum;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.dao.vehiclewarn.VehicleWarnUserDao;
import com.clx.performance.enums.SmsTemplateEnum;
import com.clx.performance.model.vehiclewarn.VehicleWarnUser;
import com.clx.performance.param.mq.SendSmsNoticeParam;
import com.clx.performance.service.SendSmsService;
......@@ -37,15 +37,20 @@ public class SendSmsServiceImpl implements SendSmsService {
private final RabbitTemplate rabbitTemplate;
private final VehicleWarnUserDao vehicleWarnUserDao;
public void sendChildWarnConfigSmsNotice(Integer warnTypeCode,String smsTemplateCode){
log.info("开始运单预警通知配置短信消息,短信模版code:{}",smsTemplateCode);
@Override
public void sendChildWarnConfigSmsNotice(Integer warnTypeCode, SmsTemplateEnum.Type smsTemplateType,
List<String> paramList){
String params = replaceContent(smsTemplateType.getParam(), paramList);
List<String> targets = getTargets(warnTypeCode);
SendSmsNoticeParam param = new SendSmsNoticeParam();
param.setCode(smsTemplateCode);
param.setCode(smsTemplateType.getCode());
param.setMobileList(targets);
param.setParams(JSON.parseObject(params));
log.info("开始运单预警通知配置短信消息,短信模版code:{},请求参数:{}",smsTemplateType.getCode(),JSON.toJSONString(param));
Message body = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(param)).getBytes()).build();
rabbitTemplate.send(NOTICE_SEND_SMS_QUEUE_EXCHANGE,NOTICE_SEND_SMS_QUEUE_ROUTING_KEY, body);
log.info("结束运单预警通知配置短信消息,短信模版code:{},", smsTemplateCode);
log.info("结束运单预警通知配置短信消息,短信模版code:{},", smsTemplateType.getCode());
}
......@@ -57,7 +62,7 @@ public class SendSmsServiceImpl implements SendSmsService {
}
//构建站内信中的内容,替换变量
private String replaceContent(String content,List<String> list){
private static String replaceContent(String content,List<String> list){
int listSize = 0;
int times = countCharTimes(content, "%s");
if(CollectionUtils.isNotEmpty(list)){
......@@ -69,4 +74,28 @@ public class SendSmsServiceImpl implements SendSmsService {
}
return String.format(content, list.toArray());
}
//查找字符在字符串出现的次数
public static int countCharTimes(String mainStr,String subStr){
// 声明一个要返回的变量
int count = 0;
// 声明一个初始的下标,从初始位置开始查找
int index = 0;
// 获取主数据的长度
int mainStrLength = mainStr.length();
// 获取要查找的数据长度
int subStrLength = subStr.length();
// 如果要查找的数据长度大于主数据的长度则返回0
if (subStrLength > mainStrLength){
return 0;
}
// 循环使用indexOf查找出现的下标,如果出现一次则count++
while ((index = mainStr.indexOf(subStr, index)) != -1) {
count++;
index += subStrLength;
}
return count;
}
}
......@@ -11,7 +11,7 @@ public enum SmsTemplateEnum {
@Getter
@AllArgsConstructor
public enum Type {
EXCEPTION_REPORT_DEAL("childExceptionReportDeal", "异常上报处理","{childNo:}"),
EXCEPTION_REPORT_DEAL("childExceptionReportDeal", "异常上报处理","{childNo:%s}"),
;
private final String code;
private final String msg;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论