From 946a86d48d8dbdf2eb1faffdf69879d0485fb83e Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 12 Mar 2025 19:22:51 +0800 Subject: [PATCH 1/5] 1 --- src/main/java/cn/van/business/util/JDUtil.java | 2 +- src/main/java/cn/van/business/util/jdReq/Days0007Strategy.java | 2 +- src/main/java/cn/van/business/util/jdReq/Days0714Strategy.java | 2 +- src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java | 2 +- src/main/java/cn/van/business/util/jdReq/Days3090Strategy.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 4b74673..2722dea 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -1177,7 +1177,7 @@ public class JDUtil { // 新增礼金流程处理方法 private void handleGiftMoneyFlow(String fromWxid, String message, UserInteractionState state) { - if ("京礼金".equals(message)) { + if ("礼金".equals(message)) { state.reset(); // 重置流程 wxUtil.sendTextMessage(fromWxid, "流程已重置,请重新开始", 1, fromWxid); return; diff --git a/src/main/java/cn/van/business/util/jdReq/Days0007Strategy.java b/src/main/java/cn/van/business/util/jdReq/Days0007Strategy.java index 1595f9d..88b1220 100644 --- a/src/main/java/cn/van/business/util/jdReq/Days0007Strategy.java +++ b/src/main/java/cn/van/business/util/jdReq/Days0007Strategy.java @@ -13,7 +13,7 @@ public class Days0007Strategy implements OrderFetchStrategy { LocalDateTime end = baseTime.truncatedTo(ChronoUnit.HOURS); LocalDateTime start = end.minusDays(7).truncatedTo(ChronoUnit.HOURS); if (start.isAfter(end)) { // 防御性校验 - throw new IllegalArgumentException("时间范围错误"); + throw new IllegalArgumentException(strategyName()+"时间范围错误"); } return new TimeRange(start, end); } diff --git a/src/main/java/cn/van/business/util/jdReq/Days0714Strategy.java b/src/main/java/cn/van/business/util/jdReq/Days0714Strategy.java index d431051..c0e3dcb 100644 --- a/src/main/java/cn/van/business/util/jdReq/Days0714Strategy.java +++ b/src/main/java/cn/van/business/util/jdReq/Days0714Strategy.java @@ -12,7 +12,7 @@ public class Days0714Strategy implements OrderFetchStrategy { LocalDateTime end = baseTime.truncatedTo(ChronoUnit.HOURS).minusDays(7); LocalDateTime start = end.minusDays(14).truncatedTo(ChronoUnit.HOURS); if (start.isAfter(end)) { // 防御性校验 - throw new IllegalArgumentException("时间范围错误"); + throw new IllegalArgumentException(strategyName()+"时间范围错误"); } return new TimeRange(start, end); } diff --git a/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java b/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java index c93ee9c..65218dc 100644 --- a/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java +++ b/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java @@ -10,7 +10,7 @@ public class Days1430Strategy implements OrderFetchStrategy { LocalDateTime end = baseTime.minusDays(30).truncatedTo(ChronoUnit.HOURS); LocalDateTime start = baseTime.minusDays(14).truncatedTo(ChronoUnit.HOURS); if (start.isAfter(end)) { // 防御性校验 - throw new IllegalArgumentException("时间范围错误"); + throw new IllegalArgumentException(strategyName()+"时间范围错误"); } return new TimeRange(start, end); } diff --git a/src/main/java/cn/van/business/util/jdReq/Days3090Strategy.java b/src/main/java/cn/van/business/util/jdReq/Days3090Strategy.java index 52b4a43..8bad8f7 100644 --- a/src/main/java/cn/van/business/util/jdReq/Days3090Strategy.java +++ b/src/main/java/cn/van/business/util/jdReq/Days3090Strategy.java @@ -11,7 +11,7 @@ public class Days3090Strategy implements OrderFetchStrategy { LocalDateTime end = baseTime.minusMonths(1); LocalDateTime start = end.minusMonths(2); if (start.isAfter(end)) { // 防御性校验 - throw new IllegalArgumentException("时间范围错误"); + throw new IllegalArgumentException(strategyName()+"时间范围错误"); } return new TimeRange(start, end); } From 751e2c9584400fffc93b77b163faf924bb6aa16b Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 12 Mar 2025 22:02:58 +0800 Subject: [PATCH 2/5] 1 --- .../java/cn/van/business/util/JDUtil.java | 51 ++++++++++++++----- .../java/cn/van/business/util/OrderUtil.java | 40 +++++++++++++-- .../business/util/jdReq/Days1430Strategy.java | 4 +- 3 files changed, 75 insertions(+), 20 deletions(-) diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 2722dea..03f7632 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -344,7 +344,7 @@ public class JDUtil { try { fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); } catch (Exception e) { - logger.error("账号{}拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); + logger.error("账号 {} 拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); } } } catch (Exception ex) { @@ -527,6 +527,7 @@ public class JDUtil { // 订单总数,已付款,已取消,佣金总计 content.append("今日统计:\n"); content.append("订单总数:").append(todayOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -543,6 +544,8 @@ public class JDUtil { List yesterdayOrders = filterOrdersByDate(orderRows, 1); content.append("昨日统计:\n"); content.append("订单总数:").append(yesterdayOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -559,6 +562,8 @@ public class JDUtil { List last3DaysOrders = filterOrdersByDate(orderRows, 3); content.append("三日统计:\n"); content.append("订单总数:").append(last3DaysOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -575,6 +580,7 @@ public class JDUtil { List last7DaysOrders = filterOrdersByDate(orderRows, 7); content.append("七日统计:\n"); content.append("订单总数:").append(last7DaysOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -591,6 +597,8 @@ public class JDUtil { List last30DaysOrders = filterOrdersByDate(orderRows, 30); content.append("一个月统计:\n"); content.append("订单总数:").append(last30DaysOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -608,6 +616,8 @@ public class JDUtil { List last60DaysOrders = filterOrdersByDate(orderRows, 60); content.append("两个月统计:\n"); content.append("订单总数:").append(last60DaysOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -624,6 +634,8 @@ public class JDUtil { content = new StringBuilder(); List last90DaysOrders = filterOrdersByDate(orderRows, 90); content.append("订单总数:").append(last90DaysOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -644,6 +656,8 @@ public class JDUtil { content.append("本月统计:\n"); content.append("订单总数:").append(thisMonthOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -667,6 +681,8 @@ public class JDUtil { content.append("上个月统计:\n"); content.append("订单总数:").append(lastMonthOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -686,6 +702,8 @@ public class JDUtil { content = new StringBuilder(); content.append("总统计:\n"); content.append("订单总数:").append(orderRows.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - orderRows.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(orderRows.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -706,6 +724,8 @@ public class JDUtil { // 订单总数,已付款,已取消,佣金总计 content.append("今日统计:\n"); content.append("订单总数:").append(todayOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -730,6 +750,8 @@ public class JDUtil { yesterdayOrders.removeAll(todayOrders); content.append("昨日统计:\n"); content.append("订单总数:").append(yesterdayOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -747,21 +769,24 @@ public class JDUtil { } case "七日订单": { content = new StringBuilder(); - List sevendayOrders = filterOrdersByDate(orderRows, 1); + List last7DaysOrders = filterOrdersByDate(orderRows, 1); List todayOrders = filterOrdersByDate(orderRows, 0); - sevendayOrders.removeAll(todayOrders); + last7DaysOrders.removeAll(todayOrders); content.append("七日统计:\n"); - content.append("订单总数:").append(sevendayOrders.size()).append("\r"); - content.append("已付款:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); - content.append("已取消:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); - content.append("已完成:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); - content.append("违规:").append(getStreamForWeiGui(sevendayOrders).count()).append("\r"); - content.append("已付款佣金:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).mapToDouble(OrderRow::getEstimateFee).sum()).append("\r"); - content.append("已完成佣金:").append(sevendayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum()); - content.append("\r" + "违规佣金:").append(getStreamForWeiGui(sevendayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum()); + content.append("订单总数:").append(last7DaysOrders.size()).append("\r"); + content.append("订单总数(不含取消):").append(orderRows.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); - if(!sevendayOrders.isEmpty()){ - orderUtil.orderToWxBatch(sevendayOrders); + + content.append("已付款:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); + content.append("已取消:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("已完成:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); + content.append("违规:").append(getStreamForWeiGui(last7DaysOrders).count()).append("\r"); + content.append("已付款佣金:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).mapToDouble(OrderRow::getEstimateFee).sum()).append("\r"); + content.append("已完成佣金:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum()); + content.append("\r" + "违规佣金:").append(getStreamForWeiGui(last7DaysOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum()); + + if(!last7DaysOrders.isEmpty()){ + orderUtil.orderToWxBatch(last7DaysOrders); } contents.add(content); diff --git a/src/main/java/cn/van/business/util/OrderUtil.java b/src/main/java/cn/van/business/util/OrderUtil.java index f20a49d..5a524f8 100644 --- a/src/main/java/cn/van/business/util/OrderUtil.java +++ b/src/main/java/cn/van/business/util/OrderUtil.java @@ -77,13 +77,9 @@ public class OrderUtil { && orderRow.getValidCode() != 3).toList(); content.append("移除 拆单或者取消 的订单, 共 ").append(filterList.size()).append("单: \n\r"); for (OrderRow orderRow : filterList) { - String oldValidCode = redisTemplate.opsForValue().get(ORDER_ROW_KEY + orderRow.getId()); - - // 检查Redis中是否有旧的状态码,没有的话赋予默认值 - Integer lastValidCode = oldValidCode != null ? Integer.parseInt(oldValidCode) : -100; content.append("\r\n"); content.append(i++).append("、"); - content.append(getFormattedOrderInfo(orderRow, lastValidCode)); + content.append(getFormattedOrderInfoBatch(orderRow)); } if (Util.isNotEmpty(wxId)) { @@ -126,6 +122,40 @@ public class OrderUtil { } + return orderInfo; + } + + /** + * 将数据库订单转化成微信所需要文本 简洁版 + */ + public String getFormattedOrderInfoBatch(OrderRow orderRow) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + ValidCodeConverter converter = new ValidCodeConverter(); + String orderInfo = + //+ "订单+sku:" + orderRow.getId() + "\r" + "订单:" + orderRow.getOrderId() + " (" + (orderRow.getPlus() == 1 ? "plus" : "非plus") + ")\r" + + + "状态:" + (converter.getCodeDescription(orderRow.getValidCode())) + "\r" + + + "名称:" + orderRow.getSkuName() + "\r\n" + //+ "商品单价:" + orderRow.getPrice() + "\r" + //+ "商品数量:" + orderRow.getSkuNum() + "\r" + //+ "商品总价:" + (orderRow.getPrice() * orderRow.getSkuNum()) + "\r" + //+ "计佣金额:" + orderRow.getEstimateCosPrice() + "\r" + + //+ "金额:" + orderRow.getActualCosPrice() + "\r" + //+ "比例:" + orderRow.getCommissionRate() + "\r" + + "佣金:" + orderRow.getEstimateFee() + "\r\n" + + + "下单:" + formatter.format(orderRow.getOrderTime()) + "\r" + + "完成:" + (orderRow.getFinishTime() != null ? formatter.format(orderRow.getFinishTime()) : "未完成") + "\r"; + //if (oldValidCode != -100) { + // if (!oldValidCode.equals(orderRow.getValidCode())) + // orderInfo = "从 :" + (converter.getCodeDescription(oldValidCode)) + "\r变成 " + + // (converter.getCodeDescription(orderRow.getValidCode())) + "\r\n" + orderInfo; + //} + + return orderInfo; } } diff --git a/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java b/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java index 65218dc..12835d8 100644 --- a/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java +++ b/src/main/java/cn/van/business/util/jdReq/Days1430Strategy.java @@ -7,8 +7,8 @@ import java.time.temporal.ChronoUnit; public class Days1430Strategy implements OrderFetchStrategy { @Override public TimeRange calculateRange(LocalDateTime baseTime) { - LocalDateTime end = baseTime.minusDays(30).truncatedTo(ChronoUnit.HOURS); - LocalDateTime start = baseTime.minusDays(14).truncatedTo(ChronoUnit.HOURS); + LocalDateTime end = baseTime.minusDays(14).truncatedTo(ChronoUnit.HOURS); + LocalDateTime start = baseTime.minusDays(30).truncatedTo(ChronoUnit.HOURS); if (start.isAfter(end)) { // 防御性校验 throw new IllegalArgumentException(strategyName()+"时间范围错误"); } From 918700fdbc3758a11eb69a43f6df6e1c18628f54 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 12 Mar 2025 22:07:13 +0800 Subject: [PATCH 3/5] 1 --- .../java/cn/van/business/util/JDUtil.java | 71 ++++++++++--------- 1 file changed, 37 insertions(+), 34 deletions(-) diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 03f7632..b7393ac 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -319,9 +319,10 @@ public class JDUtil { OrderFetchStrategy strategy = new Days3090Strategy(); for (WXUtil.SuperAdmin admin : super_admins.values()) { try { - fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); + int count = fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); + logger.info("账号{} 3090订单拉取完成,新增{}条", admin.getAppKey().substring(18), count); } catch (Exception e) { - logger.error("账号{}拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); + logger.error("账号 {} 拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); } } } catch (Exception ex) { @@ -342,7 +343,8 @@ public class JDUtil { OrderFetchStrategy strategy = new Days1430Strategy(); // 需补充Days1430Strategy实现 for (WXUtil.SuperAdmin admin : super_admins.values()) { try { - fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); + int count = fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); + logger.info("账号{} 1430订单拉取完成,新增{}条", admin.getAppKey().substring(18), count); } catch (Exception e) { logger.error("账号 {} 拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); } @@ -365,9 +367,11 @@ public class JDUtil { super_admins.values().parallelStream().forEach(admin -> { if (Util.isAnyEmpty(admin.getAppKey(), admin.getSecretKey())) return; try { - fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); + int count = fetchOrders(strategy, admin.getAppKey(), admin.getSecretKey()); + logger.info("账号{} 0714订单拉取完成,新增{}条", admin.getAppKey().substring(18), count); + } catch (Exception e) { - logger.error("账号{}0714拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); + logger.error("账号 {} 0714拉取异常: {}", admin.getAppKey().substring(18), e.getMessage()); } }); } catch (Exception ex) { @@ -735,7 +739,7 @@ public class JDUtil { content.append("\r" + "违规佣金:").append(getStreamForWeiGui(todayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum()); - if(!todayOrders.isEmpty()){ + if (!todayOrders.isEmpty()) { orderUtil.orderToWxBatch(todayOrders); } @@ -760,7 +764,7 @@ public class JDUtil { content.append("已完成佣金:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum()); content.append("\r" + "违规佣金:").append(getStreamForWeiGui(yesterdayOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum()); - if(!yesterdayOrders.isEmpty()){ + if (!yesterdayOrders.isEmpty()) { orderUtil.orderToWxBatch(todayOrders); } @@ -785,7 +789,7 @@ public class JDUtil { content.append("已完成佣金:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum()); content.append("\r" + "违规佣金:").append(getStreamForWeiGui(last7DaysOrders).mapToDouble(orderRow -> orderRow.getEstimateCosPrice() * orderRow.getCommissionRate() * 0.01).sum()); - if(!last7DaysOrders.isEmpty()){ + if (!last7DaysOrders.isEmpty()) { orderUtil.orderToWxBatch(last7DaysOrders); } @@ -1267,21 +1271,28 @@ public class JDUtil { return true; } + // 增强京东链接解析的正则表达式 + private String parseSkuFromUrl(String url) { + Pattern pattern = Pattern.compile("/(\\d+)(\\.html|\\?)"); // 支持更多链接格式 + Matcher matcher = pattern.matcher(url); + return matcher.find() ? matcher.group(1) : null; + } + + // 改进金额验证提示 + private boolean isValidAmount(String input) { + String fromWxid = ""; + if (!input.matches("^\\d+(\\.\\d{1,2})?$")) { + wxUtil.sendTextMessage(fromWxid, "金额格式错误,请输入数字(可包含两位小数)\n示例:50 或 29.9", 1, fromWxid); + return false; + } + return true; + } + // 定义一个内部类来存储用户交互状态 @Getter @Setter static class UserInteractionState { - // 推荐使用枚举管理状态 - public enum ProcessState { - INIT, GIFT_MONEY_FLOW, DISINFECTANT_CABINET - } - - public enum GiftMoneyStep { - STEP_PRODUCT_LINK, STEP_AMOUNT, STEP_QUANTITY - } - private GiftMoneyStep currentStep; // 新增当前步骤字段 - private String lastInteractionTime; private ProcessState currentState; private Map collectedFields; // 用于存储收集到的字段值 @@ -1307,23 +1318,15 @@ public class JDUtil { updateLastInteractionTime(); } - } - - // 增强京东链接解析的正则表达式 - private String parseSkuFromUrl(String url) { - Pattern pattern = Pattern.compile("/(\\d+)(\\.html|\\?)"); // 支持更多链接格式 - Matcher matcher = pattern.matcher(url); - return matcher.find() ? matcher.group(1) : null; - } - - // 改进金额验证提示 - private boolean isValidAmount(String input) { - String fromWxid = ""; - if (!input.matches("^\\d+(\\.\\d{1,2})?$")) { - wxUtil.sendTextMessage(fromWxid, "金额格式错误,请输入数字(可包含两位小数)\n示例:50 或 29.9", 1, fromWxid); - return false; + // 推荐使用枚举管理状态 + public enum ProcessState { + INIT, GIFT_MONEY_FLOW, DISINFECTANT_CABINET } - return true; + + public enum GiftMoneyStep { + STEP_PRODUCT_LINK, STEP_AMOUNT, STEP_QUANTITY + } + } // 限流异常类(需自定义) From b37e3c05dde66277edd88e2a5b17552466693942 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 12 Mar 2025 22:14:46 +0800 Subject: [PATCH 4/5] 1 --- .../java/cn/van/business/util/JDUtil.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index b7393ac..0af479d 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -531,7 +531,7 @@ public class JDUtil { // 订单总数,已付款,已取消,佣金总计 content.append("今日统计:\n"); content.append("订单总数:").append(todayOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(todayOrders.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -548,7 +548,7 @@ public class JDUtil { List yesterdayOrders = filterOrdersByDate(orderRows, 1); content.append("昨日统计:\n"); content.append("订单总数:").append(yesterdayOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(yesterdayOrders.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -566,7 +566,7 @@ public class JDUtil { List last3DaysOrders = filterOrdersByDate(orderRows, 3); content.append("三日统计:\n"); content.append("订单总数:").append(last3DaysOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(last3DaysOrders.size() - last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last3DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -584,7 +584,7 @@ public class JDUtil { List last7DaysOrders = filterOrdersByDate(orderRows, 7); content.append("七日统计:\n"); content.append("订单总数:").append(last7DaysOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(last7DaysOrders.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已完成:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 17).count()).append("\r"); @@ -601,7 +601,7 @@ public class JDUtil { List last30DaysOrders = filterOrdersByDate(orderRows, 30); content.append("一个月统计:\n"); content.append("订单总数:").append(last30DaysOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(last30DaysOrders.size() - last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last30DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -620,7 +620,7 @@ public class JDUtil { List last60DaysOrders = filterOrdersByDate(orderRows, 60); content.append("两个月统计:\n"); content.append("订单总数:").append(last60DaysOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(last60DaysOrders.size() - last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last60DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -638,7 +638,7 @@ public class JDUtil { content = new StringBuilder(); List last90DaysOrders = filterOrdersByDate(orderRows, 90); content.append("订单总数:").append(last90DaysOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(last90DaysOrders.size() - last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(last90DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -660,7 +660,7 @@ public class JDUtil { content.append("本月统计:\n"); content.append("订单总数:").append(thisMonthOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(thisMonthOrders.size() - thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(thisMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -685,7 +685,7 @@ public class JDUtil { content.append("上个月统计:\n"); content.append("订单总数:").append(lastMonthOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(lastMonthOrders.size() - lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(lastMonthOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -728,7 +728,7 @@ public class JDUtil { // 订单总数,已付款,已取消,佣金总计 content.append("今日统计:\n"); content.append("订单总数:").append(todayOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(todayOrders.size() - todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(todayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -754,7 +754,7 @@ public class JDUtil { yesterdayOrders.removeAll(todayOrders); content.append("昨日统计:\n"); content.append("订单总数:").append(yesterdayOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(yesterdayOrders.size() - yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); content.append("已取消:").append(yesterdayOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); @@ -778,7 +778,7 @@ public class JDUtil { last7DaysOrders.removeAll(todayOrders); content.append("七日统计:\n"); content.append("订单总数:").append(last7DaysOrders.size()).append("\r"); - content.append("订单总数(不含取消):").append(orderRows.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); + content.append("订单总数(不含取消):").append(last7DaysOrders.size() - last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() != 16 && orderRow.getValidCode() != 17).count()).append("\r"); content.append("已付款:").append(last7DaysOrders.stream().filter(orderRow -> orderRow.getValidCode() == 16).count()).append("\r"); From 800811a140d3ede848671176ed8b8eb5c48a1603 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 12 Mar 2025 22:28:58 +0800 Subject: [PATCH 5/5] 1 --- src/main/java/cn/van/business/util/WXUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cn/van/business/util/WXUtil.java b/src/main/java/cn/van/business/util/WXUtil.java index 1884865..4f5b215 100644 --- a/src/main/java/cn/van/business/util/WXUtil.java +++ b/src/main/java/cn/van/business/util/WXUtil.java @@ -137,7 +137,7 @@ public class WXUtil { //logger.info("发送文本消息 msgType: {} wxid: {} fromwxid: {} content: {}", msgType, wxid, fromwxid, content); // 先在content顶部插入时间戳 // 因为引入了消息队列,所以在每条消息都加上时间戳 格式化成 yyyy-MM-dd HH:mm:ss - content = "[ " + DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss") + " ] \r\n" + content; + content = "[ " + DateUtil.format(new Date(), "HH:mm:ss yyyy-MM-dd") + " ] \r\n" + content; // 如果是自己的微信,所有信息都加上少爷 //if (wxid.equals(super_admin_wxid) || fromwxid.equals(super_admin_wxid)) {