fix(order): 修复订单处理中的空指针异常和状态比较问题
- 添加 Objects 工具类导入用于安全的对象比较 - 修复 shopOrderNow 为空时的空指针异常 - 使用 Objects.equals 替换直接的 equals 比较避免 NPE - 为发货状态变更逻辑添加清晰的注释说明 - 修复支付状态检查中的布尔值比较逻辑
This commit is contained in:
@@ -48,6 +48,7 @@ import java.math.BigDecimal;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单控制器
|
* 订单控制器
|
||||||
@@ -178,11 +179,15 @@ public class ShopOrderController extends BaseController {
|
|||||||
return fail("订单不存在");
|
return fail("订单不存在");
|
||||||
}
|
}
|
||||||
ShopOrder shopOrderNow = shopOrderService.getById(shopOrder.getOrderId());
|
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());
|
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 shopOrderDelivery = new ShopOrderDelivery();
|
||||||
shopOrderDelivery.setOrderId(shopOrder.getOrderId());
|
shopOrderDelivery.setOrderId(shopOrder.getOrderId());
|
||||||
shopOrderDelivery.setDeliveryMethod(30);
|
shopOrderDelivery.setDeliveryMethod(30);
|
||||||
@@ -196,12 +201,12 @@ public class ShopOrderController extends BaseController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
// 退款操作
|
// 退款操作
|
||||||
if(shopOrder.getOrderStatus().equals(6)){
|
if (Objects.equals(shopOrder.getOrderStatus(), 6)) {
|
||||||
// 当订单状态更改为6(已退款)时,执行退款操作
|
// 当订单状态更改为6(已退款)时,执行退款操作
|
||||||
try {
|
try {
|
||||||
|
|
||||||
// 检查订单是否已支付
|
// 检查订单是否已支付
|
||||||
if (!shopOrder.getPayStatus()) {
|
if (!Boolean.TRUE.equals(shopOrderNow.getPayStatus())) {
|
||||||
return fail("订单未支付,无法退款");
|
return fail("订单未支付,无法退款");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user