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.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("订单未支付,无法退款");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user