Browse Source

定时确认任务

lishiqiang 1 month ago
parent
commit
276d8a5a37

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

@@ -161,6 +161,7 @@ public interface TradeDetailMapper extends BaseMapperX<TradeDetailDO> {
     TradeDetailDO selectTradeDetailByVistorId(@Param("visitorId") Long visitorId);
 
     TradeDetailBaseDO selectPlatTradeBaseDetail(@Param("voucherCode") String voucherCode);
+    TradeDetailBaseDO getTradeOrderByExpire(@Param("voucherCode") String voucherCode);
 
     List<Map<String,Object>> selectDispatchRecord(@Param("dispatchId") String dispatchId, @Param("detailId") long detailId);
 

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

@@ -94,6 +94,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
     List<Long> selectBindUseMarketing(@Param("orderId") Long orderId);
 
     TradeOrderRespVO getRefundOrderInfo(Long id);
+    List<TradeOrderDO> getTradeOrderByExpire(@Param("expiretime")  String expiretime);
 
 
     IPage<RefundRecordRespVO> getPageRefundRecord(IPage<RefundRecordRespVO> page, @Param("vo") RefundRecordPageReqVO vo);

+ 34 - 2
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/job/OrderStausJob.java

@@ -2,20 +2,37 @@ package com.yc.ship.module.trade.job;
 
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.xxl.job.core.handler.annotation.XxlJob;
 import com.yc.ship.framework.quartz.core.handler.JobHandler;
+import com.yc.ship.framework.security.core.LoginUser;
+import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
+import com.yc.ship.framework.tenant.core.job.TenantJob;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.PayOrderReqVO;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO;
 import com.yc.ship.module.trade.dal.dataobject.shipSaleRule.ShipSaleRuleDO;
+import com.yc.ship.module.trade.service.order.TradeOrderService;
+import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
 import com.yc.ship.module.trade.service.shipSaleRule.ShipSaleRuleService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
 
 @Component
+@Slf4j
 public class OrderStausJob implements JobHandler {
     @Resource
     private ShipSaleRuleService shipSaleRuleService;
 
+    @Resource
+    private TradeOrderService tradeOrderService;
+
+    @Resource
+    private OtcTradeOrderService otcTradeOrderService;
+
     /**
      * 执行订单状态相关操作-初定自动确认
      *
@@ -35,8 +52,23 @@ public class OrderStausJob implements JobHandler {
         calendar.setTime(n);
         calendar.set(Calendar.HOUR_OF_DAY, qdhour);
         Date time = calendar.getTime();
-
-
+        List<TradeOrderDO> tradeOrderByExpire = tradeOrderService.getTradeOrderByExpire(DateUtil.format(time, "yyyy-MM-dd HH:mm:ss"));
+        tradeOrderByExpire.forEach(tradeOrderDO -> {
+            try {
+                LoginUser agencyUser = new LoginUser();
+                agencyUser.setStoreId(tradeOrderDO.getStoreId());
+                agencyUser.setDistributorId(Long.parseLong(tradeOrderDO.getSourceId()));
+                PayOrderReqVO payOrderReqVO = new PayOrderReqVO();
+                payOrderReqVO.setOrderId(tradeOrderDO.getId());
+                payOrderReqVO.setPayAmount(tradeOrderDO.getPayAmount());
+                payOrderReqVO.setPayType(5);
+                payOrderReqVO.setStoreId(tradeOrderDO.getStoreId());
+                payOrderReqVO.setAccountId("9999");
+                otcTradeOrderService.windowPayOrder(agencyUser, payOrderReqVO);
+            }catch (Exception e){
+                log.error(tradeOrderDO.getOrderNo()+";自动确认订单失败", e);
+            }
+        });
         return "成功";
     }
 

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

@@ -115,6 +115,9 @@ public interface TradeOrderService {
 
     TradeDetailBaseDO getTradeDetailByNo(String ticketNo);
 
+
+    List<TradeOrderDO> getTradeOrderByExpire(String expiretime);
+
     
     void autoBindRelatedOrder(TradeOrderDO tradeOrderDO);
 

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

@@ -1502,6 +1502,11 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         return tradeDetailMapper.selectPlatTradeBaseDetail(ticketNo);
     }
 
+    @Override
+    public List<TradeOrderDO> getTradeOrderByExpire(String expiretime) {
+        return tradeOrderMapper.getTradeOrderByExpire(expiretime);
+    }
+
 
     @Override
     public void autoBindRelatedOrder(TradeOrderDO tradeOrderDO) {

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

@@ -1405,7 +1405,9 @@
         </if>
 
     </select>
-
+    <select id="getTradeOrderByExpire"  resultType="com.yc.ship.module.trade.dal.dataobject.order.TradeOrderDO">
+        select * from trade_order where order_status =14 and travel_date <![CDATA[ <= ]]> #{vo.travelDateEnd}
+    </select>
 
     <select id="getPageRefundRecord"
             resultType="com.yc.ship.module.trade.controller.admin.order.vo.refund.RefundRecordRespVO">

+ 3 - 3
ship-server-web/src/main/resources/application-sxtest.yaml

@@ -7,7 +7,7 @@ spring:
     # noinspection SpringBootApplicationYaml
     exclude:
       - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
-      - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
+#      - org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration # 默认 local 环境,不开启 Quartz 的自动配置
       - de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration # 禁用 Spring Boot Admin 的 Server 的自动配置
       - de.codecentric.boot.admin.server.ui.config.AdminServerUiAutoConfiguration # 禁用 Spring Boot Admin 的 Server UI 的自动配置
       - de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration # 禁用 Spring Boot Admin 的 Client 的自动配置
@@ -49,12 +49,12 @@ spring:
       primary: master
       datasource:
         master:
-          url: jdbc:mysql://10.3.10.50:43306/db_yc_ship?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例
+          url: jdbc:mysql://10.3.10.50:43306/db_yc_ship_test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true # MySQL Connector/J 8.X 连接的示例
           username: root
           password: W1ses0ft@zshl
         slave: # 模拟从库,可根据自己需要修改
           lazy: true # 开启懒加载,保证启动速度
-          url: jdbc:mysql://10.3.10.50:43306/db_yc_ship?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
+          url: jdbc:mysql://10.3.10.50:43306/db_yc_ship_test?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&nullCatalogMeansCurrent=true
           username: root
           password: W1ses0ft@zshl