浏览代码

修改订单状态需要校验

LGH 5 年之前
父节点
当前提交
a44b81cbe9
共有 1 个文件被更改,包括 10 次插入0 次删除
  1. 10 0
      yami-shop-api/src/main/java/com/yami/shop/api/controller/MyOrderController.java

+ 10 - 0
yami-shop-api/src/main/java/com/yami/shop/api/controller/MyOrderController.java

@@ -16,6 +16,7 @@ import java.util.Map;
 import java.util.Objects;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yami.shop.bean.enums.OrderStatus;
 import com.yami.shop.common.exception.YamiShopBindException;
 import com.yami.shop.common.util.PageParam;
 import com.yami.shop.bean.app.dto.*;
@@ -141,6 +142,9 @@ public class MyOrderController {
         if (!Objects.equals(order.getUserId(), userId)) {
             throw new YamiShopBindException("你没有权限获取该订单信息");
         }
+        if (!Objects.equals(order.getStatus(), OrderStatus.UNPAY.value())) {
+            throw new YamiShopBindException("订单已支付,无法取消订单");
+        }
         List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
         order.setOrderItems(orderItems);
         // 取消订单
@@ -166,6 +170,9 @@ public class MyOrderController {
         if (!Objects.equals(order.getUserId(), userId)) {
             throw new YamiShopBindException("你没有权限获取该订单信息");
         }
+        if (!Objects.equals(order.getStatus(), OrderStatus.CONSIGNMENT.value())) {
+            throw new YamiShopBindException("订单未发货,无法确认收货");
+        }
         List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(orderNumber);
         order.setOrderItems(orderItems);
         // 确认收货
@@ -194,6 +201,9 @@ public class MyOrderController {
         if (!Objects.equals(order.getUserId(), userId)) {
             throw new YamiShopBindException("你没有权限获取该订单信息");
         }
+        if (!Objects.equals(order.getStatus(), OrderStatus.SUCCESS.value()) || !Objects.equals(order.getStatus(), OrderStatus.CLOSE.value()) ) {
+            throw new YamiShopBindException("订单未完成或未关闭,无法删除订单");
+        }
 
         // 删除订单
         orderService.deleteOrders(Arrays.asList(order));