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 | 135 ++++++++++++++++++++++++++++---------------- 1 files changed, 85 insertions(+), 50 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..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,14 +1,19 @@ 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.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; @@ -21,13 +26,12 @@ 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.mq.cmq.order.VipShopOrderCMQManager; -import com.yeshi.fanli.util.vipshop.VipShopApiUtil; //浠庢窐瀹濈埇鍘昏鍗曟洿鏂� @Component public class UpdateVipShopOrderJob { + + private Logger logger = LoggerFactory.getLogger("debugLog"); @Resource private VipShopOrderService vipShopOrderService; @@ -36,6 +40,9 @@ private RedisManager redisManager; @Resource private VipShopOrderMapper vipShopOrderMapper; + + @Resource + private OrdersCMQManager ordersCMQManager; /** * 淇濆瓨璁㈠崟 @@ -58,7 +65,7 @@ String result = redisManager.getCommonString(key); // 鍒ゆ柇 // if (StringUtil.isNullOrEmpty(result)) { - VipShopOrderCMQManager.getInstance().addVipShopOrder(order.getOrderSn() + ""); + ordersCMQManager.addOrder(new CommonOrderMQMsg(order.getOrderSn() + "", Constant.SOURCE_TYPE_VIP)); redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂� LogHelper.test("鍞搧浼氳鍗曟秷鎭彂閫佹垚鍔�"); // }else{ @@ -77,19 +84,38 @@ @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); + 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); } - /* - * 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; } @@ -97,15 +123,27 @@ //鏍规嵁璁㈠崟鍙锋洿鏂� @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); + 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; } @@ -118,27 +156,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; } @@ -155,13 +190,13 @@ public void updateByOrderTime(long startTime, long endTime) { List<VipShopOrder> vipShopOrderList = new ArrayList<>(); int page = 1; - VipShopQueryOrderResultDTO result = VipShopApiUtil + VipShopQueryOrderResultDTO result = DingDanXiaApiUtil .getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page)); while (result != null && result.getOrderList().size() > 0) { page++; vipShopOrderList.addAll(result.getOrderList()); - result = VipShopApiUtil + result = DingDanXiaApiUtil .getOrderList(VipShopOrderQueryModel.createOrderTime(startTime, endTime, null, page)); } @@ -195,13 +230,13 @@ public void updateByUpdateTime(long startTime, long endTime) { List<VipShopOrder> vipShopOrderList = new ArrayList<>(); int page = 1; - VipShopQueryOrderResultDTO result = VipShopApiUtil + VipShopQueryOrderResultDTO result = DingDanXiaApiUtil .getOrderList(VipShopOrderQueryModel.createUpdateTime(startTime, endTime, null, page)); while (result != null && result.getOrderList().size() > 0) { page++; vipShopOrderList.addAll(result.getOrderList()); - result = VipShopApiUtil + result = DingDanXiaApiUtil .getOrderList(VipShopOrderQueryModel.createUpdateTime(startTime, endTime, null, page)); } saveVipShopOrders(vipShopOrderList); -- Gitblit v1.8.0