fix(order): 修复订单处理中的空指针异常和状态比较问题

- 添加 Objects 工具类导入用于安全的对象比较
- 修复 shopOrderNow 为空时的空指针异常
- 使用 Objects.equals 替换直接的 equals 比较避免 NPE
- 为发货状态变更逻辑添加清晰的注释说明
- 修复支付状态检查中的布尔值比较逻辑
This commit is contained in:
2026-02-04 15:47:23 +08:00
parent 36bf931274
commit 30c7e72a80

View File

@@ -48,6 +48,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 订单控制器
@@ -178,11 +179,15 @@ public class ShopOrderController extends BaseController {
return fail("订单不存在");
}
ShopOrder shopOrderNow = shopOrderService.getById(shopOrder.getOrderId());
if (shopOrderNow == null) {
return fail("订单不存在");
}
// 申请退款
if (shopOrder.getOrderStatus().equals(4)) {
if (Objects.equals(shopOrder.getOrderStatus(), 4)) {
shopOrder.setRefundApplyTime(LocalDateTime.now());
}
if (shopOrderNow.getDeliveryStatus().equals(10) && shopOrder.getDeliveryStatus().equals(20)) {
// 发货状态从“未发货(10)”变更为“已发货(20)”时,记录发货信息
if (Objects.equals(shopOrderNow.getDeliveryStatus(), 10) && Objects.equals(shopOrder.getDeliveryStatus(), 20)) {
ShopOrderDelivery shopOrderDelivery = new ShopOrderDelivery();
shopOrderDelivery.setOrderId(shopOrder.getOrderId());
shopOrderDelivery.setDeliveryMethod(30);
@@ -196,12 +201,12 @@ public class ShopOrderController extends BaseController {
}
// 退款操作
if(shopOrder.getOrderStatus().equals(6)){
if (Objects.equals(shopOrder.getOrderStatus(), 6)) {
// 当订单状态更改为6已退款执行退款操作
try {
// 检查订单是否已支付
if (!shopOrder.getPayStatus()) {
if (!Boolean.TRUE.equals(shopOrderNow.getPayStatus())) {
return fail("订单未支付,无法退款");
}