From 6d22c906eca51ee077271981d883786887107ee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E6=AC=A7=EF=BC=88=E6=9E=97=E5=B9=B3=E5=87=A1?= =?UTF-8?q?=EF=BC=89?= Date: Wed, 4 Jun 2025 14:28:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B2=BE=E7=AE=80=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/van/business/util/JDUtil.java | 69 ++++++++++++------- 1 file changed, 44 insertions(+), 25 deletions(-) diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 0b01720..7cc1bd8 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -197,7 +197,7 @@ public class JDUtil { return new OrderStats(orders.size(), orders.size() - canceled, paid, orders.stream().filter(o -> o.getValidCode() == 16).mapToDouble(OrderRow::getEstimateFee).sum(), pending, orders.stream().filter(o -> o.getValidCode() == 15).mapToDouble(OrderRow::getEstimateFee).sum(), canceled, completed, orders.stream().filter(o -> o.getValidCode() == 17).mapToDouble(OrderRow::getEstimateFee).sum(), getStreamForWeiGui(orders).count(), getStreamForWeiGui(orders).mapToDouble(o -> o.getEstimateCosPrice() * o.getCommissionRate() * 0.01).sum()); } - private StringBuilder buildStatsContent(String title, OrderStats stats) { + private StringBuilder buildStatsContentAll(String title, OrderStats stats) { StringBuilder content = new StringBuilder(); content//[爱心][Wow][Packet][Party][Broken][心碎][亲亲][色] .append("* ").append(title).append(" *\n").append("━━━━━━━━━━━━\n").append("[爱心] 订单总数:").append(stats.getTotalOrders()).append("\n") // [文件] @@ -215,6 +215,25 @@ public class JDUtil { .append("━━━━━━━━━━━━"); return content; } + private StringBuilder buildStatsContentMin(String title, OrderStats stats) { + StringBuilder content = new StringBuilder(); + content//[爱心][Wow][Packet][Party][Broken][心碎][亲亲][色] + .append(title).append("\n").append("━━━━━━━━━━━━\n") + //.append("[爱心] 订单总数:").append(stats.getTotalOrders()).append("\n") // [文件] + .append("[Party] 有效订单:").append(stats.getValidOrders()).append("\n") // [OK] + //.append("[心碎]已取消:").append(stats.getCanceledOrders()).append("\n") // [禁止] + + .append("────────────\n").append("[爱心]已付款:").append(stats.getPaidOrders()).append("\n") // [钱袋] + .append("[Packet] 已付款佣金:").append(String.format("%.2f", stats.getPaidCommission())).append("\n") // [钞票] + //.append("────────────\n").append("[Wow] 待付款:").append(stats.getPendingOrders()).append("\n") // [时钟] + //.append("[Packet] 待付款佣金:").append(String.format("%.2f", stats.getPendingCommission())).append("\n") // [钱] + .append("────────────\n").append("[亲亲] 已完成:").append(stats.getCompletedOrders()).append("\n") // [旗帜] + .append("[Packet] 已完成佣金:").append(String.format("%.2f", stats.getCompletedCommission())).append("\n") // [信用卡] + .append("────────────\n").append("[Emm] 违规订单:").append(stats.getViolations()).append("\n") // [警告] + .append("[Broken] 违规佣金:").append(String.format("%.2f", stats.getViolationCommission())).append("\n") // [炸弹] + .append("━━━━━━━━━━━━"); + return content; + } /** * 接收京粉指令指令 @@ -284,14 +303,14 @@ public class JDUtil { // 订单总数,已付款,已取消,佣金总计 List todayOrders = filterOrdersByDate(orderRows, 0); OrderStats stats = calculateStats(todayOrders); - contents.add(buildStatsContent("今日统计", stats)); + contents.add(buildStatsContentAll("今日统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(todayOrders); - StringBuilder stringBuilder = new StringBuilder().append("详:"); + StringBuilder stringBuilder = new StringBuilder().append("详:\n"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -300,14 +319,14 @@ public class JDUtil { case "昨日统计": { List yesterdayOrders = filterOrdersByDate(orderRows, 1); OrderStats stats = calculateStats(yesterdayOrders); - contents.add(buildStatsContent("昨日统计", stats)); + contents.add(buildStatsContentAll("昨日统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(yesterdayOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -317,14 +336,14 @@ public class JDUtil { case "三日统计": { List last3DaysOrders = filterOrdersByDate(orderRows, 3); OrderStats stats = calculateStats(last3DaysOrders); - contents.add(buildStatsContent("三日统计", stats)); + contents.add(buildStatsContentAll("三日统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(last3DaysOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -334,14 +353,14 @@ public class JDUtil { case "七日统计": { List last7DaysOrders = filterOrdersByDate(orderRows, 7); OrderStats stats = calculateStats(last7DaysOrders); - contents.add(buildStatsContent("七日统计", stats)); + contents.add(buildStatsContentAll("七日统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(last7DaysOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -351,14 +370,14 @@ public class JDUtil { case "一个月统计": { List last30DaysOrders = filterOrdersByDate(orderRows, 30); OrderStats stats = calculateStats(last30DaysOrders); - contents.add(buildStatsContent("一个月统计", stats)); + contents.add(buildStatsContentAll("一个月统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(last30DaysOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -367,14 +386,14 @@ public class JDUtil { case "两个月统计": { List last60DaysOrders = filterOrdersByDate(orderRows, 60); OrderStats stats = calculateStats(last60DaysOrders); - contents.add(buildStatsContent("两个月统计", stats)); + contents.add(buildStatsContentAll("两个月统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(last60DaysOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -383,14 +402,14 @@ public class JDUtil { case "三个月统计": { List last90DaysOrders = filterOrdersByDate(orderRows, 90); OrderStats stats = calculateStats(last90DaysOrders); - contents.add(buildStatsContent("三个月统计", stats)); + contents.add(buildStatsContentAll("三个月统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(last90DaysOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -401,14 +420,14 @@ public class JDUtil { int days = LocalDate.now().getDayOfMonth(); List thisMonthOrders = filterOrdersByDate(orderRows, days); OrderStats stats = calculateStats(thisMonthOrders); - contents.add(buildStatsContent("这个月统计", stats)); + contents.add(buildStatsContentAll("这个月统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(thisMonthOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -423,14 +442,14 @@ public class JDUtil { lastMonthOrders = lastMonthOrders.stream().filter(orderRow -> !thisMonthOrders.contains(orderRow)).collect(Collectors.toList()); OrderStats stats = calculateStats(lastMonthOrders); - contents.add(buildStatsContent("上个月统计", stats)); + contents.add(buildStatsContentAll("上个月统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(lastMonthOrders); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -441,14 +460,14 @@ public class JDUtil { case "总统计": { OrderStats stats = calculateStats(orderRows); - contents.add(buildStatsContent("总统计", stats)); + contents.add(buildStatsContentAll("总统计", stats)); Map statsByUnionId = OrderStatsUtil.groupByUnionIdAndCalculateStats(orderRows); StringBuilder stringBuilder = new StringBuilder().append("详:"); if (statsByUnionId != null) { for (Map.Entry entry : statsByUnionId.entrySet()) { OrderStats statsDetail = entry.getValue(); String remarkFromJdid = getRemarkFromJdid(String.valueOf(entry.getKey())); - stringBuilder.append(buildStatsContent("\n粉:" + remarkFromJdid + "\n", statsDetail)); + stringBuilder.append(buildStatsContentMin("粉:" + remarkFromJdid, statsDetail)); } } contents.add(stringBuilder); @@ -461,7 +480,7 @@ public class JDUtil { List todayOrders = filterOrdersByDate(orderRows, 0); // 订单总数,已付款,已取消,佣金总计 OrderStats stats = calculateStats(todayOrders); - contents.add(buildStatsContent("今日统计", stats)); + contents.add(buildStatsContentAll("今日统计", stats)); if (!todayOrders.isEmpty()) { orderUtil.orderToWxBatch(todayOrders); } @@ -478,7 +497,7 @@ public class JDUtil { logger.info("今日过滤后数量:{}", todayOrders.size()); logger.info("最终昨日订单数量:{}", yesterdayOrders.size()); OrderStats stats = calculateStats(yesterdayOrders); - contents.add(buildStatsContent("昨日统计", stats)); + contents.add(buildStatsContentAll("昨日统计", stats)); if (!yesterdayOrders.isEmpty()) { orderUtil.orderToWxBatch(yesterdayOrders); } @@ -489,7 +508,7 @@ public class JDUtil { List todayOrders = filterOrdersByDate(orderRows, 0); last7DaysOrders.removeAll(todayOrders); OrderStats stats = calculateStats(last7DaysOrders); - contents.add(buildStatsContent("七日统计", stats)); + contents.add(buildStatsContentAll("七日统计", stats)); if (!last7DaysOrders.isEmpty()) { orderUtil.orderToWxBatch(last7DaysOrders);