lishiqiang 3 giorni fa
parent
commit
5bdbac96aa
13 ha cambiato i file con 385 aggiunte e 6 eliminazioni
  1. 3 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderRespNewVO.java
  2. 24 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/smsSendconfig/MessageSendMapper.java
  3. 47 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageJob.java
  4. 41 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageTwoJob.java
  5. 59 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/MessageHandler.java
  6. 5 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/MoblieMessageAliyunUtil.java
  7. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/SmsHandler.java
  8. 4 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/impl/TradeOrderServiceImpl.java
  9. 24 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  10. 18 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/MessageSendService.java
  11. 78 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/MessageSendServiceImpl.java
  12. 80 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/smsSendconfig/MessageSendMapper.xml
  13. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/smsSendconfig/SmsSendconfigMapper.xml

+ 3 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderRespNewVO.java

@@ -187,9 +187,11 @@ public class TradeOrderRespNewVO {
     private String roomModelDetails;
 
     @Schema(description = "审核人")
-    @ExcelProperty("审核人")
     private String auditUser;
 
+    @Schema(description = "审核角色名称")
+    private String auditUserName;
+
     @Schema(description = "审核时间")
     @ExcelProperty("审核时间")
     @JsonFormat(shape = JsonFormat.Shape.STRING,pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)

+ 24 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/smsSendconfig/MessageSendMapper.java

@@ -0,0 +1,24 @@
+package com.yc.ship.module.trade.dal.mysql.smsSendconfig;
+
+
+import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO;
+import com.yc.ship.module.trade.dal.dataobject.smsSendconfig.SmsSendconfigDO;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * 短信发送配置 Mapper
+ *
+ * @author 管理员
+ */
+@Mapper
+public interface MessageSendMapper extends BaseMapperX<SmsSendconfigDO> {
+
+
+    List<SmsSendconfigQueryRespVO> querySendList1();
+    List<SmsSendconfigQueryRespVO> querySendList2();
+
+
+}

+ 47 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageJob.java

@@ -0,0 +1,47 @@
+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.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.service.smsSendconfig.MessageSendService;
+import com.yc.ship.module.trade.service.smsSendconfig.SmsSendconfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 订单站内信消息任务
+ *
+ * @author qsl
+ * @date 2023/03/06
+ */
+@Component
+@Slf4j
+public class OrderMessageJob implements JobHandler {
+    @Resource
+    private MessageSendService messageSendService;
+
+
+    /***
+     * @author qsl
+     * 2026/3/6 17:38
+     */
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 22 天 中午12:00) <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            messageSendService.sendMsg1();
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 22 天 中午12:00)End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+
+
+}

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageTwoJob.java

@@ -0,0 +1,41 @@
+package com.yc.ship.module.trade.job;
+
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.service.smsSendconfig.MessageSendService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 订单站内信消息任务
+ *
+ * @author qsl
+ * @date 2023/03/06
+ */
+@Component
+@Slf4j
+public class OrderMessageTwoJob implements JobHandler {
+    @Resource
+    private MessageSendService messageSendService;
+
+
+
+
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 21 天 10:00) <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            messageSendService.sendMsg2();
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 21 天 10:00)End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+
+}

+ 59 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/MessageHandler.java

@@ -0,0 +1,59 @@
+package com.yc.ship.module.trade.service.order.handler;
+
+
+import com.yc.ship.module.infra.api.config.ConfigApi;
+import com.yc.ship.module.system.api.notify.NotifyMessageSendApi;
+import com.yc.ship.module.system.api.user.AdminUserApi;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
+import com.yc.ship.module.trade.service.order.TradeOrderRepositoryService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+
+/**
+ * &#064;Description 保险处理
+ * &#064;Author qsl
+ * &#064;Date 2025/8/16 14:49
+ */
+@Component
+@Order(TradeOrderHandler.SMS_ORDER)
+@Slf4j
+public class MessageHandler implements TradeOrderHandler {
+
+
+    @Resource
+    private TradeOrderRepositoryService tradeOrderRepositoryService;
+    @Resource
+    private AdminUserApi adminUserApi;
+    @Resource
+    private ConfigApi configApi;
+    @Resource
+    private NotifyMessageSendApi notifyMessageSendApi;
+
+    @Override
+    public void processOrderCreateSuccess(TradeOrderDO tradeOrderDO) {
+        try {
+
+        } catch (Exception e) {
+            log.error("短信发送异常", e);
+        }
+    }
+
+    /***
+     * 转确认单发送 旅行社和直客
+     * 2026/3/6 17:28
+     */
+    @Override
+    public void afterProcessSuccess(TradeOrderDO tradeOrderDO) {
+        try {
+
+        } catch (Exception e) {
+            log.error("短信发送异常", e);
+        }
+    }
+
+
+}

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

@@ -95,9 +95,12 @@ public class MoblieMessageAliyunUtil {
 
     public static void main(String[] args) throws Exception{
         //您预定的${useDate}“长江游轮”即将开启.请您于${startTime}起前往 ${startAddr}登船,身份证即为船票,出行时请携带所有出行人的身份证原件,${endTime}将停止检票.请勿携带宠物、管制刀具等违禁物品登船,祝您旅途愉快!
-        String ss = "{\"boatName\":\"长江游轮\",\"orderNo\":\"SP202691203132\",\"routeName\":\"宜昌-重庆\",\"startTime\":\"2026-4-20\",\"jzTime\":\"2026年3月19日\"}";
+        String ss = "{\"boatName\":\"太阳神号游轮\",\"routeName\":\"航线\",\"startTime\":\"2026年05月01日\",\"jzTime\":\"2026年04月26日\"}";
+//        String ss = "{\"boatName\":\"1\",\"orderNo\":\"2\",\"routeName\":\"3\",\"startTime\":\"2026\",\"jzTime\":\"2026\"}";
+//        String ss = "{\"boatName\":\"1\",\"routeName\":\"3\"}";
 //        SendSmsResponse s = sendSms("LTAI5t9eyWeREnjqs3ozEP22","hdl5UOYVFGCXz9ZNwy8w1mEt8z8Lmz","长江行游轮","18628286025", ss, "SMS_501695562");
-        SendSmsResponse s = sendSms("LTAI5t68WFsQmRcgLUcpydhb","EzZp3TQa7Ah96htShNqb7m44PEGk8v","长江行游轮","18628286025", ss, "SMS_501695562");
+//        SendSmsResponse s = sendSms("LTAI5t68WFsQmRcgLUcpydhb","EzZp3TQa7Ah96htShNqb7m44PEGk8v","长江行游轮","18628286025", ss, "SMS_501695562");
+        SendSmsResponse s = sendSms("LTAI5t68WFsQmRcgLUcpydhb","EzZp3TQa7Ah96htShNqb7m44PEGk8v","长江行游轮","18628286025", ss, "SMS_501700557");
         System.out.println(s.getMessage());
 
 //        String input = "这是一个【date】示例【startTime】字符【content】串";

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

@@ -147,7 +147,7 @@ public class SmsHandler implements TradeOrderHandler {
             log.error("[下单成功短信发送参数]:" + smsSendconfigQueryRespVO.getApiTemplateId() + ";" + mobile + ";" + jsonObject.toString());
             SendSmsResponse result = MoblieMessageAliyunUtil.sendSms(appId, secretKey, signName, mobile, jsonObject.toString(), smsSendconfigQueryRespVO.getApiTemplateId() + "");
             log.error("[下单成功短信返回参数]:" + JSONUtil.toJsonStr(result));
-            if (result != null && result.getCode().equals("OK")) {
+            if (result != null && "OK".equals(result.getCode())) {
                 log.error("[下单成功短信发送成功]:" + mobile);
                 SmsSendLogDTO reqDTO = new SmsSendLogDTO();
                 reqDTO.setId(IdWorker.getId());

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

@@ -32,6 +32,7 @@ import com.yc.ship.module.product.service.voyage.VoyageService;
 import com.yc.ship.module.resource.api.ship.ShipApi;
 import com.yc.ship.module.resource.api.ship.dto.ShipRespDTO;
 import com.yc.ship.module.system.api.permission.RoleApi;
+import com.yc.ship.module.system.api.permission.dto.AdminRoleRespDTO;
 import com.yc.ship.module.system.api.user.AdminUserApi;
 import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
 import com.yc.ship.module.trade.api.dto.*;
@@ -163,6 +164,8 @@ public class TradeOrderServiceImpl implements TradeOrderService {
 
         List<AdminUserRespDTO> userList = adminUserApi.getUserList();
         Map<Long, String> userMap = new HashMap<>(userList.stream().collect(Collectors.toMap(AdminUserRespDTO::getId, AdminUserRespDTO::getNickname)));
+        List<AdminRoleRespDTO> roleList = roleApi.getRoleList();
+        Map<Long, String> roleMap = new HashMap<>(roleList.stream().collect(Collectors.toMap(AdminRoleRespDTO::getId, AdminRoleRespDTO::getName)));
 
         iPage.getRecords().forEach(tradeOrderRespVO -> {
             List<TradeVisitorRespVO> visitorDOList = tradeVisitorMapper.queryVisitorByOrderId(tradeOrderRespVO.getId());
@@ -181,7 +184,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
                 tradeOrderRespVO.setIsRead(0);
             }
             if(StringUtils.isNotBlank(tradeOrderRespVO.getAuditUser())){
-                tradeOrderRespVO.setAuditUserName(userMap.get(Long.parseLong(tradeOrderRespVO.getAuditUser())));
+                tradeOrderRespVO.setAuditUserName(roleMap.get(Long.parseLong(tradeOrderRespVO.getAuditUser())));
             }
             if (tradeOrderRespVO.getReadUser() != null) {
                 tradeOrderRespVO.setReadUserName(userMap.get(tradeOrderRespVO.getReadUser()));

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

@@ -70,6 +70,8 @@ import com.yc.ship.module.resource.service.roommodel.ResourceRoomModelService;
 import com.yc.ship.module.resource.service.ship.ResourceShipService;
 import com.yc.ship.module.system.api.dict.DictDataApi;
 import com.yc.ship.module.system.api.dict.dto.DictDataRespDTO;
+import com.yc.ship.module.system.api.notify.NotifyMessageSendApi;
+import com.yc.ship.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
 import com.yc.ship.module.system.api.user.AdminUserApi;
 import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
 import com.yc.ship.module.trade.api.dto.TradeOrderPayDTO;
@@ -122,6 +124,7 @@ import java.io.InputStream;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
@@ -157,6 +160,8 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
     private RouteApi routeApi;
     @Resource
     private ShipApi shipApi;
+    @Resource
+    private NotifyMessageSendApi notifyMessageSendApi;
 
     @Resource
     private ResourceRoomModelService resourceRoomModelService;
@@ -394,6 +399,25 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                         .set(TradeOrderDO::getDeposiStatus, 1)
                         .eq(TradeOrderDO::getId, orderId)
                 );
+
+                try {
+                    Map map = new HashMap();
+                    map.put("orderNo", tradeOrderDO.getOrderNo());
+                    VoyageDO voyage = voyageService.getVoyage(tradeOrderDO.getVoyageId());
+                    RouteRespDTO routeRespDTO = routeApi.queryRouteById(voyage.getRouteId());
+                    ShipRespDTO shipRespDTO = shipApi.queryShip(tradeOrderDO.getShipId());
+                    map.put("routeName", routeRespDTO.getName());
+                    map.put("boatName", shipRespDTO.getName());
+                    map.put("startTime", DateUtil.formatDate(tradeOrderDO.getTravelDate()));
+                    NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+                    reqDTO.setTemplateParams(map);
+                    reqDTO.setTemplateCode("sendmsg_cd_3");
+                    reqDTO.setUserId(Long.parseLong(tradeOrderDO.getSellerId()));
+                    notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+                } catch (Exception e) {
+                    log.error("发送短信异常", e);
+                }
+
                 Map<String, Object> extMap = new HashMap<>();
                 extMap.put("result", "审核通过");
                 TradeOrderLogUtils.setOrderInfo(orderId, tradeOrderDO.getOrderStatus(), TradeOrderStatusEnum.UNPAID.getStatus(), extMap);

+ 18 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/MessageSendService.java

@@ -0,0 +1,18 @@
+package com.yc.ship.module.trade.service.smsSendconfig;
+
+
+/**
+ * 短信发送配置 Service 接口
+ *
+ * @author 管理员
+ */
+public interface MessageSendService {
+
+
+    /**
+     * 初定即将过期前 1 天(开航前 22 天 中午12:00)
+     */
+    void sendMsg1();
+    void sendMsg2();
+
+}

+ 78 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/MessageSendServiceImpl.java

@@ -0,0 +1,78 @@
+package com.yc.ship.module.trade.service.smsSendconfig;
+
+import com.yc.ship.module.system.api.notify.NotifyMessageSendApi;
+import com.yc.ship.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
+import com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO;
+import com.yc.ship.module.trade.dal.mysql.smsSendconfig.MessageSendMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 短信发送配置 Service 实现类
+ *
+ * @author 管理员
+ */
+@Service
+@Validated
+@Slf4j
+public class MessageSendServiceImpl implements MessageSendService {
+
+
+    @Resource
+    private NotifyMessageSendApi notifyMessageSendApi;
+
+    @Resource
+    private MessageSendMapper messageSendMapper;
+
+
+    @Override
+    public void sendMsg1() {
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList1();
+        smsSendconfigQueryRespVOS.forEach(smsSendconfigQueryRespVO -> {
+            try {
+                Map map = new HashMap();
+                map.put("orderNo", smsSendconfigQueryRespVO.getOrderNo());
+                map.put("routeName", smsSendconfigQueryRespVO.getRouteName());
+                map.put("boatName", smsSendconfigQueryRespVO.getShipName());
+                map.put("startTime", smsSendconfigQueryRespVO.getStartTime());
+                NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+                reqDTO.setTemplateParams(map);
+                reqDTO.setTemplateCode("sendmsg_cd_1");
+                reqDTO.setUserId(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
+                notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+            } catch (Exception e) {
+                log.error("发送短信异常", e);
+            }
+        });
+
+    }
+
+    @Override
+    public void sendMsg2() {
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2();
+        smsSendconfigQueryRespVOS.forEach(smsSendconfigQueryRespVO -> {
+            try {
+                Map map = new HashMap();
+                map.put("orderNo", smsSendconfigQueryRespVO.getOrderNo());
+                map.put("routeName", smsSendconfigQueryRespVO.getRouteName());
+                map.put("boatName", smsSendconfigQueryRespVO.getShipName());
+                map.put("startTime", smsSendconfigQueryRespVO.getStartTime());
+                NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+                reqDTO.setTemplateParams(map);
+                reqDTO.setTemplateCode("sendmsg_cd_2");
+                reqDTO.setUserId(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
+                notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+            } catch (Exception e) {
+                log.error("发送短信异常", e);
+            }
+        });
+
+    }
+}

+ 80 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/smsSendconfig/MessageSendMapper.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yc.ship.module.trade.dal.mysql.smsSendconfig.MessageSendMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+    <select id="querySendList1" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
+        SELECT
+        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
+        FROM
+        trade_order t1
+        INNER JOIN trade_detail t2 ON t1.id = t2.order_id
+        left JOIN trade_order_user t3 ON t3.order_id = t1.id
+        left JOIN product_voyage t66 ON t66.id = t1.voyage_id
+        left JOIN resource_route t67 ON t66.route_id = t67.id
+        left JOIN resource_ship t77 ON t77.id = t1.ship_id
+        WHERE 1=1
+        and t2.use_date = DATE_SUB(CURDATE(), INTERVAL( -22 ) DAY )
+        AND t1.order_status =14
+        AND t1.deleted = 0
+        AND t2.deleted = 0
+        and t2.use_date>now()
+        GROUP BY
+        t1.id
+    </select>
+    <select id="querySendList2" resultType="com.yc.ship.module.trade.controller.admin.smsSendconfig.vo.SmsSendconfigQueryRespVO">
+        SELECT
+        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
+        FROM
+        trade_order t1
+        INNER JOIN trade_detail t2 ON t1.id = t2.order_id
+        left JOIN trade_order_user t3 ON t3.order_id = t1.id
+        left JOIN product_voyage t66 ON t66.id = t1.voyage_id
+        left JOIN resource_route t67 ON t66.route_id = t67.id
+        left JOIN resource_ship t77 ON t77.id = t1.ship_id
+        WHERE 1=1
+        and t2.use_date = DATE_SUB(CURDATE(), INTERVAL( -21 ) DAY )
+        AND t1.order_status =14
+        AND t1.deleted = 0
+        AND t2.deleted = 0
+        and t2.use_date>now()
+        GROUP BY
+        t1.id
+    </select>
+
+</mapper>

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

@@ -21,7 +21,7 @@
         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,6)
+        and t2.voucher_status in (1,2,6)
         and t1.deleted = 0
         and t2.deleted = 0
         and t7.deleted = 0