From f5ad4a8171b20ab75eaac90c9717fe7fd801d6cd Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 08 三月 2019 16:18:25 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java | 190 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 185 insertions(+), 5 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java b/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java index ffe5d56..e8dd32c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java +++ b/fanli/src/main/java/com/yeshi/fanli/job/UpdateRelationAndSpecialOrderJob.java @@ -1,5 +1,8 @@ package com.yeshi.fanli.job; +import java.util.Calendar; +import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -19,6 +22,7 @@ import com.yeshi.fanli.util.TimeUtil; import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil; import com.yeshi.fanli.util.taobao.TaoKeApiUtil; +import com.yeshi.fanli.util.taobao.TaoKeOrderApiUtil; /** * 娣樺疂娓犻亾璁㈠崟鏇存柊 @@ -35,18 +39,169 @@ @Resource private RedisManager redisManager; + @Resource + private UpdateOrderJob updateOrderJob; + + /** + * 鏇存柊娓犻亾璁㈠崟(鏈�澶�20鍒嗛挓) + * + * @param startTime + */ private void updateRelationOrder(long startTime) { String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss"); - List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoRelationOrder(startTimeStr, Constant.TAOBAO_AUTH_APPKEY, + List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoRelationOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET); addRelationAndSpecialOrder(orderList); } + /** + * 鏇存柊娓犻亾璁㈠崟 + * + * @param fromPage + * 寮�濮嬮〉鐮� + * @param toPage + * 缁撴潫椤电爜锛堟瘡椤�100鏉℃暟鎹級 + */ + private void updateRelationOrder(int fromPage, int toPage) { + // 鏈�杩�90澶╃殑璁㈠崟 + String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L, + "yyyy-MM-dd HH:mm:ss"); + + Comparator<TaoBaoOrder> cm = new Comparator<TaoBaoOrder>() { + @Override + public int compare(TaoBaoOrder o1, TaoBaoOrder o2) { + long span = TimeUtil.convertToTimeTemp(o2.getCreateTime(), "yyyy-MM-dd HH:mm:ss") + - TimeUtil.convertToTimeTemp(o1.getCreateTime(), "yyyy-MM-dd HH:mm:ss"); + if (span > 0) + return 1; + else if (span == 0) + return 0; + else + return -1; + } + }; + + for (int p = fromPage; p < toPage; p++) { + // 鐖彇2鏂硅鍗� + List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoRelationOrder(startTimeStr, p, + Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET); + Collections.sort(orderList, cm); + List<TaoBaoOrder> commonOrderList = UpdateOrderJob.getCommonOrder( + TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(), + "yyyy-MM-dd HH:mm:ss"), + TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + + List<TaoBaoOrder> list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList); + Collections.sort(list, cm); + addRelationAndSpecialOrder(list); + + orderList = TaoKeOrderApiUtil.getTaoBaoRelationThirdOrder(startTimeStr, p, Constant.TAOBAO_AUTH_APPKEY, + Constant.TAOBAO_AUTH_APPSECRET); + Collections.sort(orderList, cm); + // 鐖彇涓夋柟璁㈠崟 + commonOrderList = UpdateOrderJob.getThirdCommonOrder( + TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(), + "yyyy-MM-dd HH:mm:ss"), + TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList); + Collections.sort(list, cm); + addRelationAndSpecialOrder(list); + } + } + + /** + * 鎸夊ぉ鏇存柊 + * + * @param day + */ + private void updateRelationOrderByDay(String day) { + long timestamp = TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd"); + for (int i = 0; i < 72; i++) { + updateRelationOrder(timestamp + 1000 * 60 * 20L * i); + } + } + + /** + * 鏇存柊浼氬憳璁㈠崟(鏈�澶�20鍒嗛挓) + * + * @param startTime + */ private void updateSpecialOrder(long startTime) { String startTimeStr = TimeUtil.getGernalTime(startTime, "yyyy-MM-dd HH:mm:ss"); - List<TaoBaoOrder> orderList = TaoKeApiUtil.getTaoBaoSpecialOrder(startTimeStr, Constant.TAOBAO_AUTH_APPKEY, + List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSpecialOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET); addRelationAndSpecialOrder(orderList); + + orderList = TaoKeOrderApiUtil.getTaoBaoSpecialThirdOrder(startTimeStr, 1, Constant.TAOBAO_AUTH_APPKEY, + Constant.TAOBAO_AUTH_APPSECRET); + addRelationAndSpecialOrder(orderList); + } + + /** + * 鏇存柊浼氬憳璁㈠崟锛堬級 + * + * @param fromPage-寮�濮嬮〉鐮� + * @param toPage-缁撴潫椤电爜锛堟瘡椤�20鏉℃暟鎹級 + */ + private void updateSpecialOrder(int fromPage, int toPage) { + // 鏈�杩�90澶╃殑璁㈠崟 + String startTimeStr = TimeUtil.getGernalTime(System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 90L, + "yyyy-MM-dd HH:mm:ss"); + + Comparator<TaoBaoOrder> cm = new Comparator<TaoBaoOrder>() { + @Override + public int compare(TaoBaoOrder o1, TaoBaoOrder o2) { + long span = TimeUtil.convertToTimeTemp(o2.getCreateTime(), "yyyy-MM-dd HH:mm:ss") + - TimeUtil.convertToTimeTemp(o1.getCreateTime(), "yyyy-MM-dd HH:mm:ss"); + if (span > 0) + return 1; + else if (span == 0) + return 0; + else + return -1; + } + }; + + for (int p = fromPage; p < toPage; p++) { + // 鐖彇2鏂硅鍗� + List<TaoBaoOrder> orderList = TaoKeOrderApiUtil.getTaoBaoSpecialOrder(startTimeStr, p, + Constant.TAOBAO_AUTH_APPKEY, Constant.TAOBAO_AUTH_APPSECRET); + Collections.sort(orderList, cm); + List<TaoBaoOrder> commonOrderList = UpdateOrderJob.getCommonOrder( + TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(), + "yyyy-MM-dd HH:mm:ss"), + TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + + List<TaoBaoOrder> list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList); + Collections.sort(list, cm); + addRelationAndSpecialOrder(list); + + + // 鐖彇涓夋柟璁㈠崟 + orderList = TaoKeOrderApiUtil.getTaoBaoSpecialThirdOrder(startTimeStr, p, Constant.TAOBAO_AUTH_APPKEY, + Constant.TAOBAO_AUTH_APPSECRET); + Collections.sort(orderList, cm); + + commonOrderList = UpdateOrderJob.getThirdCommonOrder( + TimeUtil.convertToTimeTemp(orderList.get(orderList.size() - 1).getCreateTime(), + "yyyy-MM-dd HH:mm:ss"), + TimeUtil.convertToTimeTemp(orderList.get(0).getCreateTime(), "yyyy-MM-dd HH:mm:ss")); + list = UpdateOrderJob.mixTaoBaoOrder(commonOrderList, orderList); + Collections.sort(list, cm); + addRelationAndSpecialOrder(list); + } + } + + /** + * 鎸夊ぉ鏇存柊 + * + * @param day + */ + private void updateSpecialOrderByDay(String day) { + long timestamp = TimeUtil.convertToTimeTemp(day, "yyyy-MM-dd"); + for (int i = 0; i < 72; i++) { + updateSpecialOrder(timestamp + 1000 * 60 * 20L * i); + } } private void addRelationAndSpecialOrder(List<TaoBaoOrder> orderList) { @@ -102,9 +257,34 @@ public void doJob1() { if (!Constant.IS_TASK) return; - long currentTime = System.currentTimeMillis(); - updateRelationOrder(currentTime); - updateSpecialOrder(currentTime); + // 鐖彇鏈�杩�3椤垫暟鎹� + updateRelationOrder(1, 3); + updateSpecialOrder(1, 3); + } + + // 姣�5鍒嗛挓鏇存柊锛�3-10椤垫暟鎹級 + @Scheduled(cron = "0 0/5 * * * ? ") + public void doJob2() { + if (!Constant.IS_TASK) + return; + updateRelationOrder(3, 11); + updateSpecialOrder(3, 11); + } + + // 姣忎釜灏忔椂鏇存柊10-1000椤垫暟鎹� + @Scheduled(cron = "0 0 0/1 * * ? ") + public void doJob3() { + if (!Constant.IS_TASK) + return; + Calendar calendar = Calendar.getInstance(); + int h = calendar.get(Calendar.HOUR_OF_DAY); + // 姣忎釜灏忔椂鏇存柊100椤垫暟鎹� + int fromPage = h * 100; + if (fromPage <= 0) + fromPage = 11; + int toPage = h * 100 + 100; + updateRelationOrder(fromPage, toPage); + updateSpecialOrder(fromPage, toPage); } } -- Gitblit v1.8.0