xdd преди 6 дни
родител
ревизия
c9f0ea35b0

+ 8 - 0
fs-admin/src/main/java/com/fs/task/LiveTask.java

@@ -71,6 +71,14 @@ public class LiveTask {
     @Autowired
     public FsJstAftersalePushService fsJstAftersalePushService;
 
+    /**
+     * 超时订单自动取消
+     */
+    @QuartzRunnable(name = "超时订单自动取消")
+    public void orderCancel(){
+        liveOrderService.orderCancel();
+    }
+
 
     /**
      * 发货任务

+ 2 - 0
fs-service-system/src/main/java/com/fs/live/mapper/LiveOrderMapper.java

@@ -116,4 +116,6 @@ public interface LiveOrderMapper {
 
     @Select("select * from live_order where order_code=#{orderCode} limit 1")
     LiveOrder selectLiveOrderByOrderCode(@Param("orderCode") String orderCode);
+
+    List<LiveOrder> selectFsOutDateOrder();
 }

+ 3 - 0
fs-service-system/src/main/java/com/fs/live/service/ILiveOrderService.java

@@ -202,4 +202,7 @@ public interface ILiveOrderService {
     R getExpressMulti(LiveOrder order);
 
     R getExpress(LiveOrder order);
+
+    void orderCancel();
+
 }

+ 10 - 1
fs-service-system/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -1711,6 +1711,15 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
         return R.ok().put("data", dto).put("express",express).put("deliveryId",order.getDeliverySn());
     }
 
+    @Override
+    public void orderCancel() {
+
+        List<LiveOrder> fsStoreOrders = liveOrderMapper.selectFsOutDateOrder();
+        for (LiveOrder order : fsStoreOrders) {
+            this.cancelOrder(order);
+        }
+    }
+
     private BigDecimal handleDeliveryMoney(Long cityId, FsStoreProduct fsStoreProduct, String totalNumSize) {
         BigDecimal storePostage = BigDecimal.ZERO;
         List<Long> citys = new ArrayList<>();
@@ -2320,7 +2329,7 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
     @Override
     @Transactional
     public R cancelOrder(LiveOrder order) {
-        if(order.getStatus() == OrderInfoEnum.STATUS_1.getValue()){
+        if(order.getStatus() == 2){
             LiveOrder liveOrder = baseMapper.selectLiveOrderByOrderId(String.valueOf(order.getOrderId()));
             if(liveOrder == null) return R.error("订单不存在");
             baseMapper.cancelOrder(order.getOrderId());

+ 8 - 0
fs-service-system/src/main/resources/mapper/live/LiveOrderMapper.xml

@@ -440,4 +440,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
         order by a.create_time desc
     </select>
+    <select id="selectFsOutDateOrder" resultType="com.fs.live.domain.LiveOrder">
+        <![CDATA[
+        SELECT order_id
+        FROM live_order
+        WHERE status = 1
+        AND create_time < DATE_SUB(NOW(), INTERVAL 1800 MINUTE)
+        ]]>
+    </select>
 </mapper>