feat:换货发货,发送短信提醒
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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<JySysOrderMapper, JySysOr
|
||||
{
|
||||
return false;
|
||||
}
|
||||
JySysOrder order = jySysOrderMapper.selectJySysOrderById(orderId);
|
||||
if (OrderExchangeHelper.isExchangeOrder(order))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
List<JySysOrderStatusLog> 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;
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user