1
This commit is contained in:
@@ -2004,7 +2004,7 @@ public class JDUtil {
|
||||
if (input.equals("慢单")) {
|
||||
// 获取今天的日期
|
||||
LocalDateTime today = LocalDateTime.now();
|
||||
if (today.getHour() < 8){
|
||||
if (today.getHour() < 8) {
|
||||
// 获取昨天的日期
|
||||
today = today.minusDays(1);
|
||||
}
|
||||
@@ -2021,51 +2021,60 @@ public class JDUtil {
|
||||
wxUtil.sendTextMessage(fromWxid, "今天没有订单。", 1, fromWxid, false);
|
||||
return;
|
||||
}
|
||||
// 先按 modelNumber 分组
|
||||
Map<String, List<JDOrder>> groupedByModel = todayOrders.stream()
|
||||
.collect(Collectors.groupingBy(JDOrder::getModelNumber));
|
||||
|
||||
// 按 remark 升序排序(null 值排最后)
|
||||
todayOrders.sort(Comparator.comparing(
|
||||
JDOrder::getRemark,
|
||||
Comparator.nullsLast(String::compareTo)
|
||||
));
|
||||
// 总统计信息
|
||||
StringBuilder summaryBuilder = new StringBuilder();
|
||||
double totalPayment = 0;
|
||||
double totalRebate = 0;
|
||||
int totalCount = 0;
|
||||
|
||||
// 先按 distributionMark 分组,再按 modelNumber 分组
|
||||
Map<String, Map<String, List<JDOrder>>> groupedOrders = todayOrders.stream()
|
||||
.collect(Collectors.groupingBy(JDOrder::getDistributionMark,
|
||||
Collectors.groupingBy(JDOrder::getModelNumber)));
|
||||
for (Map.Entry<String, List<JDOrder>> entry : groupedByModel.entrySet()) {
|
||||
String modelNumber = entry.getKey();
|
||||
List<JDOrder> orders = entry.getValue();
|
||||
|
||||
// 遍历每个 distributionMark 分组,生成独立的消息内容并发送
|
||||
for (Map.Entry<String, Map<String, List<JDOrder>>> entry : groupedOrders.entrySet()) {
|
||||
String distributionMark = entry.getKey();
|
||||
Map<String, List<JDOrder>> modelGroups = entry.getValue();
|
||||
int count = orders.size();
|
||||
double paymentSum = orders.stream().mapToDouble(order -> order.getPaymentAmount() != null ? order.getPaymentAmount() : 0.0).sum();
|
||||
double rebateSum = orders.stream().mapToDouble(order -> order.getRebateAmount() != null ? order.getRebateAmount() : 0.0).sum();
|
||||
|
||||
StringBuilder resultBuilder = new StringBuilder();
|
||||
totalPayment += paymentSum;
|
||||
totalRebate += rebateSum;
|
||||
totalCount += count;
|
||||
|
||||
resultBuilder.append("【").append(distributionMark).append("】").append("\n");
|
||||
|
||||
for (Map.Entry<String, List<JDOrder>> modelEntry : modelGroups.entrySet()) {
|
||||
String modelNumber = modelEntry.getKey();
|
||||
List<JDOrder> orders = modelEntry.getValue();
|
||||
|
||||
int count = orders.size();
|
||||
|
||||
resultBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知")
|
||||
.append("\n数量:").append(count)
|
||||
.append("\n────────────\n");
|
||||
|
||||
for (JDOrder order : orders) {
|
||||
resultBuilder.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("\n后返金额:").append(order.getRebateAmount() != null ? String.format("%.2f", order.getRebateAmount()) : "0.00")
|
||||
.append("\n地址:").append(order.getAddress() != null ? order.getAddress() : "未提供")
|
||||
.append("\n物流链接:").append(order.getLogisticsLink() != null ? order.getLogisticsLink() : "无")
|
||||
.append("\n────────────\n");
|
||||
}
|
||||
}
|
||||
|
||||
// 发送每条分组的消息到微信
|
||||
wxUtil.sendTextMessage(fromWxid, resultBuilder.toString(), 1, fromWxid, true);
|
||||
summaryBuilder.append("型号:").append(modelNumber != null ? modelNumber : "未知")
|
||||
.append("\n数量:").append(count)
|
||||
.append("\n下单金额:").append(String.format("%.2f", paymentSum)).append(" 元")
|
||||
.append("\n后返金额:").append(String.format("%.2f", rebateSum)).append(" 元")
|
||||
.append("\n────────────\n\n");
|
||||
}
|
||||
|
||||
// 添加合计
|
||||
summaryBuilder.append("总计:")
|
||||
.append("\n总数量:").append(totalCount)
|
||||
.append("\n总下单金额:").append(String.format("%.2f", totalPayment)).append(" 元")
|
||||
.append("\n总后返金额:").append(String.format("%.2f", totalRebate)).append(" 元");
|
||||
|
||||
// 发送总统计消息
|
||||
wxUtil.sendTextMessage(fromWxid, summaryBuilder.toString(), 1, fromWxid, true);
|
||||
|
||||
// 发送详细订单列表(按 remark 排序)
|
||||
StringBuilder detailBuilder = new StringBuilder();
|
||||
todayOrders.sort(Comparator.comparing(JDOrder::getRemark, Comparator.nullsLast(String::compareTo)));
|
||||
|
||||
for (JDOrder order : todayOrders) {
|
||||
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, detailBuilder.toString(), 1, fromWxid, true);
|
||||
} else {
|
||||
// 生成当前日期
|
||||
JDOrder jdOrder = parseOrderFromText(input.trim().replace("元", ""));
|
||||
@@ -2100,12 +2109,13 @@ public class JDUtil {
|
||||
}
|
||||
sb.append(jdOrder.getRemark()).append("\t")
|
||||
.append(jdOrder.getOrderId()).append("\t")
|
||||
.append(DateUtil.dateToStr(jdOrder.getOrderTime(), "yyyy-MM-dd") ).append("\t")
|
||||
.append(DateUtil.dateToStr(jdOrder.getOrderTime(), "yyyy-MM-dd")).append("\t")
|
||||
.append(jdOrder.getModelNumber()).append("\t")
|
||||
.append(jdOrder.getAddress()).append("\t")
|
||||
.append(jdOrder.getLogisticsLink()).append("\t\t")
|
||||
.append(jdOrder.getBuyer()).append("\t")
|
||||
.append(jdOrder.getPaymentAmount()).append("\t")
|
||||
.append(jdOrder.getRebateAmount()).append("\t")
|
||||
.append(distributionMark2);
|
||||
|
||||
logger.info("订单信息:{}", sb);
|
||||
|
||||
Reference in New Issue
Block a user