From ddae147aef4e53abf504361d619817028e7581fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E4=BC=91=E5=93=A5=E5=93=A56666?= Date: Mon, 15 Jun 2026 14:41:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=8D=A2=E8=B4=A7=E5=8F=91=E8=B4=A7?= =?UTF-8?q?=EF=BC=8C=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/JySysFeeSettlementServiceImpl.java | 23 +-------- .../service/impl/JySysOrderServiceImpl.java | 10 +++- .../impl/JySysTenantMessageServiceImpl.java | 44 ++++++++-------- .../jysystem/utils/OrderExchangeHelper.java | 50 +++++++++++++++++++ 4 files changed, 84 insertions(+), 43 deletions(-) create mode 100644 jy-system/src/main/java/com/ruoyi/jysystem/utils/OrderExchangeHelper.java diff --git a/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysFeeSettlementServiceImpl.java b/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysFeeSettlementServiceImpl.java index 824bcc8..63cf92a 100644 --- a/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysFeeSettlementServiceImpl.java +++ b/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysFeeSettlementServiceImpl.java @@ -31,20 +31,13 @@ import com.ruoyi.jysystem.utils.FeeSettlementExcelExporter; import com.ruoyi.jysystem.utils.FeeSettlementExportHelper; import com.ruoyi.jysystem.utils.FeeSettlementPdfExporter; import com.ruoyi.jysystem.utils.IdUtil; +import com.ruoyi.jysystem.utils.OrderExchangeHelper; import com.ruoyi.jysystem.vo.FeeSettlementCheckVO; import com.ruoyi.jysystem.vo.FeeSettlementDetailVO; @Service public class JySysFeeSettlementServiceImpl implements IJySysFeeSettlementService { - private static final String ORDER_STATUS_EXCHANGE_APPLY = "12"; - - private static final String ORDER_STATUS_EXCHANGE_AGREED = "13"; - - private static final String ORDER_STATUS_EXCHANGE_LOGISTICS = "15"; - - private static final String ORDER_STATUS_EXCHANGE_COMPLETED = "17"; - @Resource private JySysFeeSettlementMapper feeSettlementMapper; @@ -436,19 +429,7 @@ public class JySysFeeSettlementServiceImpl implements IJySysFeeSettlementService private boolean isExchangeOrder(JySysOrder order) { - if (order == null) - { - return false; - } - if (StringUtils.isNotEmpty(order.getOrderNo()) && order.getOrderNo().startsWith("HH")) - { - return true; - } - String status = order.getOrderStatus(); - return ORDER_STATUS_EXCHANGE_APPLY.equals(status) - || ORDER_STATUS_EXCHANGE_AGREED.equals(status) - || ORDER_STATUS_EXCHANGE_LOGISTICS.equals(status) - || ORDER_STATUS_EXCHANGE_COMPLETED.equals(status); + return OrderExchangeHelper.isExchangeOrder(order); } @Override diff --git a/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysOrderServiceImpl.java b/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysOrderServiceImpl.java index d9f150d..7ec1db1 100644 --- a/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysOrderServiceImpl.java +++ b/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysOrderServiceImpl.java @@ -16,6 +16,7 @@ import com.ruoyi.jysystem.mapper.JySysTenantMapper; import com.ruoyi.jysystem.service.IJySysOrderService; import com.ruoyi.jysystem.service.IJySysTenantMessageService; import com.ruoyi.jysystem.utils.JySysOrderListPdfExporter; +import com.ruoyi.jysystem.utils.OrderExchangeHelper; import com.ruoyi.jysystem.utils.TenantTypeHelper; import com.ruoyi.jysystem.vo.JySysTenantLensVO; import com.ruoyi.jysystem.vo.OrderAssignPriceVO; @@ -1091,14 +1092,19 @@ public class JySysOrderServiceImpl extends ServiceImpl logs = jySysOrderStatusLogMapper.selectJySysOrderStatusLogByOrderId(orderId); if (logs == null || logs.isEmpty()) { return false; } - for (JySysOrderStatusLog log : logs) + for (JySysOrderStatusLog statusLog : logs) { - if (log != null && ORDER_STATUS_EXCHANGE_APPLY.equals(log.getOrderStatus())) + if (statusLog != null && ORDER_STATUS_EXCHANGE_APPLY.equals(statusLog.getOrderStatus())) { return true; } diff --git a/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysTenantMessageServiceImpl.java b/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysTenantMessageServiceImpl.java index 23785af..0993eff 100644 --- a/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysTenantMessageServiceImpl.java +++ b/jy-system/src/main/java/com/ruoyi/jysystem/service/impl/JySysTenantMessageServiceImpl.java @@ -17,6 +17,7 @@ import com.ruoyi.jysystem.mapper.JySysTenantMessageMapper; import com.ruoyi.jysystem.service.IJySysTenantMessageService; import com.ruoyi.jysystem.service.IJySysTenantService; import com.ruoyi.jysystem.service.SmsNotificationService; +import com.ruoyi.jysystem.utils.OrderExchangeHelper; import com.ruoyi.jysystem.utils.TenantTypeHelper; /** @@ -31,10 +32,6 @@ public class JySysTenantMessageServiceImpl implements IJySysTenantMessageService private static final String ORDER_STATUS_ASSIGNED = "3"; - private static final String ORDER_STATUS_SHIPPED = "8"; - - private static final String ORDER_STATUS_EXCHANGE_LOGISTICS = "15"; - @Resource private JySysTenantMessageMapper jySysTenantMessageMapper; @@ -108,23 +105,12 @@ public class JySysTenantMessageServiceImpl implements IJySysTenantMessageService } insertMessage(order.getBrandTenantId(), order.getId(), orderNo, JySysTenantMessage.TYPE_STATUS_CHANGE, "订单状态变更", content, orderStatus); - if (ORDER_STATUS_SHIPPED.equals(orderStatus) - || ORDER_STATUS_EXCHANGE_LOGISTICS.equals(orderStatus)) + if (shouldSendShipNotifySms(orderStatus, order)) { - log.info("[发货短信] 触发检查: orderId={}, orderNo={}, orderStatus={}, expressCompany={}, brandTenantId={}, brandPhone={}, receiverPhone={}", - orderId, orderNo, orderStatus, expressCompany, brandTenant.getId(), brandTenant.getPhone(), order.getReceiverPhone()); - String smsPhone = resolveShipNotifyPhone(brandTenant.getPhone(), order.getReceiverPhone()); - if (StringUtils.isNotEmpty(smsPhone)) - { - log.info("[发货短信] 准备发送: orderNo={}, smsPhone={}, expressCompany={}", orderNo, smsPhone, expressCompany); - smsNotificationService.trySendOrderShippedNotify( - smsPhone, orderNo, expressCompany); - } - else - { - log.warn("[发货短信] 跳过: 无有效手机号, orderNo={}, brandPhone={}, receiverPhone={}", - orderNo, brandTenant.getPhone(), order.getReceiverPhone()); - } + log.info("[发货短信] 触发检查: orderId={}, orderNo={}, orderStatus={}, exchange={}, expressCompany={}, brandTenantId={}, brandPhone={}, receiverPhone={}", + orderId, orderNo, orderStatus, OrderExchangeHelper.isExchangeOrder(order), expressCompany, + brandTenant.getId(), brandTenant.getPhone(), order.getReceiverPhone()); + sendShipNotifySms(orderNo, expressCompany, brandTenant.getPhone(), order.getReceiverPhone()); } } else @@ -190,6 +176,24 @@ public class JySysTenantMessageServiceImpl implements IJySysTenantMessageService return tenant; } + private void sendShipNotifySms(String orderNo, String expressCompany, String brandPhone, String receiverPhone) + { + String smsPhone = resolveShipNotifyPhone(brandPhone, receiverPhone); + if (StringUtils.isNotEmpty(smsPhone)) + { + log.info("[发货短信] 准备发送: orderNo={}, smsPhone={}, expressCompany={}", orderNo, smsPhone, expressCompany); + smsNotificationService.trySendOrderShippedNotify(smsPhone, orderNo, expressCompany); + return; + } + log.warn("[发货短信] 跳过: 无有效手机号, orderNo={}, brandPhone={}, receiverPhone={}", + orderNo, brandPhone, receiverPhone); + } + + private boolean shouldSendShipNotifySms(String orderStatus, JySysOrder order) + { + return OrderExchangeHelper.isShipNotifyStatus(orderStatus); + } + private String resolveShipNotifyPhone(String brandPhone, String receiverPhone) { if (isValidMobile(brandPhone)) diff --git a/jy-system/src/main/java/com/ruoyi/jysystem/utils/OrderExchangeHelper.java b/jy-system/src/main/java/com/ruoyi/jysystem/utils/OrderExchangeHelper.java new file mode 100644 index 0000000..7169fdc --- /dev/null +++ b/jy-system/src/main/java/com/ruoyi/jysystem/utils/OrderExchangeHelper.java @@ -0,0 +1,50 @@ +package com.ruoyi.jysystem.utils; + +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.jysystem.domain.JySysOrder; + +/** + * 换货单识别(与前端 isExchangeOrder 一致) + */ +public final class OrderExchangeHelper +{ + private static final String ORDER_STATUS_EXCHANGE_APPLY = "12"; + + private static final String ORDER_STATUS_EXCHANGE_AGREED = "13"; + + private static final String ORDER_STATUS_EXCHANGE_LOGISTICS = "15"; + + private static final String ORDER_STATUS_EXCHANGE_COMPLETED = "17"; + + private static final String ORDER_STATUS_SHIPPED = "8"; + + private OrderExchangeHelper() + { + } + + public static boolean isExchangeOrder(JySysOrder order) + { + if (order == null) + { + return false; + } + if (StringUtils.isNotEmpty(order.getOrderNo()) && order.getOrderNo().startsWith("HH")) + { + return true; + } + String status = order.getOrderStatus(); + return ORDER_STATUS_EXCHANGE_APPLY.equals(status) + || ORDER_STATUS_EXCHANGE_AGREED.equals(status) + || ORDER_STATUS_EXCHANGE_LOGISTICS.equals(status) + || ORDER_STATUS_EXCHANGE_COMPLETED.equals(status); + } + + /** + * 订单进入发货/换货物流状态时发送短信 + */ + public static boolean isShipNotifyStatus(String orderStatus) + { + return ORDER_STATUS_SHIPPED.equals(orderStatus) + || ORDER_STATUS_EXCHANGE_LOGISTICS.equals(orderStatus); + } +}