From 893402279e543417909c106bfc01a7a489bf296c Mon Sep 17 00:00:00 2001 From: Van0313 <60689272+Van0313@users.noreply.github.com> Date: Mon, 2 Jun 2025 21:50:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=95=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/van/business/util/JDUtil.java | 129 +++++++++--------- 1 file changed, 63 insertions(+), 66 deletions(-) diff --git a/src/main/java/cn/van/business/util/JDUtil.java b/src/main/java/cn/van/business/util/JDUtil.java index 1d33332..74add6a 100644 --- a/src/main/java/cn/van/business/util/JDUtil.java +++ b/src/main/java/cn/van/business/util/JDUtil.java @@ -2004,87 +2004,84 @@ public class JDUtil { } public void LD(String input, String fromWxid) { -if (input.equals("慢单")) { - // 获取今天的日期 - LocalDateTime today = LocalDateTime.now(); - if (today.getHour() < 8) { - // 如果当前时间在早上8点之前,则获取昨天的日期 - today = today.minusDays(1); - } - LocalDateTime startOfDay = today.withHour(0).withMinute(0).withSecond(0).withNano(0); - LocalDateTime endOfDay = today.withHour(23).withMinute(59).withSecond(59).withNano(999999999); + if (input.equals("慢单")) { + // 获取今天的日期 + LocalDateTime today = LocalDateTime.now(); + if (today.getHour() < 8) { + // 如果当前时间在早上8点之前,则获取昨天的日期 + today = today.minusDays(1); + } + LocalDateTime startOfDay = today.withHour(0).withMinute(0).withSecond(0).withNano(0); + LocalDateTime endOfDay = today.withHour(23).withMinute(59).withSecond(59).withNano(999999999); - // 将 LocalDateTime 转换为 Date - Date startDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant()); - Date endDate = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); + // 将 LocalDateTime 转换为 Date + Date startDate = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant()); + Date endDate = Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); - List todayOrders = jdOrderRepository.findByOrderTimeBetween(startDate, endDate); + List todayOrders = jdOrderRepository.findByOrderTimeBetween(startDate, endDate); - if (todayOrders.isEmpty()) { - wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false); - return; - } + if (todayOrders.isEmpty()) { + wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false); + return; + } - // 按 distributionMark 分组 - Map> groupedByDistributionMark = todayOrders.stream() - .collect(Collectors.groupingBy(JDOrder::getDistributionMark, Collectors.toList())); + // 按 distributionMark 分组 + Map> groupedByDistributionMark = todayOrders.stream() + .collect(Collectors.groupingBy(JDOrder::getDistributionMark, Collectors.toList())); - for (Map.Entry> entry : groupedByDistributionMark.entrySet()) { - String distributionMark = entry.getKey() != null ? entry.getKey() : "未提供"; - List orders = entry.getValue(); + for (Map.Entry> entry : groupedByDistributionMark.entrySet()) { + String distributionMark = entry.getKey() != null ? entry.getKey() : "未提供"; + List orders = entry.getValue(); - // 总统计信息 - StringBuilder summaryBuilder = new StringBuilder(); - double totalPayment = 0; - double totalRebate = 0; - int totalCount = 0; + // 总统计信息 + StringBuilder summaryBuilder = new StringBuilder(); + double totalPayment = 0; + double totalRebate = 0; + int totalCount = 0; - // 按 modelNumber 再次分组 - Map> groupedByModel = orders.stream() - .collect(Collectors.groupingBy(JDOrder::getModelNumber)); + // 按 modelNumber 再次分组 + Map> groupedByModel = orders.stream() + .collect(Collectors.groupingBy(JDOrder::getModelNumber)); - for (Map.Entry> modelEntry : groupedByModel.entrySet()) { - String modelNumber = modelEntry.getKey(); - List modelOrders = modelEntry.getValue(); + for (Map.Entry> modelEntry : groupedByModel.entrySet()) { + String modelNumber = modelEntry.getKey(); + List modelOrders = modelEntry.getValue(); - int count = modelOrders.size(); - double paymentSum = modelOrders.stream().mapToDouble(order -> order.getPaymentAmount() != null ? order.getPaymentAmount() : 0.0).sum(); - double rebateSum = modelOrders.stream().mapToDouble(order -> order.getRebateAmount() != null ? order.getRebateAmount() : 0.0).sum(); + int count = modelOrders.size(); + double paymentSum = modelOrders.stream().mapToDouble(order -> order.getPaymentAmount() != null ? order.getPaymentAmount() : 0.0).sum(); + double rebateSum = modelOrders.stream().mapToDouble(order -> order.getRebateAmount() != null ? order.getRebateAmount() : 0.0).sum(); - totalPayment += paymentSum; - totalRebate += rebateSum; - totalCount += count; + totalPayment += paymentSum; + totalRebate += rebateSum; + totalCount += count; - summaryBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知") - .append("\n数量:").append(count) - .append("\n────────────\n\n"); - } + summaryBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知") + .append("\n数量:").append(count); + } - // 添加合计 - summaryBuilder.append("总计:") - .append("\n总数量:").append(totalCount); + // 添加合计 + summaryBuilder.append("总计:") + .append("\n总数量:").append(totalCount); - // 发送总统计消息 - wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder, 1, fromWxid, true); + // 发送总统计消息 + //wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder, 1, fromWxid, true); - // 发送详细订单列表 - StringBuilder detailBuilder = new StringBuilder(); - for (JDOrder order : orders) { - detailBuilder.append("单:").append(order.getRemark() != null ? order.getRemark() : "未提供") - .append("\n型号:").append(order.getModelNumber() != null ? order.getModelNumber() : "未提供") - .append("\n下单付款:").append(order.getPaymentAmount() != null ? String.format("%.2f", order.getPaymentAmount()) : "0.00").append(" 元") - .append("\n后返金额:").append(order.getRebateAmount() != null ? String.format("%.2f", order.getRebateAmount()) : "0.00").append(" 元") - .append("\n地址:").append(order.getAddress() != null ? order.getAddress() : "未提供") - .append("\n物流链接:").append(order.getLogisticsLink() != null ? order.getLogisticsLink() : "无") - .append("\n────────────\n"); - } + // 发送详细订单列表 + StringBuilder detailBuilder = new StringBuilder(); + for (JDOrder order : orders) { + detailBuilder.append("单:").append(order.getRemark() != null ? order.getRemark() : "未提供") + .append("\n型号:").append(order.getModelNumber() != null ? order.getModelNumber() : "未提供") + .append("\n下单付款:").append(order.getPaymentAmount() != null ? String.format("%.2f", order.getPaymentAmount()) : "0.00").append(" 元") + .append("\n后返金额:").append(order.getRebateAmount() != null ? String.format("%.2f", order.getRebateAmount()) : "0.00").append(" 元") + .append("\n地址:").append(order.getAddress() != null ? order.getAddress() : "未提供") + .append("\n物流链接:").append(order.getLogisticsLink() != null ? order.getLogisticsLink() : "无") + .append("\n────────────\n"); + } - // 发送详细订单消息 - wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + detailBuilder.toString(), 1, fromWxid, true); - } -} - - else { + // 发送详细订单消息 + wxUtil.sendTextMessage(fromWxid, "分销标记:" + distributionMark + "\n" + summaryBuilder + "\n────────────\n" + detailBuilder, 1, fromWxid, true); + } + } else { // 生成当前日期 JDOrder jdOrder = parseOrderFromText(input.trim().replace("元", "")); if (jdOrder.getOrderId() == null) {