Просмотр исходного кода

Merge branch 'main' of http://117.174.100.38:3000/lishiqiang/ship-ota-server into main1

luofeiyun 1 неделя назад
Родитель
Сommit
c4a92ed6ba
28 измененных файлов с 516 добавлено и 83 удалено
  1. 2 49
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributorrecharge/DistributorRechargeServiceImpl.java
  2. 4 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/vo/VoyageRespVO.java
  3. 4 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyage/VoyageDO.java
  4. 2 0
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyage/VoyageMapper.java
  5. 1 1
      ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageServiceImpl.java
  6. 17 0
      ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyage/VoyageMapper.xml
  7. 1 1
      ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/api/insurance/InsuranceApi.java
  8. 1 0
      ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/api/insurance/dto/InsuranceApplyReqDTO.java
  9. 3 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/api/insurance/InsuranceApiImpl.java
  10. 5 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/smsSendconfig/MessageSendMapper.java
  11. 41 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageFifthJob.java
  12. 3 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageForthJob.java
  13. 3 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageJob.java
  14. 41 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageNineJob.java
  15. 41 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageSenvenJob.java
  16. 41 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageSixJob.java
  17. 41 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageTenJob.java
  18. 3 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageThreeJob.java
  19. 3 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageTwoJob.java
  20. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/insurance/InsuranceService.java
  21. 3 2
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/insurance/InsuranceServiceImpl.java
  22. 5 3
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/order/handler/InsuranceHandler.java
  23. 6 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  24. 30 4
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/MessageSendService.java
  25. 178 5
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/smsSendconfig/MessageSendServiceImpl.java
  26. 1 1
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml
  27. 35 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/smsSendconfig/MessageSendMapper.xml
  28. BIN
      ship-module-trade/ship-module-trade-biz/src/main/resources/templates/confirmation_template.xlsx

+ 2 - 49
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributorrecharge/DistributorRechargeServiceImpl.java

@@ -366,21 +366,6 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
                                 try{
                                     if (rechargeReqDTO.getStoreId() != null){
                                         isShareBalance.set(true);
-//                                        StoreReqDTO reqDTO = this.convertStorePlatBalance(rechargeReqDTO.getStoreId(), tradeMode, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, null);
-//                                        TenantUtils.execute(distributor.getAccountTenantId(), () -> {
-//                                            StoreInfoReqDTO storeData = storeApi.getStoreById(rechargeReqDTO.getStoreId()).getCheckedData();
-//                                            Asserts.isTrue(!ObjectUtil.equals(storeData.getBalanceType(), StoreBalanceTypeEnum.FORBIDDEN.getType()), "当前门店禁止使用预付款");
-//                                            if(ObjectUtil.equals(storeData.getBalanceType(), StoreBalanceTypeEnum.FIXED.getType())){
-//                                                //只能使用门店自己的预付款
-//                                                CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(reqDTO);
-//                                                Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
-//                                                storeRespDTO.set(storeResult.getCheckedData());
-//                                            }else if(ObjectUtil.equals(storeData.getBalanceType(), StoreBalanceTypeEnum.SHARE.getType())){
-//                                                isShareBalance.set(true);
-//                                            }else {
-//                                                Asserts.isTrue(true,"门店禁用预付款");
-//                                            }
-//                                        });
                                     }else {
                                         isShareBalance.set(true);
                                     }
@@ -405,13 +390,13 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
 
                                 if(!flag){
                                     //尝试授信
-                                    tradeType = DistributorTradeTypeEnum.CREDIT_TRANS.getType();
+//                                    tradeType = DistributorTradeTypeEnum.CREDIT_TRANS.getType();
                                 }
                             } else {
                                 if (!canChangeToCredit) {
                                     throw exception0(11_028, "分销商无预付款交易权限!");
                                 }
-                                tradeType = DistributorTradeTypeEnum.CREDIT_TRANS.getType();
+//                                tradeType = DistributorTradeTypeEnum.CREDIT_TRANS.getType();
                             }
 
                             if(tradeType == DistributorTradeTypeEnum.CREDIT_TRANS.getType()){
@@ -432,22 +417,6 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
                             afterBalance = beforeBalance.add(money);
                             AtomicBoolean isShareBalance = new AtomicBoolean(false);
                             AtomicReference<StoreRespDTO> storeRespDTO = new AtomicReference<>();
-//                            if (rechargeReqDTO.getStoreId() != null){
-//                                StoreReqDTO reqDTO = this.convertStorePlatBalance(rechargeReqDTO.getStoreId(), tradeMode, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, rechargeReqDTO.getRefundId());
-//                                TenantUtils.execute(distributor.getAccountTenantId(), () -> {
-//                                    StoreInfoReqDTO storeData = storeApi.getStoreById(rechargeReqDTO.getStoreId()).getCheckedData();
-//                                    if(ObjectUtil.equals(storeData.getBalanceType(), StoreBalanceTypeEnum.FIXED.getType())){
-//                                        CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(reqDTO);
-//                                        Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
-//                                        storeRespDTO.set(storeResult.getCheckedData());
-//                                    }else{
-//                                        isShareBalance.set(true);
-//                                    }
-//                                });
-//                            }else{
-//                                isShareBalance.set(true);
-//                            }
-
                             if(true){
                                 tradeName =(tradeType==10?"定向库存":"")+"余额退款金额:" + money + "元,退款到账后剩余余额" + afterBalance + "元";
                                 //操作账户资金
@@ -572,22 +541,6 @@ public class DistributorRechargeServiceImpl implements DistributorRechargeServic
                             isShareBalance = new AtomicBoolean(true);
                             storeRespDTO = new AtomicReference<>();
                             if (rechargeReqDTO.getStoreId() != null){
-//                                StoreReqDTO reqDTO = this.convertStorePlatBalance(rechargeReqDTO.getStoreId(), tradeMode, money, Long.parseLong(rechargeReqDTO.getOrderId()), tradeType, null);
-//                                TenantUtils.execute(distributor.getAccountTenantId(), () -> {
-//                                    StoreInfoReqDTO storeData = storeApi.getStoreById(rechargeReqDTO.getStoreId()).getCheckedData();
-//                                    Asserts.isTrue(!ObjectUtil.equals(storeData.getBalanceType(), StoreBalanceTypeEnum.FORBIDDEN.getType()), "当前门店禁止使用预付款");
-//                                    if(ObjectUtil.equals(storeData.getBalanceType(), StoreBalanceTypeEnum.FIXED.getType())){
-//                                        //只能使用门店自己的预付款
-//                                        CommonResult<StoreRespDTO> storeResult = storeApi.storePlatTrade(reqDTO);
-//                                        Asserts.isTrue(storeResult.isSuccess(), storeResult.getMsg());
-//                                        storeRespDTO.set(storeResult.getCheckedData());
-//                                    }else if(ObjectUtil.equals(storeData.getBalanceType(), StoreBalanceTypeEnum.SHARE.getType())){
-//                                        isShareBalance.set(true);
-//                                    }else {
-//                                        Asserts.isTrue(true,"门店禁用预付款");
-//                                    }
-//                                });
-//                            }else {
                                 isShareBalance.set(true);
                             }
 

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/controller/admin/voyage/vo/VoyageRespVO.java

@@ -8,6 +8,7 @@ import com.yc.ship.module.resource.api.route.dto.RouteRespDTO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -24,6 +25,9 @@ public class VoyageRespVO {
     @ExcelProperty("航次名称")
     private String name;
 
+    @Schema(description = "基础价格")
+    private BigDecimal basicPrice;
+
 
     @Schema(description = "航次名称-带航向")
     private String fname;

+ 4 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/dataobject/voyage/VoyageDO.java

@@ -6,6 +6,7 @@ import com.sun.xml.bind.v2.TODO;
 import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
 import lombok.*;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -106,6 +107,9 @@ public class VoyageDO extends TenantBaseDO {
      */
     @TableField(exist = false)
     private Integer direction;
+
+    @TableField(exist = false)
+    private BigDecimal basicPrice;
     /**
      * 集合地点
      */

+ 2 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyage/VoyageMapper.java

@@ -89,6 +89,8 @@ public interface VoyageMapper extends BaseMapperX<VoyageDO> {
                 .orderByAsc(VoyageDO::getStartTime));
     }
 
+    List<VoyageDO> selectListCalendar2(@Param("vo") VoyageCalendarReqVO reqVO);
+
     default List<VoyageDO> selectListByShipId(Long shipId) {
         return selectList(new LambdaQueryWrapperX<VoyageDO>()
                 .eq(VoyageDO::getShipId, shipId)

+ 1 - 1
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyage/VoyageServiceImpl.java

@@ -414,7 +414,7 @@ public class VoyageServiceImpl implements VoyageService {
 
     @Override
     public List<VoyageDO> getListCalendar(VoyageCalendarReqVO reqVO) {
-        return voyageMapper.selectListCalendar(reqVO);
+        return voyageMapper.selectListCalendar2(reqVO);
     }
 
     @Override

+ 17 - 0
ship-module-product/ship-module-product-biz/src/main/resources/mapper/voyage/VoyageMapper.xml

@@ -12,6 +12,23 @@
          select  w.*,r.direction from product_voyage w inner join resource_route r on w.route_id = r.id
          where w.deleted = 0 and r.deleted = 0 and w.ship_id = #{shipId} and w.start_time > now() and w.shelf_status = 1 and w.channel like '%1%' order by w.create_time asc;
     </select>
+    <select id="selectListCalendar2" resultType="com.yc.ship.module.product.dal.dataobject.voyage.VoyageDO">
+        select w.*,r.basic_price basicPrice from product_voyage w inner join product_price_voyage r on w.route_id = r.id
+        where w.deleted = 0 and r.deleted = 0
+        <if test="vo.shipId != null and vo.shipId != ''">
+            and w.ship_id = #{shipId}
+        </if>
+        <if test="vo.startDate != null and vo.startDate != ''">
+            and w.start_time >= #{vo.startDate}
+        </if>
+        <if test="vo.endDate != null and vo.endDate != ''">
+            and w.start_time &lt;= #{vo.endDate}
+        </if>
+        <if test="vo.channel != null and vo.channel != ''">
+            and w.channel like concat('%',#{vo.channel},'%')
+        </if>
+         and w.shelf_status = 1 order by w.start_time asc;
+    </select>
     <select id="selectVoyageListByShipIdAndDate"
             resultType="com.yc.ship.module.product.controller.app.voyage.vo.AppVoyageDayRespVO">
         select w.id voyage_id, w.name as voyage_name,

+ 1 - 1
ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/api/insurance/InsuranceApi.java

@@ -19,7 +19,7 @@ public interface InsuranceApi {
 
     @Operation(summary = "申请投保")
     @PermitAll
-    CommonResult<InsuredRespDTO> applyInsurance(InsuranceApplyReqDTO reqDTO);
+    CommonResult<Boolean> applyInsurance(InsuranceApplyReqDTO reqDTO);
 
 
     @Operation(summary = "通过订单号退保")

+ 1 - 0
ship-module-trade/ship-module-trade-api/src/main/java/com/yc/ship/module/trade/api/insurance/dto/InsuranceApplyReqDTO.java

@@ -10,6 +10,7 @@ import java.util.List;
 public class InsuranceApplyReqDTO {
 
     /** 服务类型 */
+    private Long orderId;
     private String service;
 
     /** 回调URL */

+ 3 - 4
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/api/insurance/InsuranceApiImpl.java

@@ -20,10 +20,9 @@ public class InsuranceApiImpl implements InsuranceApi {
     private InsuranceService insuranceService;
 
     @Override
-    public CommonResult<InsuredRespDTO> applyInsurance(InsuranceApplyReqDTO reqDTO) {
-        //TODO: 待实现
-        return null;
-//        return insuranceService.applyInsurance(reqDTO);
+    public CommonResult<Boolean> applyInsurance(InsuranceApplyReqDTO reqDTO) {
+        boolean res = insuranceService.applyInsurance(reqDTO.getOrderId());
+        return CommonResult.success(res);
     }
 
     @Override

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

@@ -27,5 +27,10 @@ public interface MessageSendMapper extends BaseMapperX<SmsSendconfigDO> {
      */
     List<SmsSendconfigQueryRespVO> querySendList2(@Param("day") int day);
 
+    /***
+     * 已支付出航提示
+     */
+    List<SmsSendconfigQueryRespVO> querySendList3(@Param("day") int day);
+
 
 }

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageFifthJob.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 OrderMessageFifthJob implements JobHandler {
+    @Resource
+    private MessageSendService messageSendService;
+
+
+
+
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前8天提醒中午12:00 <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            messageSendService.sendMsg5();
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前8天提醒中午12:00 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前8天提醒中午12:00 End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+
+}

+ 3 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageForthJob.java

@@ -27,14 +27,14 @@ public class OrderMessageForthJob implements JobHandler {
     @Override
     @TenantJob
     public String execute(String param) {
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 开航前2天00:00仍未付款 <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前2天00:00仍未付款 <<<<<<<<<<<<<<<<<<<<<<");
         try {
             messageSendService.sendMsg4();
         } catch (Exception e) {
-            log.error(">>>>>>>>>>>>>>>>>>>>>> 开航前2天00:00仍未付款 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前2天00:00仍未付款 Error <<<<<<<<<<<<<<<<<<<<<<");
             log.error(e.getMessage(), e);
         }
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 开航前2天00:00仍未付款 End  <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前2天00:00仍未付款 End  <<<<<<<<<<<<<<<<<<<<<<");
         return "成功";
     }
 

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

@@ -32,14 +32,14 @@ public class OrderMessageJob implements JobHandler {
     @Override
     @TenantJob
     public String execute(String param) {
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 22 天 中午12:00) <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 您的留位订单即将过期(开航前 8 天 中午12:00) <<<<<<<<<<<<<<<<<<<<<<");
         try {
             messageSendService.sendMsg1();
         } catch (Exception e) {
-            log.error(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 您的留位订单即将过期(开航前 8 天 中午12:00) Error <<<<<<<<<<<<<<<<<<<<<<");
             log.error(e.getMessage(), e);
         }
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 22 天 中午12:00)End  <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 您的留位订单即将过期(开航前 8 天 中午12:00) End  <<<<<<<<<<<<<<<<<<<<<<");
         return "成功";
     }
 

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageNineJob.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 OrderMessageNineJob implements JobHandler {
+    @Resource
+    private MessageSendService messageSendService;
+
+
+
+
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【出发】开航前7天中午12点 <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            messageSendService.sendMsg9();
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 【出发】开航前7天中午12点 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【出发】开航前7天中午12点 End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+
+}

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageSenvenJob.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 OrderMessageSenvenJob implements JobHandler {
+    @Resource
+    private MessageSendService messageSendService;
+
+
+
+
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前14天中午12:00 <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            messageSendService.sendMsg6();
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前14天中午12:00 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前14天中午12:00 End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+
+}

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageSixJob.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 OrderMessageSixJob implements JobHandler {
+    @Resource
+    private MessageSendService messageSendService;
+
+
+
+
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前22天中午12:00 <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            messageSendService.sendMsg8();
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前22天中午12:00 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【锁定】开航前22天中午12:00 End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+
+}

+ 41 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageTenJob.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 OrderMessageTenJob implements JobHandler {
+    @Resource
+    private MessageSendService messageSendService;
+
+
+
+
+    @Override
+    @TenantJob
+    public String execute(String param) {
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 出团前1天上午8点 <<<<<<<<<<<<<<<<<<<<<<");
+        try {
+            messageSendService.sendMsg10();
+        } catch (Exception e) {
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 出团前1天上午8点 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(e.getMessage(), e);
+        }
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 出团前1天上午8点 End  <<<<<<<<<<<<<<<<<<<<<<");
+        return "成功";
+    }
+
+}

+ 3 - 3
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderMessageThreeJob.java

@@ -27,14 +27,14 @@ public class OrderMessageThreeJob implements JobHandler {
     @Override
     @TenantJob
     public String execute(String param) {
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 开航前7天提醒 中午12:00 <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【留位】开航前8天提醒 中午12:00 <<<<<<<<<<<<<<<<<<<<<<");
         try {
             messageSendService.sendMsg3();
         } catch (Exception e) {
-            log.error(">>>>>>>>>>>>>>>>>>>>>> 开航前7天提醒 中午12:00 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 【留位】开航前8天提醒 中午12:00 Error <<<<<<<<<<<<<<<<<<<<<<");
             log.error(e.getMessage(), e);
         }
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 开航前7天提醒 中午12:00 End  <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【留位】开航前8天提醒 中午12:00 End  <<<<<<<<<<<<<<<<<<<<<<");
         return "成功";
     }
 

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

@@ -27,14 +27,14 @@ public class OrderMessageTwoJob implements JobHandler {
     @Override
     @TenantJob
     public String execute(String param) {
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 21 天 10:00) <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【留位】(开航前22天中午12:00) <<<<<<<<<<<<<<<<<<<<<<");
         try {
             messageSendService.sendMsg2();
         } catch (Exception e) {
-            log.error(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 Error <<<<<<<<<<<<<<<<<<<<<<");
+            log.error(">>>>>>>>>>>>>>>>>>>>>> 【留位】(开航前22天中午12:00) Error <<<<<<<<<<<<<<<<<<<<<<");
             log.error(e.getMessage(), e);
         }
-        log.info(">>>>>>>>>>>>>>>>>>>>>> 初定即将过期前 1 天(开航前 21 天 10:00)End  <<<<<<<<<<<<<<<<<<<<<<");
+        log.info(">>>>>>>>>>>>>>>>>>>>>> 【留位】(开航前22天中午12:00) End  <<<<<<<<<<<<<<<<<<<<<<");
         return "成功";
     }
 

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/insurance/InsuranceService.java

@@ -50,7 +50,7 @@ public interface InsuranceService {
      *
      * @return
      */
-    void applyInsurance(Long orderId);
+    boolean applyInsurance(Long orderId);
 
     /**
      * 取消投保

+ 3 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/insurance/InsuranceServiceImpl.java

@@ -127,7 +127,7 @@ public class InsuranceServiceImpl implements InsuranceService {
      */
     @Override
     @Transactional
-    public void applyInsurance(Long orderId) {
+    public boolean applyInsurance(Long orderId) {
 
         TradeOrderRespVO orderInfo = tradeOrderMapper.getOrderInfo(orderId);
         VoyageDO voyage = voyageService.getVoyage(orderInfo.getVoyageId());
@@ -166,7 +166,7 @@ public class InsuranceServiceImpl implements InsuranceService {
         //被保人对象列表, 其下可多位被保险人, 他们在同个订单下
         List<TradeVisitorRespVO> tradeVisitorRespVOS = tradeVisitorMapper.queryVisitorByOrderId(orderId);
         List<InsuredDTO> insuredList = new ArrayList<>();
-        tradeVisitorRespVOS.stream().forEach(tradeVisitorRespVO -> {
+        tradeVisitorRespVOS.forEach(tradeVisitorRespVO -> {
             InsuredDTO insuredDTO = new InsuredDTO();
             insuredDTO.setExternalPolicyNumber(tradeVisitorRespVO.getId().toString());
             insuredDTO.setInsuredName(tradeVisitorRespVO.getName());
@@ -205,6 +205,7 @@ public class InsuranceServiceImpl implements InsuranceService {
         insuranceMapper.insert(insuranceDO);
         // 发送查询投保接口通知
         tradePublishUtils.publishInsuranceQueryMsg(orderInfo.getOrderNo(),0);
+        return true;
     }
 
     /**

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

@@ -73,7 +73,7 @@ public class InsuranceHandler implements TradeOrderHandler{
             }
             TradeVisitorBO holder = visitorDOList.get(0);
             InsuranceApplyReqDTO reqDTO = new InsuranceApplyReqDTO();
-//            reqDTO.setOrderId(tradeOrderDO.getId());
+            reqDTO.setOrderId(tradeOrderDO.getId());
 //            reqDTO.setAmount(MapUtil.get(insuranceProduct,"insurance_amount", BigDecimal.class));
 //            reqDTO.setPremium(MapUtil.get(insuranceProduct,"num", BigDecimal.class));
 //            reqDTO.setRationType(MapUtil.get(insuranceProduct,"insurance_code", String.class));
@@ -86,8 +86,10 @@ public class InsuranceHandler implements TradeOrderHandler{
 
         int insureFlag = 1;
         for (InsuranceApplyReqDTO reqDTO : dataList) {
-            InsuredRespDTO insuredRespDTO = insuranceApi.applyInsurance(reqDTO).getCheckedData();
-            if(ObjectUtils.equalsAny(insuredRespDTO.getInsuranceStatus() , InsuranceStatusEnum.INSURE.getValue(),InsuranceStatusEnum.FAIL.getValue(),InsuranceStatusEnum.CANCELLED.getValue())){
+            log.error("投保参数{}",reqDTO);
+            boolean res = insuranceApi.applyInsurance(reqDTO).getCheckedData();
+            log.error("投保请求返回{}",res);
+            if(!res){
                 insureFlag = 0;
             }
         }

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

@@ -410,9 +410,15 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
                     ShipRespDTO shipRespDTO = shipApi.queryShip(tradeOrderDO.getShipId());
                     map.put("routeName", routeRespDTO.getName());
                     map.put("boatName", shipRespDTO.getName());
+                    Date lastDate = DateUtil.offsetDay(tradeOrderDO.getTravelDate(), -7);
+                    map.put("jzTime7", DateUtil.format(lastDate, "yyyy-MM-dd"));
                     map.put("startTime", DateUtil.formatDate(tradeOrderDO.getTravelDate()));
                     NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
                     reqDTO.setTemplateParams(map);
+                    //尊敬的客户,您已成功预定长江行游轮({boatName}·{orderNo}·{routeName}·开航日期:{startTime})。
+                    // 请在既定的时限内完成付款。若需变更或取消,请参考退改规则并及时与长江行游轮计调人员[6334888]联系。
+                    //如需免费接站服务,请于${jzTime7}中午12:00前在系统中完善接站信息,逾期系统将视为自动放弃。
+                    //感谢您的配合,期待在长江行游轮与您相见!
                     reqDTO.setTemplateCode("sendmsg_cd_3");
                     reqDTO.setUserId(Long.parseLong(tradeOrderDO.getSellerId()));
                     notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);

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

@@ -10,21 +10,47 @@ public interface MessageSendService {
 
 
     /**
-     * 初定即将过期前 1 天(开航前 22 天 中午12:00)
+     * 您的留位订单即将过期(开航前 8 天 中午12:00)
      */
     void sendMsg1();
     /**
-     * 初定即将过期前 1 天(开航前 21 天 10:00)
+     * 【留位】(开航前22天中午12:00)
      */
     void sendMsg2();
 
     /**
-     * 开航前7天提醒 中午12:00
+     * 【留位】开航前8天提醒 中午12:00
      */
     void sendMsg3();
 
     /**
-     * 开航前2天00:00仍未付款
+     * 【锁定】开航前2天00:00仍未付款
      */
     void sendMsg4();
+
+
+    /**
+     * 【锁定】开航前8天提醒中午12:00
+     */
+    void sendMsg5();
+
+    /**
+     * 【锁定】开航前14天中午12:00
+     */
+    void sendMsg6();
+
+    /**
+     * 【锁定】开航前22天中午12:00
+     */
+    void sendMsg8();
+
+    /**
+     * 【出发】开航前7天中午12点
+     */
+    void sendMsg9();
+
+    /**
+     * 出团前1天上午8点
+     */
+    void sendMsg10();
 }

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

@@ -34,9 +34,14 @@ public class MessageSendServiceImpl implements MessageSendService {
     private MessageSendMapper messageSendMapper;
 
 
+    /***
+     * 【您的留位订单即将过期】
+     * 您的留位订单【{orderNo}】({routeName}/{boatName}/{startTime})将在今日24:00自动取消。后期如有新订单,均需录入锁位单,如因此造成相应损失,需自行承担。如需保留,请及时补全游客名单进行锁位。
+     * 提示:如在开航前7天内取消,将按退改规则扣损。如有疑问,欢迎致电:6334888。
+     */
     @Override
     public void sendMsg1() {
-        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList1(22);
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList1(8);
         smsSendconfigQueryRespVOS.forEach(smsSendconfigQueryRespVO -> {
             try {
                 Map map = new HashMap();
@@ -56,9 +61,13 @@ public class MessageSendServiceImpl implements MessageSendService {
 
     }
 
+    /***
+     * 【留位】(开航前22天中午12:00)
+     * 您的留位订单【{orderNo}】({routeName}/{boatName}/{startTime})即将过期。如需保留,请及时补全游客名单进行锁位。
+     */
     @Override
     public void sendMsg2() {
-        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList1(21);
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList1(22);
         smsSendconfigQueryRespVOS.forEach(smsSendconfigQueryRespVO -> {
             try {
                 Map map = new HashMap();
@@ -77,9 +86,15 @@ public class MessageSendServiceImpl implements MessageSendService {
         });
 
     }
+
+    /***
+     * 【留位】开航前8天提醒 中午12:00
+     * 您的留位订单【{orderNo}】({routeName}/{boatName}/{startTime})将在今日24:00自动取消。
+     * 后期如有新订单,均需录入锁位单,如因此造成相应损失,需自行承担。如需保留,请及时补全游客名单进
+     */
     @Override
     public void sendMsg3() {
-        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2(7);
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList1(8);
         smsSendconfigQueryRespVOS.forEach(smsSendconfigQueryRespVO -> {
             try {
                 Map map = new HashMap();
@@ -87,8 +102,8 @@ public class MessageSendServiceImpl implements MessageSendService {
                 map.put("routeName", smsSendconfigQueryRespVO.getRouteName());
                 map.put("boatName", smsSendconfigQueryRespVO.getShipName());
                 map.put("startTime", smsSendconfigQueryRespVO.getStartTime());
-                Date lastDate = DateUtil.offsetDay(DateUtil.parse(smsSendconfigQueryRespVO.getStartTime()), -4);
-                map.put("lastTime", DateUtil.format(lastDate, "yyyy-MM-dd"));
+//                Date lastDate = DateUtil.offsetDay(DateUtil.parse(smsSendconfigQueryRespVO.getStartTime()), -4);
+//                map.put("lastTime", DateUtil.format(lastDate, "yyyy-MM-dd"));
                 NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
                 reqDTO.setTemplateParams(map);
                 reqDTO.setTemplateCode("sendmsg_cd_4");
@@ -101,6 +116,14 @@ public class MessageSendServiceImpl implements MessageSendService {
 
     }
 
+    /***
+     * 【锁定】开航前2天00:00仍未付款
+     * 订单【{orderNo}】({routeName}/{boatName}/{startTime})已临近出发。
+     * 请在24小时内完成支付,逾期系统将自动取消订单,游轮舱位无法保留。
+     * 为避免影响行程,敬请尽快处理。
+     * 如有疑问,欢迎致电:6334888。
+     */
+
     @Override
     public void sendMsg4() {
         List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2(2);
@@ -122,4 +145,154 @@ public class MessageSendServiceImpl implements MessageSendService {
         });
 
     }
+
+    /***
+     * 【锁定】开航前8天提醒中午12:00
+     * 订单【{orderNo}】({routeName}/{boatName}/{startTime})已临近出发,请及时完成以下事项:
+     * 1.付款:请尽快付款以锁定游轮舱位;
+     * 2.接站信息确认:如已预约接站,请在3日内与游客确认信息准确,如需更改请于{jzTime}中午12点前完成更改。
+     * 如因信息缺失、错误或未在规定时间内提交而影响接站安排,将无法正常提供接站服务,敬请留意。如有疑问,欢迎致电:6334888。
+     */
+    @Override
+    public void sendMsg5() {
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2(8);
+        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());
+                Date lastDate = DateUtil.offsetDay(DateUtil.parse(smsSendconfigQueryRespVO.getStartTime()), -4);
+                map.put("jzTime4", DateUtil.format(lastDate, "yyyy-MM-dd"));
+                NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+                reqDTO.setTemplateParams(map);
+                reqDTO.setTemplateCode("sendmsg_cd_6");
+                reqDTO.setUserId(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
+                notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+            } catch (Exception e) {
+                log.error("发送短信异常", e);
+            }
+        });
+
+    }
+
+    /***
+     * 【锁定】开航前14天中午12:00
+     * 订单【{orderNo}】({routeName}/{boatName}/{startTime})已临近出发,请及时完成以下事项:
+     * 1.付款:请尽快付款以锁定游轮舱位;
+     * 2.接站信息确认:如已预约接站,请及时与游客确认信息准确,并于${jzTime7}中午12点前完成登记。如因信息缺失、错误或未在规定时间内提交而影响接站安排,将无法正常提供接站服务,敬请留意。
+     * 如有疑问,欢迎致电:6334888。
+     */
+    @Override
+    public void sendMsg6() {
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2(14);
+        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());
+                Date lastDate = DateUtil.offsetDay(DateUtil.parse(smsSendconfigQueryRespVO.getStartTime()), -7);
+                map.put("jzTime7", DateUtil.format(lastDate, "yyyy-MM-dd"));
+                NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+                reqDTO.setTemplateParams(map);
+                reqDTO.setTemplateCode("sendmsg_cd_8");
+                reqDTO.setUserId(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
+                notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+            } catch (Exception e) {
+                log.error("发送短信异常", e);
+            }
+        });
+
+    }
+
+
+
+    /***
+     * 【锁定】开航前22天中午12:00
+     * 订单【{orderNo}】({routeName}/{boatName}/{startTime})已临近出发,请及时完成以下事项:
+     * 1.付款:请尽快付款以锁定游轮舱位;
+     * 2.接站信息确认:如已预约接站,请及时与游客确认信息准确,并于${jzTime7}中午12点前完成登记。如因信息缺失、错误或未在规定时间内提交而影响接站安排,将无法正常提供接站服务,敬请留意。
+     * 如有疑问,欢迎致电:6334888。
+     */
+    @Override
+    public void sendMsg8() {
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2(22);
+        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());
+                Date lastDate = DateUtil.offsetDay(DateUtil.parse(smsSendconfigQueryRespVO.getStartTime()), -7);
+                map.put("jzTime7", DateUtil.format(lastDate, "yyyy-MM-dd"));
+                NotifySendSingleToUserReqDTO reqDTO = new NotifySendSingleToUserReqDTO();
+                reqDTO.setTemplateParams(map);
+                reqDTO.setTemplateCode("sendmsg_cd_9");
+                reqDTO.setUserId(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
+                notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+            } catch (Exception e) {
+                log.error("发送短信异常", e);
+            }
+        });
+
+    }
+
+    /***
+     * 【出发】开航前7天中午12点
+     * 尊敬的游客,您预订的 {boatName}({routeName})将于{startTime}启航。如您已预约免费接站服务,请在3日内向预订旅行社补充或确认接站信息。
+     * 如因信息缺失、错误或未在规定时间内提交而影响接站安排,将无法正常提供接站服务,敬请留意。
+     * 如需协助,请致电[400-696-0666]。祝您旅途愉快!
+     */
+    @Override
+    public void sendMsg9() {
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2(7);
+        smsSendconfigQueryRespVOS.forEach(smsSendconfigQueryRespVO -> {
+            try {
+                Map map = new HashMap();
+                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_10");
+                reqDTO.setUserId(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
+                notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+            } catch (Exception e) {
+                log.error("发送短信异常", e);
+            }
+        });
+
+    }
+
+    /***
+     * 出团前1天上午8点
+     * 尊敬的游客,您预订的 {boatName}({routeName})将于明日启航。如您已预约免费接站服务,请再次确认您的接站信息。接站时间为登船日当天[宜昌:08:00-20:00;重庆:09:00-20:00]。工作人员届时将在出站口附近迎接,站点指引等更多信息请参阅长江行游轮小程序,工作人员将提前与您电话联系,请您注意接听。
+     * 请您务必携带预订时填写的有效身份证件。如行程临时变更,请及时致电[400-696-0666]。
+     * 祝您旅途愉快!
+     */
+    @Override
+    public void sendMsg10() {
+        List<SmsSendconfigQueryRespVO> smsSendconfigQueryRespVOS = messageSendMapper.querySendList2(1);
+        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_11");
+                reqDTO.setUserId(Long.parseLong(smsSendconfigQueryRespVO.getSellerId()));
+                notifyMessageSendApi.sendSingleMessageToAdmin(reqDTO);
+            } catch (Exception e) {
+                log.error("发送短信异常", e);
+            }
+        });
+
+    }
 }

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

@@ -1865,7 +1865,7 @@
 
     <select id="regionStatic"  resultType="java.util.Map">
         select t4.id,t4.`name`,t6.province,t6.city,count(DISTINCT t3.id) num from trade_order t1 inner join trade_detail t2 on t1.id = t2.order_id
-        inner join trade_visitor t3 on t2.id = t3.detail_id
+        inner join trade_visitor t3 on t2.visitor_id = t3.id
         inner join ota_distributor t4 on t1.source_id = t4.id
         inner join ota_distributor_region t5 on t4.id = t5.distributor_id
         and (left(t3.credential_no,2) = t5.distributor_region_id or left(t3.credential_no,4) = t5.distributor_region_id)

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

@@ -77,4 +77,39 @@
         t1.id
     </select>
 
+    <select id="querySendList3" 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( -#{day} ) DAY )
+        AND t1.order_status =6
+        AND t1.deleted = 0
+        AND t2.deleted = 0
+        and t2.use_date>now()
+        GROUP BY
+        t1.id
+    </select>
+
 </mapper>

BIN
ship-module-trade/ship-module-trade-biz/src/main/resources/templates/confirmation_template.xlsx