From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java |  128 +++++++++++++++++++++++++++++++++---------
 1 files changed, 100 insertions(+), 28 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
index 7eacee7..11697e8 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java
@@ -1,27 +1,30 @@
 package com.yeshi.fanli.job.order.jd;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import com.yeshi.fanli.util.Constant;
-import org.springframework.stereotype.Component;
-
 import com.xxl.job.core.biz.model.ReturnT;
 import com.xxl.job.core.handler.annotation.XxlJob;
+import com.yeshi.fanli.dao.jd.JDOrderBackUpDao;
+import com.yeshi.fanli.dto.jd.JDOrderForBackUpResult;
 import com.yeshi.fanli.dto.jd.JDOrderResult;
+import com.yeshi.fanli.dto.mq.order.body.CommonOrderMQMsg;
+import com.yeshi.fanli.entity.jd.JDBackUpOrder;
 import com.yeshi.fanli.entity.jd.JDOrder;
+import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.exception.jd.JDOrderException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.order.CommonOrderService;
 import com.yeshi.fanli.service.inter.order.jd.JDOrderService;
+import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.RedisKeyEnum;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
-import org.yeshi.utils.TimeUtil;
+import com.yeshi.fanli.util.annotation.JobMonitor;
 import com.yeshi.fanli.util.jd.JDApiUtil;
-import com.yeshi.fanli.util.mq.cmq.order.JDOrderCMQManager;
+import com.yeshi.fanli.util.mq.cmq.order.OrdersCMQManager;
+import org.springframework.stereotype.Component;
+import org.yeshi.utils.TimeUtil;
+
+import javax.annotation.Resource;
+import java.util.*;
 
 //浠庢窐瀹濈埇鍘昏鍗曟洿鏂�
 @Component
@@ -32,6 +35,16 @@
 
     @Resource
     private RedisManager redisManager;
+
+    @Resource
+    private JDOrderBackUpDao jdOrderBackUpDao;
+
+    @Resource
+    private CommonOrderService commonOrderService;
+
+    @Resource
+    private OrdersCMQManager ordersCMQManager;
+
 
     /**
      * 淇濆瓨璁㈠崟
@@ -65,7 +78,7 @@
                 String result = redisManager.getCommonString(key);
                 // 鍒ゆ柇
                 if (StringUtil.isNullOrEmpty(result)) {
-                    JDOrderCMQManager.getInstance().addJDOrder(order.getOrderId() + "");
+                   ordersCMQManager.addOrder(new CommonOrderMQMsg(order.getOrderId() + "", Constant.SOURCE_TYPE_JD));
                     redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂�
                 }
             } catch (JDOrderException e) {
@@ -79,23 +92,27 @@
      */
     @XxlJob("updateJDOrderHandler")
     public ReturnT<String> updateJDSoonOrder(String param) throws Exception {
-        if ("1".equalsIgnoreCase(param)) {// 鏇存柊鏈皬鏃跺唴鐨勫崟
-            LogHelper.job("寮�濮嬬埇鍙栦含涓滆鍗�");
-            long now = System.currentTimeMillis();
+        try {
+            if ("1".equalsIgnoreCase(param)) {// 鏇存柊鏈皬鏃跺唴鐨勫崟
+                LogHelper.job("寮�濮嬬埇鍙栦含涓滆鍗�");
+                long now = System.currentTimeMillis();
 
-            JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(now), JDApiUtil.ORDER_TYPE_CREATETIME);
-            if (result != null && result.getOrderList() != null)
-                saveJDOrders(result.getOrderList());
-            // 鏌ヨ涓婁釜灏忔椂鐨�
-            result = JDApiUtil.getOrderList(1, 200, new Date(now - 1000 * 60 * 60L), JDApiUtil.ORDER_TYPE_CREATETIME);
-            if (result != null && result.getOrderList() != null)
-                saveJDOrders(result.getOrderList());
-        } else if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟
-            updateUpdateOrder();
-        } else if ("1day".equalsIgnoreCase(param)) {// 鏇存柊1澶╁唴鐨勮鍗�
-            updateLatestDayOrder(new Date(System.currentTimeMillis()));
-        } else if ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁
-            updateLatest3DayOrder();
+                JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(now), JDApiUtil.ORDER_TYPE_CREATETIME);
+                if (result != null && result.getOrderList() != null)
+                    saveJDOrders(result.getOrderList());
+                // 鏌ヨ涓婁釜灏忔椂鐨�
+                result = JDApiUtil.getOrderList(1, 200, new Date(now - 1000 * 60 * 60L), JDApiUtil.ORDER_TYPE_CREATETIME);
+                if (result != null && result.getOrderList() != null)
+                    saveJDOrders(result.getOrderList());
+            } else if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟
+                updateUpdateOrder();
+            } else if ("1day".equalsIgnoreCase(param)) {// 鏇存柊1澶╁唴鐨勮鍗�
+                updateLatestDayOrder(new Date(System.currentTimeMillis()));
+            } else if ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁
+                updateLatest3DayOrder();
+            }
+        }catch(Exception e){
+            e.printStackTrace();
         }
 
         return ReturnT.SUCCESS;
@@ -195,4 +212,59 @@
         }
     }
 
+
+    @JobMonitor(key = "", maxSpaceTime = 60 * 60 * 25)
+    @XxlJob("order-jd-backup")
+    public ReturnT<String> backUpOrder(String param) throws Exception {
+        //鏇存柊90澶╀互鍓嶇殑杩�3澶╃殑鏁版嵁
+        long startTime = System.currentTimeMillis() - 1000 * 60 * 60 * 24L * 90;
+
+        for (int i = 0; i < 24 * 3; i++) {
+            List<JDBackUpOrder> orderList = getBackUpOrders(new Date(startTime + i * 1000 * 60 * 60L));
+            if (orderList != null && orderList.size() > 0) {
+                for (JDBackUpOrder order : orderList) {
+                    order.setUpdateTime(new Date());
+                    jdOrderBackUpDao.save(order);
+                }
+            }
+        }
+        return ReturnT.SUCCESS;
+    }
+
+
+    //澶勭悊寰堜箙娌″鐞嗙殑鏁版嵁
+    @JobMonitor(key = "", maxSpaceTime = 60 * 60 * 25)
+    @XxlJob("order-jd-process-outdate")
+    public ReturnT<String> processoutOfDate(String param) throws Exception {
+        //鏌ヨ 1涓湀鍒�5涓湀澶勪簬宸蹭粯娆剧姸鎬佺殑鏁版嵁
+        long maxTime = System.currentTimeMillis() - 1000 * 60 * 60 * 24L * 30;
+        long minTime = maxTime - 1000 * 60 * 60 * 24L * 120;
+        List<CommonOrder> orderList = commonOrderService.listBySourceTypeAndStateAndThirdCrateTime(Constant.SOURCE_TYPE_JD, CommonOrder.STATE_FK, minTime, maxTime, 1, 200);
+        Set<String> orderIds = new HashSet<>();
+        for (CommonOrder co : orderList) {
+            orderIds.add(co.getOrderNo());
+        }
+        for (String orderId : orderIds) {
+           ordersCMQManager.addOrder(new CommonOrderMQMsg(orderId, Constant.SOURCE_TYPE_JD));
+        }
+        return ReturnT.SUCCESS;
+    }
+
+    private List<JDBackUpOrder> getBackUpOrders(Date hourDate) {
+        List<JDBackUpOrder> jdOrderList = new ArrayList<>();
+        int pageSize = 200;
+        int page = 1;
+        JDOrderForBackUpResult result = JDApiUtil.getOrderListForBackUp(page++, pageSize, hourDate, JDApiUtil.ORDER_TYPE_UPDATETIME);
+        if (result != null) {
+            jdOrderList.addAll(result.getOrderList());
+            while (result != null && result.isHasMore()) {
+                result = JDApiUtil.getOrderListForBackUp(page++, pageSize, hourDate, JDApiUtil.ORDER_TYPE_UPDATETIME);
+                if (result != null)
+                    jdOrderList.addAll(result.getOrderList());
+            }
+        }
+        return jdOrderList;
+    }
+
+
 }

--
Gitblit v1.8.0