From 24a8d17e007545f7426c48352109aa1a9c6587ee Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 06 五月 2020 12:02:09 +0800 Subject: [PATCH] IOS上线隐藏我的界面的banner与超级会员升级信息 --- fanli/src/main/java/com/yeshi/fanli/job/order/jd/UpdateJDOrderJob.java | 123 +++++++++++++++++++++++++++++++++++------ 1 files changed, 105 insertions(+), 18 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 b8b1dd1..b7a4f54 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 @@ -6,16 +6,20 @@ import javax.annotation.Resource; -import org.springframework.scheduling.annotation.Scheduled; 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.jd.JDOrderResult; import com.yeshi.fanli.entity.jd.JDOrder; import com.yeshi.fanli.exception.jd.JDOrderException; -import com.yeshi.fanli.service.inter.jd.JDOrderService; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.order.jd.JDOrderService; +import com.yeshi.fanli.util.RedisKeyEnum; import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.cmq.JDOrderCMQManager; +import com.yeshi.fanli.util.TimeUtil; +import com.yeshi.fanli.util.cmq.order.JDOrderCMQManager; import com.yeshi.fanli.util.jd.JDApiUtil; //浠庢窐瀹濈埇鍘昏鍗曟洿鏂� @@ -34,48 +38,131 @@ * @param jdOrderList */ public void saveJDOrders(List<JDOrder> jdOrderList) { - for (JDOrder order : jdOrderList) + for (JDOrder order : jdOrderList) { + LogHelper.orderInfo("浜笢璁㈠崟:" + order.getOrderId() + "-" + order.getValidCode()); + if (order.getValidCode() == 15)// 杩囨护鎺夊緟浠樻 + continue; + + // 闃叉澶氫釜鍟嗗搧鎷嗗崟闂锛岀埇鍙� + if (order.getOrderItemList().size() > 1 + && order.getOrderTime() > System.currentTimeMillis() - 1000 * 60 * 3L) { + continue; + } + try { jdOrderService.addJDOrder(order); /** * 鍋氶鐜囬檺鍒� */ - String key = "jd-order-" + order.getOrderId(); + String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.JDOrder, order.getOrderId() + ""); String result = redisManager.getCommonString(key); - if (!StringUtil.isNullOrEmpty(result)) - continue; - JDOrderCMQManager.getInstance().addJDOrder(order.getOrderId() + ""); - redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂� + // 鍒ゆ柇 + if (StringUtil.isNullOrEmpty(result)) { + JDOrderCMQManager.getInstance().addJDOrder(order.getOrderId() + ""); + redisManager.cacheCommonString(key, "1", 60 * 60 * 2);// 2灏忔椂鍐呬笉鍐嶆洿鏂� + } } catch (JDOrderException e) { e.printStackTrace(); } + } } /** * 蹇�熻鍗曟洿鏂帮紙鐖彇鏈皬鏃跺唴鐨勫崟,姣忓垎閽熶竴娆★級 */ - @Scheduled(cron = "0 0/1 * * * ? ") - public void updateSoonOrder() { - JDOrderResult result = JDApiUtil.getOrderList(1, 200, new Date(), JDApiUtil.ORDER_TYPE_CREATETIME); - if (result != null && result.getOrderList() != null) - saveJDOrders(result.getOrderList()); + @XxlJob("updateJDOrderHandler") + public ReturnT<String> updateJDSoonOrder(String param) throws Exception { + 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 ("3day".equalsIgnoreCase(param)) {// 鏇存柊鏈�杩�3澶╂洿鏂扮殑鏁版嵁 + updateLatest3DayOrder(); + } + + return ReturnT.SUCCESS; } /** * 鐖彇鏈�杩戜竴灏忔椂鍐呯殑鐘舵�佹洿鏂颁簡鐨勫崟(10鍒嗛挓涓�娆�) */ - @Scheduled(cron = "0 0/10 * * * ? ") + public void updateUpdateOrder() { List<JDOrder> jdOrderList = new ArrayList<>(); int pageSize = 200; int page = 1; JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME); - jdOrderList.addAll(result.getOrderList()); - while (result.isHasMore()) { - result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) { jdOrderList.addAll(result.getOrderList()); + while (result != null && result.isHasMore()) { + result = JDApiUtil.getOrderList(page++, pageSize, new Date(), JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) + jdOrderList.addAll(result.getOrderList()); + } } saveJDOrders(jdOrderList); } + /** + * 鏇存柊涓�涓皬鏃剁殑璁㈠崟 + * + * @param date + */ + private List<JDOrder> getHourOrder(Date date) { + List<JDOrder> jdOrderList = new ArrayList<>(); + int pageSize = 200; + int page = 1; + JDOrderResult result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) { + jdOrderList.addAll(result.getOrderList()); + while (result != null && result.isHasMore()) { + result = JDApiUtil.getOrderList(page++, pageSize, date, JDApiUtil.ORDER_TYPE_UPDATETIME); + if (result != null) + jdOrderList.addAll(result.getOrderList()); + } + } + return jdOrderList; + } + + /** + * 鏇存柊涓�澶╃殑鏁版嵁 + * + * @param date + */ + public void updateDayOrder(Date date) { + Date now = new Date(); + List<JDOrder> orderList = new ArrayList<>(); + Date startTime = new Date( + TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd"), "yyyy-MM-dd")); + // 涓�涓皬鏃朵负涓�涓闀� + for (int i = 0; i < 24; i++) { + Date da = new Date(startTime.getTime() + 1000 * 60 * 60L * i); + if (da.getTime() > now.getTime()) + break; + List<JDOrder> tempOrderList = getHourOrder(da); + if (tempOrderList != null && tempOrderList.size() > 0) + orderList.addAll(tempOrderList); + } + saveJDOrders(orderList); + } + + /** + * 鏇存柊鏈�杩�3澶╃殑璁㈠崟锛堟瘡澶╂棭涓婂噷鏅�0鐐硅繃10鍒嗭紝鏃╀笂8鐐硅繃10鍒嗭級 + */ + public void updateLatest3DayOrder() { + Date now = new Date(); + for (int i = 1; i < 4; i++) { + updateDayOrder(new Date(now.getTime() - 1000 * 60 * 60 * 24L * i)); + } + } + } -- Gitblit v1.8.0