From 72ff30567bfc65a8e9217b059b83886c42f9a842 Mon Sep 17 00:00:00 2001 From: Leo Date: Mon, 26 Jan 2026 22:31:46 +0800 Subject: [PATCH] 1 --- .../jarvis/TencentDocController.java | 43 +++++++++++++++---- .../java/com/ruoyi/jarvis/domain/JDOrder.java | 24 +++++++++++ .../resources/mapper/jarvis/JDOrderMapper.xml | 27 ++++++++++-- sql/jd_order_new_status_fields.sql | 15 +++++++ 4 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 sql/jd_order_new_status_fields.sql diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java index 3288362..b24a9a9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/jarvis/TencentDocController.java @@ -1566,8 +1566,9 @@ public class TencentDocController extends BaseController { log.info(logMsg); // 更新订单的推送状态(重新查询订单,避免使用旧对象) + JDOrder orderToUpdate = null; try { - JDOrder orderToUpdate = jdOrderService.selectJDOrderByThirdPartyOrderNo(expectedOrderNo); + orderToUpdate = jdOrderService.selectJDOrderByThirdPartyOrderNo(expectedOrderNo); if (orderToUpdate != null) { orderToUpdate.setTencentDocPushed(1); orderToUpdate.setTencentDocPushTime(new java.util.Date()); @@ -1597,6 +1598,10 @@ public class TencentDocController extends BaseController { if (phone != null) { successLog.put("phone", phone); } + // 添加型号信息 + if (orderToUpdate != null && orderToUpdate.getModelNumber() != null) { + successLog.put("modelNumber", orderToUpdate.getModelNumber()); + } // 检查是否为物流链接更新(复用之前的变量) if (Boolean.TRUE.equals(isLinkUpdated)) { @@ -2766,9 +2771,6 @@ public class TencentDocController extends BaseController { content.append("【批量同步-腾讯文档同步成功】\n\n"); } content.append(String.format("✓ 成功填充: %d 条\n", filledCount)); - if (skippedCount > 0) { - content.append(String.format("⊘ 跳过: %d 条\n", skippedCount)); - } if (errorCount > 0) { content.append(String.format("✗ 错误: %d 条\n", errorCount)); } @@ -2783,20 +2785,43 @@ public class TencentDocController extends BaseController { content.append("\n"); if (!successLogs.isEmpty()) { + // 统计今天的型号 + Map modelCountMap = new java.util.HashMap<>(); + for (Map log : successLogs) { + String modelNumber = (String) log.get("modelNumber"); + if (modelNumber != null && !modelNumber.trim().isEmpty()) { + modelCountMap.put(modelNumber, modelCountMap.getOrDefault(modelNumber, 0) + 1); + } else { + modelCountMap.put("未知型号", modelCountMap.getOrDefault("未知型号", 0) + 1); + } + } + + // 显示今天的型号统计 + if (!modelCountMap.isEmpty()) { + content.append("【今天的型号统计】\n"); + List> sortedModels = new java.util.ArrayList<>(modelCountMap.entrySet()); + sortedModels.sort((a, b) -> b.getValue().compareTo(a.getValue())); // 按数量降序排序 + for (Map.Entry entry : sortedModels) { + content.append(String.format("型号: %s 数量: %d\n", entry.getKey(), entry.getValue())); + } + content.append("\n"); + } + + // 显示每一单具体的型号 content.append("【成功详情】\n"); // 最多显示20条详细记录,避免消息过长 int maxDisplay = Math.min(20, successLogs.size()); for (int i = 0; i < maxDisplay; i++) { Map log = successLogs.get(i); String orderNo = (String) log.get("orderNo"); - Integer row = (Integer) log.get("row"); String logisticsLink = (String) log.get("logisticsLink"); - String phone = (String) log.get("phone"); + String modelNumber = (String) log.get("modelNumber"); content.append(String.format("%d. 单号: %s\n", i + 1, orderNo)); - content.append(String.format(" 行号: %d\n", row)); - if (phone != null && !phone.isEmpty()) { - content.append(String.format(" 电话: %s\n", phone)); + if (modelNumber != null && !modelNumber.trim().isEmpty()) { + content.append(String.format(" 型号: %s\n", modelNumber)); + } else { + content.append(" 型号: 未知\n"); } // 检查是否为物流链接更新 diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java index 757d7b1..79bb548 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/JDOrder.java @@ -121,6 +121,30 @@ public class JDOrder extends BaseEntity { @Excel(name = "后返到账日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") private Date rebateReceivedDate; + /** 点过价保(0否 1是) */ + @Excel(name = "点过价保") + private Integer isPriceProtected; + + /** 价保日期 */ + @Excel(name = "价保日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date priceProtectedDate; + + /** 开过专票(0否 1是) */ + @Excel(name = "开过专票") + private Integer isInvoiceOpened; + + /** 开票日期 */ + @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date invoiceOpenedDate; + + /** 晒过评价(0否 1是) */ + @Excel(name = "晒过评价") + private Integer isReviewPosted; + + /** 评价日期 */ + @Excel(name = "评价日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date reviewPostedDate; + } diff --git a/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml b/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml index 11262f6..a8caf4f 100644 --- a/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/jarvis/JDOrderMapper.xml @@ -29,12 +29,19 @@ + + + + + + select id, remark, distribution_mark, model_number, link, payment_amount, rebate_amount, address, logistics_link, order_id, buyer, order_time, create_time, update_time, status, is_count_enabled, third_party_order_no, jingfen_actual_price, - is_refunded, refund_date, is_refund_received, refund_received_date, is_rebate_received, rebate_received_date + is_refunded, refund_date, is_refund_received, refund_received_date, is_rebate_received, rebate_received_date, + is_price_protected, price_protected_date, is_invoice_opened, invoice_opened_date, is_review_posted, review_posted_date from jd_order @@ -62,6 +69,9 @@ and is_refunded = #{isRefunded} and is_refund_received = #{isRefundReceived} and is_rebate_received = #{isRebateReceived} + and is_price_protected = #{isPriceProtected} + and is_invoice_opened = #{isInvoiceOpened} + and is_review_posted = #{isReviewPosted} and date(order_time) >= #{params.beginTime} @@ -96,6 +106,9 @@ and is_refunded = #{isRefunded} and is_refund_received = #{isRefundReceived} and is_rebate_received = #{isRebateReceived} + and is_price_protected = #{isPriceProtected} + and is_invoice_opened = #{isInvoiceOpened} + and is_review_posted = #{isReviewPosted} and date(order_time) >= #{params.beginTime} @@ -126,13 +139,15 @@ payment_amount, rebate_amount, address, logistics_link, tencent_doc_pushed, tencent_doc_push_time, order_id, buyer, order_time, create_time, update_time, status, is_count_enabled, third_party_order_no, jingfen_actual_price, - is_refunded, refund_date, is_refund_received, refund_received_date, is_rebate_received, rebate_received_date + is_refunded, refund_date, is_refund_received, refund_received_date, is_rebate_received, rebate_received_date, + is_price_protected, price_protected_date, is_invoice_opened, invoice_opened_date, is_review_posted, review_posted_date ) values ( #{remark}, #{distributionMark}, #{modelNumber}, #{link}, #{paymentAmount}, #{rebateAmount}, #{address}, #{logisticsLink}, 0, null, #{orderId}, #{buyer}, #{orderTime}, now(), now(), #{status}, #{isCountEnabled}, #{thirdPartyOrderNo}, #{jingfenActualPrice}, - #{isRefunded}, #{refundDate}, #{isRefundReceived}, #{refundReceivedDate}, #{isRebateReceived}, #{rebateReceivedDate} + #{isRefunded}, #{refundDate}, #{isRefundReceived}, #{refundReceivedDate}, #{isRebateReceived}, #{rebateReceivedDate}, + #{isPriceProtected}, #{priceProtectedDate}, #{isInvoiceOpened}, #{invoiceOpenedDate}, #{isReviewPosted}, #{reviewPostedDate} ) @@ -162,6 +177,12 @@ refund_received_date = #{refundReceivedDate}, is_rebate_received = #{isRebateReceived}, rebate_received_date = #{rebateReceivedDate}, + is_price_protected = #{isPriceProtected}, + price_protected_date = #{priceProtectedDate}, + is_invoice_opened = #{isInvoiceOpened}, + invoice_opened_date = #{invoiceOpenedDate}, + is_review_posted = #{isReviewPosted}, + review_posted_date = #{reviewPostedDate}, update_time = now() where id = #{id} diff --git a/sql/jd_order_new_status_fields.sql b/sql/jd_order_new_status_fields.sql new file mode 100644 index 0000000..38e405c --- /dev/null +++ b/sql/jd_order_new_status_fields.sql @@ -0,0 +1,15 @@ +-- 为jd_order表添加新的状态字段:点过价保、开过专票、晒过评价 +-- 执行日期:2025-01-26 + +ALTER TABLE jd_order +ADD COLUMN is_price_protected INT DEFAULT 0 COMMENT '点过价保(0否 1是)', +ADD COLUMN price_protected_date DATETIME NULL COMMENT '价保日期', +ADD COLUMN is_invoice_opened INT DEFAULT 0 COMMENT '开过专票(0否 1是)', +ADD COLUMN invoice_opened_date DATETIME NULL COMMENT '开票日期', +ADD COLUMN is_review_posted INT DEFAULT 0 COMMENT '晒过评价(0否 1是)', +ADD COLUMN review_posted_date DATETIME NULL COMMENT '评价日期'; + +-- 添加索引(可选,根据查询需求) +-- CREATE INDEX idx_is_price_protected ON jd_order(is_price_protected); +-- CREATE INDEX idx_is_invoice_opened ON jd_order(is_invoice_opened); +-- CREATE INDEX idx_is_review_posted ON jd_order(is_review_posted);