lishiqiang преди 1 седмица
родител
ревизия
2d7cff5ccc
променени са 12 файла, в които са добавени 122 реда и са изтрити 169 реда
  1. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/smsSendconfig/vo/SmsSendconfigQueryRespVO.java
  2. 1 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeDetailMapper.java
  3. 3 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/framework/mq/TradeMqReceiver.java
  4. 27 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderSmsJob.java
  5. 1 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderRepositoryService.java
  6. 4 8
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/MoblieMessageAliyunUtil.java
  7. 36 138
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/SmsHandler.java
  8. 5 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderRepositoryServiceImpl.java
  9. 0 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  10. 6 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  11. 25 1
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeDetailMapper.xml
  12. 12 15
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/smsSendconfig/SmsSendconfigMapper.xml

+ 2 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/smsSendconfig/vo/SmsSendconfigQueryRespVO.java

@@ -95,6 +95,8 @@ public class SmsSendconfigQueryRespVO {
     private String sourceName;
     private String contactName;
     private String mobile;
+    private String startTime;
+    private String leaveTime;
 
 
     private String sellerId;

+ 1 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeDetailMapper.java

@@ -180,6 +180,7 @@ public interface TradeDetailMapper extends BaseMapperX<TradeDetailDO> {
     List<Map<String,Object>> selectContractByOrderId(@Param("orderId") Long orderId);
 
     List<SmsSendconfigQueryRespVO> selectOrderSmsInfo(@Param("orderId") Long orderId, @Param("type") Integer type);
+    List<SmsSendconfigQueryRespVO> selectCreateOrderSmsInfo(@Param("orderId") Long orderId, @Param("type") Integer type);
     List<RoutePlanRespDTO> getRoutePlanByProductId(@Param("productId") Long productId, @Param("useStatus") Long useStatus);
 
     List<RefundDetailRespVO> getRefundBatchDetails(@Param("refundId") Long refundId);

+ 3 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/framework/mq/TradeMqReceiver.java

@@ -59,7 +59,7 @@ public class TradeMqReceiver {
     @RabbitListener(queues = TradeMqConfig.QUEUE_CREATE_SUCCESS, concurrency = "3")
     @TenantIgnore
     public void processOrderCreateSuccess(String data, Message message, Channel channel) throws IOException {
-        log.debug("收到下单创建成功消息:" + data);
+        log.error("收到下单创建成功消息:" + data);
         try {
             TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(Long.parseLong(data));
             tradeOrderHandlers.forEach(handler -> handler.processOrderCreateSuccess(tradeOrderDO));
@@ -80,7 +80,7 @@ public class TradeMqReceiver {
     @RabbitListener(queues = TradeMqConfig.QUEUE_CREATE_FAIL, concurrency = "3")
     @TenantIgnore
     public void processOrderCreateFail(String data, Message message, Channel channel) throws IOException {
-        log.debug("收到下单创建失败消息:" + data);
+        log.error("收到下单创建失败消息:" + data);
         try {
             //归还库存 等操作
             TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(Long.parseLong(data));
@@ -101,7 +101,7 @@ public class TradeMqReceiver {
      */
     @RabbitListener(queues = TradeMqConfig.QUEUE_PAY_TIMEOUT, concurrency = "3")
     public void processOrderPayTimeOut(String data, Message message, Channel channel) throws IOException {
-        log.debug("收到支付超时消息:" + data);
+        log.error("收到支付超时消息:" + data);
         try {
             //释放库存、通知供应商等操作
             TradeOrderDO tradeOrderDO = tradeOrderRepositoryService.getById(Long.parseLong(data));

+ 27 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderSmsJob.java

@@ -1,15 +1,41 @@
 package com.yc.ship.module.trade.job;
 
+import com.xxl.job.core.handler.annotation.XxlJob;
 import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.module.trade.service.smsSendconfig.SmsSendconfigService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
+
 @Component
+@Slf4j
 public class OrderSmsJob implements JobHandler {
-
+    @Resource
+    private SmsSendconfigService smsSendconfigService;
 
     @Override
     public String execute(String param) {
         return "成功";
     }
 
+
+    /***
+     * @author qsl
+     * 2026/3/6 17:38
+     */
+    @XxlJob("smsSendMsg1")
+    @TenantIgnore
+    public void execute() {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> smsSendMsg1 Begin <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            smsSendconfigService.smsSendMsg(0,null);
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> smsSendMsg Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>>  OverCheckJob End  <<<<<<<<<<<<<<<<<<<<<<");
+    }
+
 }

+ 1 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/TradeOrderRepositoryService.java

@@ -216,6 +216,7 @@ public interface TradeOrderRepositoryService {
 
     List<TradeDetailDO> getChangeDetailList(Long orderId, Long originOrderId);
 
+    List<SmsSendconfigQueryRespVO> getCreateOrderSmsInfo(Long orderId, Integer type);
     List<SmsSendconfigQueryRespVO> getOrderSmsInfo(Long orderId, Integer type);
 
     void insertSmsLog(SmsSendLogDTO smsSendLogDTO);

+ 4 - 8
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/MoblieMessageAliyunUtil.java

@@ -13,8 +13,6 @@ import com.aliyuncs.profile.IClientProfile;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 
-import java.util.List;
-
 /**
  * 三峡短信模块
  * @author lishiqiang
@@ -95,9 +93,9 @@ public class MoblieMessageAliyunUtil {
 
     public static void main(String[] args) throws Exception{
         //您预定的${useDate}“长江游轮”即将开启.请您于${startTime}起前往 ${startAddr}登船,身份证即为船票,出行时请携带所有出行人的身份证原件,${endTime}将停止检票.请勿携带宠物、管制刀具等违禁物品登船,祝您旅途愉快!
-//        String ss = "{\"useDate\":\"2025年10月1日\",\"startTime\":\"08:30\",\"startAddr\":\"三峡游客中心\",\"endTime\":\"09:00\"}";
-//        SendSmsResponse s = sendSms("LTAI5t9eyWeREnjqs3ozEP22","hdl5UOYVFGCXz9ZNwy8w1mEt8z8Lmz","长江行游轮","18628286025", ss, "SMS_494225061");
-//        System.out.println(s.getMessage());
+        String ss = "{\"boatName\":\"长江游轮\",\"orderNo\":\"SP202691203132\",\"routeName\":\"宜昌-重庆\",\"startTime\":\"2026-4-20\",\"jzTime\":\"登船日期前7天\"}";
+        SendSmsResponse s = sendSms("LTAI5t9eyWeREnjqs3ozEP22","hdl5UOYVFGCXz9ZNwy8w1mEt8z8Lmz","长江行游轮","18628286025", ss, "SMS_501695562");
+        System.out.println(s.getMessage());
 
 //        String input = "这是一个【date】示例【startTime】字符【content】串";
 //        Pattern pattern = Pattern.compile("\\【(.*?)\\】");
@@ -111,9 +109,7 @@ public class MoblieMessageAliyunUtil {
 //            count++;
 //        }
 //        System.out.println(list);
-        String s = "[\"2025-01-01[09:30]\",\"黄柏河码头\"]";
-        List<String> list = JSONUtil.toList(s, String.class);
-        System.out.println(list);
+
     }
 
 

+ 36 - 138
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/SmsHandler.java

@@ -55,9 +55,12 @@ public class SmsHandler implements TradeOrderHandler {
     private ConfigApi configApi;
 
     @Override
-    public void afterProcessSuccess(TradeOrderDO tradeOrderDO) {
+    public void processOrderCreateSuccess(TradeOrderDO tradeOrderDO) {
         try {
-            List<SmsSendconfigQueryRespVO> list = tradeOrderRepositoryService.getOrderSmsInfo(tradeOrderDO.getId(), 3);
+            if(tradeOrderDO.getSellMethod()==3){
+                return;
+            }
+            List<SmsSendconfigQueryRespVO> list = tradeOrderRepositoryService.getCreateOrderSmsInfo(tradeOrderDO.getId(), 0);
             if (list.isEmpty()) {
                 return;
             }
@@ -71,37 +74,46 @@ public class SmsHandler implements TradeOrderHandler {
         }
     }
 
-    @Transactional(rollbackFor = Exception.class)
-    public String sendMsg(SmsSendconfigQueryRespVO smsSendconfigQueryRespVO) {
+    /***
+     * 转确认单发送 旅行社和直客
+     * 2026/3/6 17:28
+     */
+    @Override
+    public void afterProcessSuccess(TradeOrderDO tradeOrderDO) {
         try {
-            String telphone = "0717-6910001";
-            if (StringUtils.isNotEmpty(smsSendconfigQueryRespVO.getSellerId())) {
-                try {
-                    AdminUserRespDTO user = adminUserApi.getUserIgnoreTenant(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
-                    if (StringUtils.isNotEmpty(user.getMobile())) {
-                        //如果有售票员的电话则发送售票员的电话作为咨询电话
-                        telphone = user.getMobile();
-                    } else {
-                        //读取配置文件默认参数
-                        String mtelphone = configApi.getPlatformConfigValueByKey("telphone");
-                        if (mtelphone != null) {
-                            telphone = mtelphone;
-                        }
+            if(tradeOrderDO.getSellMethod()==3) {
+                List<SmsSendconfigQueryRespVO> list = tradeOrderRepositoryService.getOrderSmsInfo(tradeOrderDO.getId(), 4);
+                if (list.isEmpty()) {
+                    return;
+                }
+                for (SmsSendconfigQueryRespVO smsSendconfigQueryRespVO : list) {
+                    if (smsSendconfigQueryRespVO.getMobile() != null) {
+                        sendMsg(smsSendconfigQueryRespVO);
                     }
-                } catch (Exception e) {
-                    log.error("用户信息获取异常" + smsSendconfigQueryRespVO.getSellerId(), e);
                 }
             }
+        } catch (Exception e) {
+            log.error("短信发送异常", e);
+        }
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public String sendMsg(SmsSendconfigQueryRespVO smsSendconfigQueryRespVO) {
+        try {
 
             String appId = smsSendconfigQueryRespVO.getApiKey();
             String secretKey = smsSendconfigQueryRespVO.getApiSecret();
             String signName = smsSendconfigQueryRespVO.getSignature();
             String content = smsSendconfigQueryRespVO.getSmsParms();
             String smsContent = smsSendconfigQueryRespVO.getSmsContent();
-            //【1】航次名称; 【2】订单号; 【3】游玩日期; 【4】联系人;【5】购买数量; 【6】团号; 【7】旅行社联系人; 【8】联系电话;【9】航线名称;【10】产品简称;【11】咨询电话;
+            //【1】航次名称; 【2】订单号; 【3】游玩日期; 【4】联系人;【5】购买数量;
+            //            【6】团号; 【7】旅行社联系人; 【8】联系电话;【9】航线名称;【10】产品简称;【11】咨询电话;【12】游船;【13】开航时间;
+            //            【14】出发时间;【15】违约金;【16】补缴费;【17】小程序链接;【18】登船时间
             content = content.replaceAll("【1】", smsSendconfigQueryRespVO.getVoyageName());
             content = content.replaceAll("【2】", smsSendconfigQueryRespVO.getOrderNo());
             content = content.replaceAll("【3】", smsSendconfigQueryRespVO.getUseDate().substring(0, 10));
+            content = content.replaceAll("【3】", smsSendconfigQueryRespVO.getUseDate().substring(0, 10));
+            content = content.replaceAll("【13】", smsSendconfigQueryRespVO.getUseDate().substring(0, 10));
             content = content.replaceAll("【4】", smsSendconfigQueryRespVO.getContactName());
             content = content.replaceAll("【5】", smsSendconfigQueryRespVO.getNum() + "");
             content = content.replaceAll("【6】", smsSendconfigQueryRespVO.getGroupNo());
@@ -109,19 +121,20 @@ public class SmsHandler implements TradeOrderHandler {
             content = content.replaceAll("【8】", smsSendconfigQueryRespVO.getMobile());
             content = content.replaceAll("【9】", smsSendconfigQueryRespVO.getShipName());
             content = content.replaceAll("【10】", smsSendconfigQueryRespVO.getShortName());
-            content = content.replaceAll("【11】", telphone);
+            content = content.replaceAll("【14】", smsSendconfigQueryRespVO.getLeaveTime().substring(0, 10));
+            content = content.replaceAll("【18】", smsSendconfigQueryRespVO.getLeaveTime().substring(0, 10));
 
             Pattern pattern = Pattern.compile("\\【(.*?)\\】");
             Matcher matcher = pattern.matcher(smsContent);
             List<String> list = new ArrayList<>();
             while (matcher.find()) {
-                String result = smsContent.substring(matcher.start() + 1, matcher.end() - 1); // 获取第一个匹配的括号内的内容
+                String result = smsContent.substring(matcher.start() + 1, matcher.end() - 1);
                 list.add(result);
             }
             JSONObject jsonObject = new JSONObject();
             List<String> parmlist = JSONUtil.toList(content, String.class);
             for (int i = 0; i < list.size(); i++) {
-                jsonObject.put(list.get(i), parmlist.get(i));
+                jsonObject.set(list.get(i), parmlist.get(i));
             }
             String mobile = smsSendconfigQueryRespVO.getMobile();
             log.error("[下单成功短信发送参数]:" + smsSendconfigQueryRespVO.getApiTemplateId() + ";" + mobile + ";" + jsonObject.toString());
@@ -172,121 +185,6 @@ public class SmsHandler implements TradeOrderHandler {
         }
     }
 
-    @Transactional(rollbackFor = Exception.class)
-    public String sendMsg3(SmsSendconfigQueryRespVO smsSendconfigQueryRespVO) {
-        try {
-            String telphone = "0717-6910001";
-            if (StringUtils.isNotEmpty(smsSendconfigQueryRespVO.getSellerId())) {
-                try {
-                    AdminUserRespDTO user = adminUserApi.getUserIgnoreTenant(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
-                    if (StringUtils.isNotEmpty(user.getMobile())) {
-                        //如果有售票员的电话则发送售票员的电话作为咨询电话
-                        telphone = user.getMobile();
-                    } else {
-                        //读取配置文件默认参数
-                        String mtelphone = configApi.getPlatformConfigValueByKey("telphone");
-                        if (mtelphone != null) {
-                            telphone = mtelphone;
-                        }
-                    }
-                } catch (Exception e) {
-                    log.error("用户信息获取异常" + smsSendconfigQueryRespVO.getSellerId(), e);
-                }
-            }
-
-            //sxly
-            String appId = smsSendconfigQueryRespVO.getApiKey();
-            //Sx@202305
-            String secretKey = smsSendconfigQueryRespVO.getApiSecret();
-            //https://112.35.10.201:58888/sms/tmpsubmit
-            String url = smsSendconfigQueryRespVO.getApiUrl();
-            //jFKNw6Cis
-            String signName = smsSendconfigQueryRespVO.getSignature();
-            String content = smsSendconfigQueryRespVO.getSmsParms();
-            //【1】产品名称; 【2】订单号; 【3】游玩日期; 【4】联系人;【5】购买数量; 【6】团名称; 【7】旅行社联系人; 【8】联系电话;【9】时间方案名称;【10】产品简称; 【11】咨询电话;
-            content = content.replaceAll("【1】", smsSendconfigQueryRespVO.getProductName().substring(0, 10).replace("【", "").replace("】", "").replace("-", ""));
-            content = content.replaceAll("【2】", smsSendconfigQueryRespVO.getOrderNo());
-            content = content.replaceAll("【3】", smsSendconfigQueryRespVO.getUseDate().substring(0, 10));
-            content = content.replaceAll("【4】", smsSendconfigQueryRespVO.getContactName());
-            content = content.replaceAll("【5】", smsSendconfigQueryRespVO.getNum() + "");
-            content = content.replaceAll("【6】", smsSendconfigQueryRespVO.getSourceName());
-            content = content.replaceAll("【7】", smsSendconfigQueryRespVO.getContactName());
-            content = content.replaceAll("【8】", smsSendconfigQueryRespVO.getMobile());
-            content = content.replaceAll("【9】", smsSendconfigQueryRespVO.getRouteName());
-            content = content.replaceAll("【10】", smsSendconfigQueryRespVO.getShortName());
-            content = content.replaceAll("【11】", telphone);
-            JSONArray parts = JSONUtil.parseArray(content);
-            JSONArray templates = JSONUtil.parseArray(smsSendconfigQueryRespVO.getTemplateParams());
-            Map map = new HashMap<>();
-            for (int i = 0; i < templates.size(); i++) {
-                String key = templates.getStr(i);
-                String value = parts.getStr(i);
-                map.put(key, value);
-            }
-            String content1 = "【三峡旅游】" + StrUtil.format(smsSendconfigQueryRespVO.getSmsContent(), map);
-            String mobile = smsSendconfigQueryRespVO.getMobile();
-            log.error("[下单成功短信发送参数]:" + content1 + ";手机号:" + mobile);
-            String params = SmsUtil.generateParams2(
-                    String.join(",", mobile), content1, null, null, null
-            );
-            // 生成时间戳和token
-            String timeStamp = String.valueOf(System.currentTimeMillis());
-            String original = appId + timeStamp + secretKey;
-            String token = md5(original).toLowerCase();
-            // 构造请求头参数
-            Map<String, String> headers = new HashMap<>();
-            headers.put("userId", appId);
-            headers.put("timeStamp", timeStamp);
-            headers.put("token", token);
-            log.error("[下单成功短信发送参数]:" + url + ";" + params);
-            String result = sendPost(url, params, headers);
-            log.error("[下单成功短信返回参数]:" + result);
-
-            // 检查返回结果是否为有效的JSON格式
-            SmsBatchSendRespDTO response = null;
-            if (result != null && result.trim().startsWith("{")) {
-                try {
-                    response = JSONUtil.toBean(result, SmsBatchSendRespDTO.class);
-                } catch (Exception e) {
-                    log.error("短信接口返回JSON解析失败,原始响应内容: {}", result, e);
-                }
-            } else {
-                log.error("短信接口返回非JSON格式响应,原始响应内容: {}", result);
-            }
-
-            if (response != null && response.getCode() != null && response.getCode() == 0) {
-                log.error("[下单成功短信发送成功]:" + mobile);
-                SmsSendLogDTO reqDTO = new SmsSendLogDTO();
-                reqDTO.setId(IdWorker.getId());
-                reqDTO.setTenantId(smsSendconfigQueryRespVO.getTenantId());
-                reqDTO.setMobile(mobile);
-                reqDTO.setSmsConfigId(mobile);
-                reqDTO.setOrderNo(smsSendconfigQueryRespVO.getOrderNo());
-                reqDTO.setSmsConfigId(smsSendconfigQueryRespVO.getId() + "");
-                reqDTO.setResult(result);
-                if (result != null && result.indexOf("success") != -1) {
-                    reqDTO.setStatus(1);
-                } else {
-                    reqDTO.setStatus(0);
-                }
-                reqDTO.setSmsContent(content1);
-                tradeOrderRepositoryService.insertSmsLog(reqDTO);
-                return "发送成功";
-            } else {
-                String errorMsg = "短信发送失败";
-                if (response != null && response.getMsg() != null) {
-                    errorMsg += ": " + response.getMsg();
-                } else if (result != null) {
-                    errorMsg += ",原始响应: " + result;
-                }
-                return errorMsg;
-            }
-        } catch (Exception e) {
-            log.error("[下单成功短信发送失败]:" + e.getMessage());
-            return "短信发送失败: " + e.getMessage();
-        }
-    }
-
     private String md5(String input) {
         try {
             java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");

+ 5 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderRepositoryServiceImpl.java

@@ -783,6 +783,11 @@ public class TradeOrderRepositoryServiceImpl implements TradeOrderRepositoryServ
         return tradeDetailMapper.selectOrderSmsInfo(orderId, type);
     }
 
+    @Override
+    public List<SmsSendconfigQueryRespVO> getCreateOrderSmsInfo(Long orderId, Integer type) {
+        return tradeDetailMapper.selectCreateOrderSmsInfo(orderId, type);
+    }
+
     @Override
     public void insertSmsLog(SmsSendLogDTO smsSendLogDTO) {
         tradeDetailMapper.insertSmsLog(smsSendLogDTO);

+ 0 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java

@@ -1137,7 +1137,6 @@ public class TradeOrderServiceImpl implements TradeOrderService {
     private void afterOrderModify(TradeOrderBO tradeOrderBO, String content) {
         //执行下单后处理器
         tradeOrderHandlers.forEach(handler -> handler.afterOrderModify(tradeOrderBO));
-        tradePublishUtils.publishOrderCreateSuccessMsg(tradeOrderBO.getTradeOrderDO().getId().toString());
         //支付倒计时--不超时,有预订单
         Map<String, Object> append = TradeOrderLogUtils.append("result", "订单修改");
         append.put("content", content);

+ 6 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -96,6 +96,7 @@ import com.yc.ship.module.trade.enums.*;
 import com.yc.ship.module.trade.framework.annotation.TradeOrderLog;
 import com.yc.ship.module.trade.framework.common.ThreadLocalUtil;
 import com.yc.ship.module.trade.framework.common.TradeOrderLogUtils;
+import com.yc.ship.module.trade.framework.mq.TradePublishUtils;
 import com.yc.ship.module.trade.service.invoice.InvoiceService;
 import com.yc.ship.module.trade.service.order.TradeOrderRepositoryService;
 import com.yc.ship.module.trade.service.order.TradeOrderService;
@@ -243,6 +244,9 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     @Resource
     private RedissonClient redissonClient;
 
+    @Resource
+    private TradePublishUtils tradePublishUtils;
+
 
     public final static String AGENCY_LOGIN_INFO = "agencyLoginInfo";
 
@@ -1958,12 +1962,12 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     orderPolicyDO.setRooms(policy.getRooms());
                     orderPolicyDOList.add(orderPolicyDO);
                 });
-                if (orderPolicyDOList.size() > 0) {
+                if (!orderPolicyDOList.isEmpty()) {
                     //TODO: 判断优惠政策是否需要审核
                     orderPolicyMapper.insertBatch(orderPolicyDOList);
                 }
             }
-
+            tradePublishUtils.publishOrderCreateSuccessMsg(neworderId+"");
             OtcTradeOrderCreateRespVO respVO = TradeOrderConvert.INSTANCE.convert(result.getData());
             return CommonResult.success(respVO, msg);
         } finally {

+ 25 - 1
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeDetailMapper.xml

@@ -1341,7 +1341,31 @@
         and t7.deleted = 0
         and t8.deleted = 0
         and t7.is_use = 1
-        and t7.send_type=#{type}
+        and t7.send_type=3
+        and t6.send_type=#{type}
+        and t1.id=#{orderId}
+        GROUP BY t1.id
+
+    </select>
+    <select id="selectCreateOrderSmsInfo" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
+        select t7.*,t1.group_no groupNo,t2.product_id,t2.product_name,t66.name voyageName,t66.start_time,t66.leave_time,t77.name shipName,t67.name routeName,t1.order_no,t1.seller_id,t2.use_date,count(distinct t2.id) num,t1.source_name,t1.link_man contact_name,t1.link_mobile mobile,t6.params templateParams,t6.api_template_id,t8.api_key,t8.api_secret,t8.api_url,t8.signature,t8.code channelCode from
+        trade_order t1
+        inner join trade_detail t2 on t1.id = t2.order_id
+        inner join trade_order_user t3 on t3.order_id = t1.id
+        inner join product_voyage t66 on t66.id = t1.voyage_id
+        inner join resource_route t67 on t66.route_id = t67.id
+        inner join resource_ship t77 on t77.id = t1.ship_id
+        left join system_sms_product t5 on (t67.id=t5.product_id )
+        left join system_sms_sendconfig t7 on t7.id = t5.sms_template_id
+        left join system_sms_template t6 on t7.sms_template_id = t6.id
+        left join system_sms_channel t8 on t8.id = t6.channel_id
+        where  t2.voucher_status =0
+        and t2.deleted = 0
+        and t7.deleted = 0
+        and t8.deleted = 0
+        and t7.is_use = 1
+        and t7.send_type=3
+        and t6.send_type=#{type}
         and t1.id=#{orderId}
         GROUP BY t1.id
 

+ 12 - 15
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/smsSendconfig/SmsSendconfigMapper.xml

@@ -9,22 +9,18 @@
         文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
      -->
     <select id="querySendList" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
-        select * from (
-        select t1.*,t4.group_no groupNo,t66.name voyageName,t77.name shipName,t67.name routeName ,t2.product_id,t3.product_name,tt2.short_name,t4.order_no,t3.use_date,count(1)
-        num,t4.source_name,t5.contact_name,t5.mobile,t7.api_template_id,t7.params templateParams,t8.api_key,t8.api_secret,t8.api_url,t8.signature,t8.code channelCode from
-        system_sms_sendconfig t1
-        inner join system_sms_product t2 on t1.id = t2.sms_template_id
-        inner join trade_detail t3 on t2.product_id = t3.product_id
-        inner join product_spu tt2 on t3.product_id = tt2.id
-        inner join trade_order t4 on t3.order_id = t4.id
-        inner join trade_order_user t5 on t4.id=t5.order_id
-        inner join product_voyage t66 on t66.id = t4.voyage_id
+        select * from (select t7.*,t1.group_no groupNo,t2.product_id,t2.product_name,t66.name voyageName,t66.start_time,t66.leave_time,t77.name shipName,t67.name routeName,t1.order_no,t1.seller_id,t2.use_date,count(distinct t2.id) num,t1.source_name,t1.link_man contact_name,t1.link_mobile mobile,t1.group_no,t6.params templateParams,t6.api_template_id,t8.api_key,t8.api_secret,t8.api_url,t8.signature,t8.code channelCode from
+        trade_order t1
+        inner join trade_detail t2 on t1.id = t2.order_id
+        inner join trade_order_user t3 on t3.order_id = t1.id
+        inner join product_voyage t66 on t66.id = t1.voyage_id
         inner join resource_route t67 on t66.route_id = t67.id
-        inner join resource_ship t77 on t77.id = t4.ship_id
-        inner join system_sms_template t7 on t1.sms_template_id=t7.id
-        inner join system_sms_channel t8 on t8.id = t7.channel_id
-        where t3.use_date <![CDATA[ >= ]]> DATE_SUB(CURDATE(), INTERVAL 0 DAY) and t3.use_date <![CDATA[ <=]]>
-        DATE_SUB(CURDATE(), INTERVAL -1 DAY)
+        inner join resource_ship t77 on t77.id = t1.ship_id
+        inner join system_sms_product t5 on (t67.id=t5.product_id )
+        inner join system_sms_sendconfig t7 on t7.id = t5.sms_template_id
+        inner join system_sms_template t6 on t7.sms_template_id = t6.id
+        inner join system_sms_channel t8 on t8.id = t6.channel_id
+        where t2.use_date = DATE_SUB(CURDATE(), INTERVAL (t7.send_date_type-1) DAY)
         and t3.voucher_status in (1,2)
         and t1.deleted = 0
         and t2.deleted = 0
@@ -36,6 +32,7 @@
         <if test="type != null and type == 0">
             AND t1.send_type = 2
         </if>
+        and t6.send_type = 1
         GROUP BY t1.id,t4.id
         ) m	where  not EXISTS (
             select p1.order_no from system_sms_send_log p1 where status = 1 and m.order_no=p1.order_no and p1.sms_config_id = m.id