From 24587fd1b4af52469d1e122d2a495eea79d6865e Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 24 七月 2023 14:39:30 +0800
Subject: [PATCH] 淘客返利场景修复

---
 fanli/src/main/java/com/yeshi/fanli/job/order/vipshop/UpdateVipShopOrderJob.java |   79 +++++++++++++++++++++++----------------
 1 files changed, 46 insertions(+), 33 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 5230708..343e89f 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,13 +1,15 @@
 package com.yeshi.fanli.job.order.vipshop;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+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.vipshop.DingDanXiaApiUtil;
 import org.springframework.stereotype.Component;
 
@@ -58,7 +60,7 @@
                 String result = redisManager.getCommonString(key);
                 // 鍒ゆ柇
 //				if (StringUtil.isNullOrEmpty(result)) {
-                VipShopOrderCMQManager.getInstance().addVipShopOrder(order.getOrderSn() + "");
+                OrdersCMQManager.getInstance().addOrder(new CommonOrderMQMsg(order.getOrderSn() + "", Constant.SOURCE_TYPE_VIP));
                 redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂�
                 LogHelper.test("鍞搧浼氳鍗曟秷鎭彂閫佹垚鍔�");
 //				}else{
@@ -82,8 +84,19 @@
             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);
+            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澶╂洿鏂扮殑鏁版嵁
@@ -97,15 +110,18 @@
     //鏍规嵁璁㈠崟鍙锋洿鏂�
     @XxlJob("order-vip-updateByOrderSn")
     public ReturnT<String> updateByOrderSn(String param) throws Exception {
-        List<VipShopOrder> orders = vipShopOrderService.listByOrderSn(param);
-        if (orders == null || orders.size() == 0)
-            throw new Exception("璁㈠崟涓嶅瓨鍦�");
-
-        VipShopOrder vipShopOrder = DingDanXiaApiUtil.getOrderDetail(param);
-        if (vipShopOrder != null) {
-            List<VipShopOrder> vipShopOrderList = new ArrayList<>();
-            vipShopOrderList.add(vipShopOrder);
-            saveVipShopOrders(vipShopOrderList);
+        String[] ps = param.split(",");
+        for (String p : ps) {
+            List<VipShopOrder> orders = vipShopOrderService.listByOrderSn(p);
+            if (orders == null || orders.size() == 0)
+                throw new Exception("璁㈠崟涓嶅瓨鍦�");
+            Thread.sleep(1000);
+            VipShopOrder vipShopOrder = DingDanXiaApiUtil.getOrderDetail(p);
+            if (vipShopOrder != null) {
+                List<VipShopOrder> vipShopOrderList = new ArrayList<>();
+                vipShopOrderList.add(vipShopOrder);
+                saveVipShopOrders(vipShopOrderList);
+            }
         }
         return ReturnT.SUCCESS;
     }
@@ -118,27 +134,24 @@
      * @return
      * @throws Exception
      */
+    @Resource
+    private CommonOrderService commonOrderService;
+
     @XxlJob("order-vip-updateByLongTimeNoUpdate")
     public ReturnT<String> updateByLongTimeNoUpdate(String param) throws Exception {
-        Date maxCreateTime = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24L * 30);
-        Date minCreateTime = new Date(maxCreateTime.getTime() - 1000 * 60 * 60 * 24L * 60L);
-        VipShopOrderMapper.DaoQuery daoQuery = new VipShopOrderMapper.DaoQuery();
-        daoQuery.orderSubStatusName = "宸蹭粯娆�";
-        daoQuery.minCreateTime = minCreateTime;
-        daoQuery.maxCreateTime = maxCreateTime;
-        long count = vipShopOrderMapper.count(daoQuery);
-        if (count > 0) {
-            daoQuery.start = 0;
-            daoQuery.count = (int) count;
-            List<VipShopOrder> orderList = vipShopOrderMapper.list(daoQuery);
-            for (VipShopOrder order : orderList) {
-                try {
-                    updateByOrderSn(order.getOrderSn());
-                } catch (Exception e) {
-                    e.printStackTrace();
-                }
-            }
+
+        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;
     }
 

--
Gitblit v1.8.0