From 751e2c9584400fffc93b77b163faf924bb6aa16b Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 12 Mar 2025 22:02:58 +0800 Subject: [PATCH] 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()+"时间范围错误"); }