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/vipshop/UpdateVipShopOrderJob.java |  382 +++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 246 insertions(+), 136 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java
index 72a9576..6469172 100644
--- a/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java
+++ b/fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java
@@ -1,136 +1,246 @@
-package com.yeshi.fanli.job.order.vipshop;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-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.dto.vipshop.VipShopOrderQueryModel;
-import com.yeshi.fanli.dto.vipshop.VipShopQueryOrderResultDTO;
-import com.yeshi.fanli.entity.vipshop.VipShopOrder;
-import com.yeshi.fanli.exception.vipshop.VipShopOrderException;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.order.vipshop.VipShopOrderService;
-import com.yeshi.fanli.util.RedisKeyEnum;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.cmq.order.VipShopOrderCMQManager;
-import com.yeshi.fanli.util.vipshop.VipShopApiUtil;
-
-//浠庢窐瀹濈埇鍘昏鍗曟洿鏂�
-@Component
-public class UpdateVipShopOrderJob {
-
-	@Resource
-	private VipShopOrderService vipShopOrderService;
-
-	@Resource
-	private RedisManager redisManager;
-
-	/**
-	 * 淇濆瓨璁㈠崟
-	 * 
-	 * @param VipShopOrderList
-	 */
-	public void saveVipShopOrders(List<VipShopOrder> vipShopOrderList) {
-		for (VipShopOrder order : vipShopOrderList) {
-			try {
-				vipShopOrderService.addOrder(order);
-				/**
-				 * 鍋氶鐜囬檺鍒�
-				 */
-				String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.VIPShopOrder, order.getOrderSn() + "");
-				String result = redisManager.getCommonString(key);
-				// 鍒ゆ柇
-//				if (StringUtil.isNullOrEmpty(result)) {
-					VipShopOrderCMQManager.getInstance().addVipShopOrder(order.getOrderSn() + "");
-					redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂�
-					LogHelper.test("鍞搧浼氳鍗曟秷鎭彂閫佹垚鍔�");
-//				}else{
-//					LogHelper.test("鍞搧浼氳鍗曢鐜囬檺鍒�");
-//				}
-			} catch (VipShopOrderException e) {
-				e.printStackTrace();
-				LogHelper.errorDetailInfo(e);
-			}
-		}
-	}
-
-	/**
-	 * 蹇�熻鍗曟洿鏂帮紙鐖彇鏈皬鏃跺唴鐨勫崟,姣忓垎閽熶竴娆★級
-	 */
-	@XxlJob("updateVipShopOrderHandler")
-	public ReturnT<String> updateVipShopSoonOrder(String param) throws Exception {
-		LogHelper.test("updateVipShopOrderHandler:"+param);
-		long endTime = System.currentTimeMillis();
-		if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟
-			updateByOrderTime(endTime - 1000 * 60 * 60 * 1L, endTime);
-			updateByUpdateTime(endTime - 1000 * 60 * 60 * 1L, endTime);
-		} else if ("1day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�1澶╂洿鏂扮殑鏁版嵁
-			updateByOrderTime(endTime - 1000 * 60 * 60 * 24L, endTime);
-			updateByUpdateTime(endTime - 1000 * 60 * 60 * 24L, endTime);
-		}
-		/*
-		 * else if ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁
-		 * updateByOrderTime(endTime - 1000 * 60 * 60 * 24 * 3L, endTime);
-		 * updateByUpdateTime(endTime - 1000 * 60 * 60 * 24 * 3L, endTime); }
-		 */
-		return ReturnT.SUCCESS;
-	}
-
-	/**
-	 * 鎸変笅鍗曟椂闂存洿鏂�
-	 * @Title: updateByOrderTime
-	 * @Description: 
-	 * @param startTime
-	 * @param endTime 
-	 * void 杩斿洖绫诲瀷
-	 * @throws
-	 */
-
-	public void updateByOrderTime(long startTime, long endTime) {
-		List<VipShopOrder> vipShopOrderList = new ArrayList<>();
-		int page = 1;
-		VipShopQueryOrderResultDTO result = VipShopApiUtil
-				.getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page));
-
-		while (result != null && result.getOrderList().size() > 0) {
-			page++;
-			vipShopOrderList.addAll(result.getOrderList());
-			result = VipShopApiUtil
-					.getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page));
-		}
-
-		saveVipShopOrders(vipShopOrderList);
-	}
-
-	/**
-	 * 鎸夋洿鏂版椂闂存洿鏂�
-	 * @Title: updateByOrderTime
-	 * @Description: 
-	 * @param startTime
-	 * @param endTime 
-	 * void 杩斿洖绫诲瀷
-	 * @throws
-	 */
-
-	public void updateByUpdateTime(long startTime, long endTime) {
-		List<VipShopOrder> vipShopOrderList = new ArrayList<>();
-		int page = 1;
-		VipShopQueryOrderResultDTO result = VipShopApiUtil
-				.getOrderList(VipShopOrderQueryModel.createUpdateTime(startTime, endTime, null, page));
-
-		while (result != null && result.getOrderList().size() > 0) {
-			page++;
-			vipShopOrderList.addAll(result.getOrderList());
-			result = VipShopApiUtil
-					.getOrderList(VipShopOrderQueryModel.createUpdateTime(startTime, endTime, null, page));
-		}
-		saveVipShopOrders(vipShopOrderList);
-	}
-
-}
+package com.yeshi.fanli.job.order.vipshop;
+
+import java.util.*;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.dao.mybatis.vipshop.VipShopOrderMapper;
+import com.yeshi.fanli.dto.mq.order.body.CommonOrderMQMsg;
+import com.yeshi.fanli.entity.order.CommonOrder;
+import com.yeshi.fanli.service.inter.order.CommonOrderService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.mq.cmq.order.OrdersCMQManager;
+import com.yeshi.fanli.util.mq.rabbit.RabbitmqManager;
+import com.yeshi.fanli.util.vipshop.DingDanXiaApiUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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.dto.vipshop.VipShopOrderQueryModel;
+import com.yeshi.fanli.dto.vipshop.VipShopQueryOrderResultDTO;
+import com.yeshi.fanli.entity.vipshop.VipShopOrder;
+import com.yeshi.fanli.exception.vipshop.VipShopOrderException;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.order.vipshop.VipShopOrderService;
+import com.yeshi.fanli.util.RedisKeyEnum;
+import com.yeshi.fanli.util.RedisManager;
+
+//浠庢窐瀹濈埇鍘昏鍗曟洿鏂�
+@Component
+public class UpdateVipShopOrderJob {
+
+    private  Logger logger = LoggerFactory.getLogger("debugLog");
+
+    @Resource
+    private VipShopOrderService vipShopOrderService;
+
+    @Resource
+    private RedisManager redisManager;
+    @Resource
+    private VipShopOrderMapper vipShopOrderMapper;
+
+    @Resource
+    private OrdersCMQManager ordersCMQManager;
+
+    /**
+     * 淇濆瓨璁㈠崟
+     *
+     * @param vipShopOrderList
+     */
+    public void saveVipShopOrders(List<VipShopOrder> vipShopOrderList) {
+        //5鍒嗛挓涓嶆洿鏂板氨鎶ヨ
+        try {
+            redisManager.cacheCommonString(RedisKeyEnum.monitor.getKey() + Constant.SOURCE_TYPE_VIP, "1", 60 * 5);
+        } catch (Exception e) {
+        }
+        for (VipShopOrder order : vipShopOrderList) {
+            try {
+                vipShopOrderService.addOrder(order);
+                /**
+                 * 鍋氶鐜囬檺鍒�
+                 */
+                String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.VIPShopOrder, order.getOrderSn() + "");
+                String result = redisManager.getCommonString(key);
+                // 鍒ゆ柇
+//				if (StringUtil.isNullOrEmpty(result)) {
+                ordersCMQManager.addOrder(new CommonOrderMQMsg(order.getOrderSn() + "", Constant.SOURCE_TYPE_VIP));
+                redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂�
+                LogHelper.test("鍞搧浼氳鍗曟秷鎭彂閫佹垚鍔�");
+//				}else{
+//					LogHelper.test("鍞搧浼氳鍗曢鐜囬檺鍒�");
+//				}
+            } catch (VipShopOrderException e) {
+                e.printStackTrace();
+                LogHelper.errorDetailInfo(e);
+            }
+        }
+    }
+
+    /**
+     * 蹇�熻鍗曟洿鏂帮紙鐖彇鏈皬鏃跺唴鐨勫崟,姣忓垎閽熶竴娆★級
+     */
+    @XxlJob("updateVipShopOrderHandler")
+    public ReturnT<String> updateVipShopSoonOrder(String param) throws Exception {
+        LogHelper.test("updateVipShopOrderHandler:" + param);
+        logger.info("鍞搧浼氳鍗曟洿鏂板紑濮嬶細updateVipShopSoonOrder 鍙傛暟锛�"+param);
+        try {
+            long endTime = System.currentTimeMillis();
+            if ("1hour".equalsIgnoreCase(param)) {// 鏇存柊1灏忔椂鍐呯殑璁㈠崟
+                updateByOrderTime(endTime - 1000 * 60 * 60 * 1L, endTime);
+                updateByUpdateTime(endTime - 1000 * 60 * 60 * 1L, endTime);
+            } else if ("1day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�1澶╂洿鏂扮殑鏁版嵁
+                Long startT = endTime - 1000 * 60 * 60 * 24L;
+                for (long start = startT; start < startT + 1000 * 60 * 60 * 24L; start += 1000 * 60 * 60) {
+                    updateByOrderTime(start, start + 1000 * 60 * 60);
+                    updateByUpdateTime(start, start + 1000 * 60 * 60);
+                }
+            } else if ("1month".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�1涓湀鐨勬暟鎹�
+                for (int i = 0; i < 30; i++) {
+                    Long startT = endTime - 1000 * 60 * 60 * 24L * (i + 1);
+                    for (long start = startT; start < startT + 1000 * 60 * 60 * 24L; start += 1000 * 60 * 60) {
+                        updateByOrderTime(start, start + 1000 * 60 * 60);
+                        updateByUpdateTime(start, start + 1000 * 60 * 60);
+                    }
+                }
+            }
+            /*
+             * else if ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁
+             * updateByOrderTime(endTime - 1000 * 60 * 60 * 24 * 3L, endTime);
+             * updateByUpdateTime(endTime - 1000 * 60 * 60 * 24 * 3L, endTime); }
+             */
+        }catch(Exception e){
+            logger.error("鍞搧浼氳鍗曟洿鏂板紓甯革細",e);
+        }finally {
+            logger.info("鍞搧浼氳鍗曟洿鏂扮粨鏉燂細updateVipShopSoonOrder 鍙傛暟锛�"+ param);
+        }
+
+        return ReturnT.SUCCESS;
+    }
+
+
+    //鏍规嵁璁㈠崟鍙锋洿鏂�
+    @XxlJob("order-vip-updateByOrderSn")
+    public ReturnT<String> updateByOrderSn(String param) throws Exception {
+        logger.info(String.format("鍞搧浼氳鍗曟洿鏂帮細%s", param));
+        try {
+            String[] ps = param.split(",");
+            for (String p : ps) {
+                List<VipShopOrder> orders = vipShopOrderService.listByOrderSn(p);
+                if (orders == null || orders.size() == 0) {
+                    // 璇锋眰璁㈠崟璇︽儏
+                    saveVipShopOrders(Arrays.asList(new VipShopOrder[]{DingDanXiaApiUtil.getOrderDetail(p)}));
+                } else {
+                    Thread.sleep(1000);
+                    VipShopOrder vipShopOrder = DingDanXiaApiUtil.getOrderDetail(p);
+                    if (vipShopOrder != null) {
+                        List<VipShopOrder> vipShopOrderList = new ArrayList<>();
+                        vipShopOrderList.add(vipShopOrder);
+                        saveVipShopOrders(vipShopOrderList);
+                    }
+                }
+            }
+            logger.info("鍞搧浼氳鍗曟洿鏂版垚鍔�");
+        }catch(Exception e){
+            logger.info(String.format("鍞搧浼氳鍗曟洿鏂板け璐ワ細%s", e.getMessage()));
+        }
+        return ReturnT.SUCCESS;
+    }
+
+
+    /**
+     * 鏇存柊闀挎椂闂存湭鏇存柊鐨勮鍗曞彿
+     *
+     * @param param
+     * @return
+     * @throws Exception
+     */
+    @Resource
+    private CommonOrderService commonOrderService;
+
+    @XxlJob("order-vip-updateByLongTimeNoUpdate")
+    public ReturnT<String> updateByLongTimeNoUpdate(String param) throws Exception {
+
+        List<CommonOrder> commonOrders = commonOrderService.listPayStateOrder(Constant.SOURCE_TYPE_VIP, new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24L * 60), new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24L * 10), 1, 200);
+        if (commonOrders == null || commonOrders.size() == 0) {
+            throw new Exception("娌℃湁闇�瑕佹洿鏂扮殑璁㈠崟");
+        }
+        Set<String> orderIds = new HashSet<>();
+        for (CommonOrder commonOrder : commonOrders) {
+            orderIds.add(commonOrder.getOrderNo());
+        }
+        for (String orderId : orderIds) {
+            updateByOrderSn(orderId);
+        }
+
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 鎸変笅鍗曟椂闂存洿鏂�
+     *
+     * @param startTime
+     * @param endTime   void 杩斿洖绫诲瀷
+     * @throws
+     * @Title: updateByOrderTime
+     * @Description:
+     */
+
+    public void updateByOrderTime(long startTime, long endTime) {
+        List<VipShopOrder> vipShopOrderList = new ArrayList<>();
+        int page = 1;
+        VipShopQueryOrderResultDTO result = DingDanXiaApiUtil
+                .getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page));
+
+        while (result != null && result.getOrderList().size() > 0) {
+            page++;
+            vipShopOrderList.addAll(result.getOrderList());
+            result = DingDanXiaApiUtil
+                    .getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page));
+        }
+
+        saveVipShopOrders(vipShopOrderList);
+
+        //璁㈠崟渚犵殑鎺ュ彛
+        page = 1;
+        result = DingDanXiaApiUtil
+                .getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page));
+
+        while (result != null && result.getOrderList().size() > 0) {
+            page++;
+            vipShopOrderList.addAll(result.getOrderList());
+            result = DingDanXiaApiUtil
+                    .getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page));
+        }
+
+        saveVipShopOrders(vipShopOrderList);
+    }
+
+    /**
+     * 鎸夋洿鏂版椂闂存洿鏂�
+     *
+     * @param startTime
+     * @param endTime   void 杩斿洖绫诲瀷
+     * @throws
+     * @Title: updateByOrderTime
+     * @Description:
+     */
+
+    public void updateByUpdateTime(long startTime, long endTime) {
+        List<VipShopOrder> vipShopOrderList = new ArrayList<>();
+        int page = 1;
+        VipShopQueryOrderResultDTO result = DingDanXiaApiUtil
+                .getOrderList(VipShopOrderQueryModel.createUpdateTime(startTime, endTime, null, page));
+
+        while (result != null && result.getOrderList().size() > 0) {
+            page++;
+            vipShopOrderList.addAll(result.getOrderList());
+            result = DingDanXiaApiUtil
+                    .getOrderList(VipShopOrderQueryModel.createUpdateTime(startTime, endTime, null, page));
+        }
+        saveVipShopOrders(vipShopOrderList);
+    }
+
+
+}

--
Gitblit v1.8.0