Prechádzať zdrojové kódy

Merge branch 'main' of http://git.wisesoft.net.cn/lishiqiang/ship-ota-server

lishiqiang 2 týždňov pred
rodič
commit
64a0a85055

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

@@ -242,4 +242,10 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
      * @return
      */
     OrderTotalRespVO selectTotal2ByOrderIds(@Param("orderIds") List<Long> orderIds);
+
+    /**
+     * 查询可以购买保险的订单ID
+     * @return
+     */
+    List<Long> selectCanBuyInsuranceOrder();
 }

+ 38 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/InsuranceApplyJob.java

@@ -0,0 +1,38 @@
+package com.yc.ship.module.trade.job;
+
+import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.module.trade.service.insurance.InsuranceService;
+import com.yc.ship.module.trade.service.order.TradeOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 保险购买定时任务
+ * 1. 查询需要购买保险的订单,只有确认状态并且开航前一天才可购买保险
+ */
+@Component
+@Slf4j
+public class InsuranceApplyJob implements JobHandler {
+
+    @Resource
+    private InsuranceService insuranceService;
+
+    @Resource
+    private TradeOrderService tradeOrderService;
+
+    /**
+     * 执行定时任务
+     * 定时购买保险
+     */
+    @Override
+    public String execute(String param) {
+        log.info("开始执行保险购买定时任务");
+        List<Long> orderIdList = tradeOrderService.getCanBuyInsuranceOrder();
+        orderIdList.stream().forEach(orderId -> insuranceService.applyInsurance(orderId));
+        log.info("结束执行保险购买定时定时任务");
+        return "success";
+    }
+}

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

@@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
 import javax.annotation.Resource;
 
 /**
- * 保险购买定时任务
+ * 保险查询定时任务
  * 1. 查询需要购买保险的订单,只有确认状态并且开航前一天才可购买保险
  */
 @Component

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

@@ -97,4 +97,11 @@ public interface TradeOrderService {
      * @return
      */
     AppItineraryDetailVO getItineraryDetail(Long orderId);
+
+    /**
+     *
+     * 获取可以购买保险的订单ID
+     * @return
+     */
+    List<Long> getCanBuyInsuranceOrder();
 }

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

@@ -1451,6 +1451,11 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         return detailVO;
     }
 
+    @Override
+    public List<Long> getCanBuyInsuranceOrder() {
+        return tradeOrderMapper.selectCanBuyInsuranceOrder();
+    }
+
     private String formatStatus(Integer status, LocalDateTime boardingTime) {
         String statusDesc = "";
         switch (status) {

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

@@ -2566,5 +2566,13 @@
                                                              </foreach>
                                                              GROUP BY type ) a
     </select>
+    <select id="selectCanBuyInsuranceOrder" resultType="java.lang.Long">
+        select id
+        from trade_order
+        where deleted = 0
+          and order_status in (1,6)
+          and (is_insure in (2,3) or is_insure is null)
+          and travel_date BETWEEN now() and CONCAT(DATE_ADD(CURDATE(),INTERVAL 2 DAY), ' 23:59:59')
+    </select>
 </mapper>