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); + } +}