Browse Source

same order status and order detail status

huodongdong 7 years ago
parent
commit
6b8d5122d3
20 changed files with 172 additions and 46 deletions
  1. 3 1
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/trade/OrderController.java
  2. 14 0
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/entity/UserDetails.java
  3. 1 0
      rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/trade/order/OrderService.java
  4. 0 21
      rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/OrderDetailStatusEnum.java
  5. 2 2
      rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/OrderStatusEnum.java
  6. 4 2
      rankin-data-api/src/main/java/cn/rankin/data/api/cms/OrderDetailWebSearchDTO.java
  7. 4 2
      rankin-data-api/src/main/java/cn/rankin/data/api/trade/dto/OrderDetailSearchDTO.java
  8. 3 0
      rankin-data-api/src/main/java/cn/rankin/data/api/trade/entity/Order.java
  9. 2 2
      rankin-data-api/src/main/java/cn/rankin/data/api/trade/entity/OrderDetail.java
  10. 2 2
      rankin-data-api/src/main/java/cn/rankin/data/api/trade/vo/OrderDetailVo.java
  11. 2 0
      rankin-data-api/src/main/java/cn/rankin/data/api/trade/vo/OrderVo.java
  12. 3 3
      rankin-task/src/main/java/cn/rankin/task/repository/OrderRepository.java
  13. 4 4
      rankin-task/src/main/java/cn/rankin/task/service/OrderService.java
  14. 0 1
      rankin-task/src/main/java/cn/rankin/task/service/ProductService.java
  15. 2 0
      rankin-trade-service/src/main/java/cn/rankin/tradeservice/code/TradeServiceAPICode.java
  16. 11 1
      rankin-trade-service/src/main/java/cn/rankin/tradeservice/controller/OrderController.java
  17. 15 0
      rankin-trade-service/src/main/java/cn/rankin/tradeservice/repository/OrderDetailRepository.java
  18. 8 2
      rankin-trade-service/src/main/java/cn/rankin/tradeservice/repository/OrderRepository.java
  19. 61 2
      rankin-trade-service/src/main/java/cn/rankin/tradeservice/service/OrderDetailService.java
  20. 31 1
      rankin-trade-service/src/main/java/cn/rankin/tradeservice/service/OrderService.java

+ 3 - 1
rankin-cms-web/src/main/java/cn/rankin/cmsweb/controller/trade/OrderController.java

@@ -72,8 +72,10 @@ public class OrderController {
 
     @RequestMapping(value = "/detail", method = RequestMethod.GET)
     public APIResult<Page<OrderDetailVo>> search(@NeedUser UserDetails user, OrderDetailWebSearchDTO searchDTO) {
-        if (!user.isPlatForm()) {
+        if (user.isMerchant()) {
             searchDTO.setMerchantId(user.getMerchantId());
+        }else if (user.isCp()) {
+            searchDTO.setCpId(user.getMerchantId());
         }
         return orderService.search(searchDTO);
     }

+ 14 - 0
rankin-cms-web/src/main/java/cn/rankin/cmsweb/entity/UserDetails.java

@@ -313,6 +313,20 @@ public class UserDetails implements org.springframework.security.core.userdetail
         return domain.equals(Domain.PLATFORM);
     }
 
+    public boolean isMerchant() {
+        if (domain == null) {
+            return false;
+        }
+        return domain.equals(Domain.MERCHANT);
+    }
+
+    public boolean isCp() {
+        if (domain == null) {
+            return false;
+        }
+        return domain.equals(Domain.CP);
+    }
+
     private static class AuthorityComparator implements Comparator<GrantedAuthority>,
             Serializable {
         private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;

+ 1 - 0
rankin-cms-web/src/main/java/cn/rankin/cmsweb/service/trade/order/OrderService.java

@@ -333,6 +333,7 @@ public class OrderService {
         searchDTO.setStatus(searchWebDTO.getStatus());
         searchDTO.setUid(userIdList);
         searchDTO.setMerchantId(merchantId);
+        searchDTO.setCpId(searchWebDTO.getCpId());
 
         APIResult<Page<OrderDetail>> orderAPIResult = orderClient.searchDetail(searchDTO);
         if (!orderAPIResult.getSuccess()) {

+ 0 - 21
rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/OrderDetailStatusEnum.java

@@ -1,21 +0,0 @@
-package cn.rankin.common.utils.enums;
-
-public enum OrderDetailStatusEnum {
-
-    UNPAID("待支付 0"), PAYOK("已支付 1"), CANCEL("取消 2"), REFUND("退款 3"), COMPLETE("完成 4"), FORSEND("等待发货 5"), SENT("已发货 6"), RECEIVED("已收货 7");
-
-    String name;
-
-    OrderDetailStatusEnum(String name) {
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
-}

+ 2 - 2
rankin-common-utils/src/main/java/cn/rankin/common/utils/enums/OrderStatusEnum.java

@@ -2,9 +2,9 @@ package cn.rankin.common.utils.enums;
 
 public enum OrderStatusEnum {
 
-    UNPAID("待支付 0"), PAYOK("已支付 1"), CANCEL("取消 2"), REFUND("退款 3"), COMPLETE("完成 4");
+    UNPAID("待支付 0"), PAYOK("已支付 1"), CANCEL("取消 2"), REFUND("退款 3"), COMPLETE("完成 4"), FORSEND("等待发货 5"), SENT("已发货 6"), RECEIVED("已收货 7");
 
-    protected String name;
+    String name;
 
     OrderStatusEnum(String name) {
         this.name = name;

+ 4 - 2
rankin-data-api/src/main/java/cn/rankin/data/api/cms/OrderDetailWebSearchDTO.java

@@ -1,6 +1,6 @@
 package cn.rankin.data.api.cms;
 
-import cn.rankin.common.utils.enums.OrderDetailStatusEnum;
+import cn.rankin.common.utils.enums.OrderStatusEnum;
 import lombok.Data;
 import lombok.ToString;
 
@@ -11,6 +11,8 @@ import java.util.Date;
 @ToString
 public class OrderDetailWebSearchDTO implements Serializable {
 
+    private String cpId;
+
     private String merchantId;
 
     private String userCode;
@@ -23,7 +25,7 @@ public class OrderDetailWebSearchDTO implements Serializable {
 
     protected Date endTime;
 
-    protected OrderDetailStatusEnum status;
+    protected OrderStatusEnum status;
 
     protected Integer pageNo = 1;
 

+ 4 - 2
rankin-data-api/src/main/java/cn/rankin/data/api/trade/dto/OrderDetailSearchDTO.java

@@ -1,6 +1,6 @@
 package cn.rankin.data.api.trade.dto;
 
-import cn.rankin.common.utils.enums.OrderDetailStatusEnum;
+import cn.rankin.common.utils.enums.OrderStatusEnum;
 import lombok.Data;
 import lombok.ToString;
 
@@ -12,6 +12,8 @@ import java.util.List;
 @ToString
 public class OrderDetailSearchDTO implements Serializable {
 
+    private String cpId;
+
     private String merchantId;
 
     protected List<String> uid;
@@ -20,7 +22,7 @@ public class OrderDetailSearchDTO implements Serializable {
 
     protected Date endTime;
 
-    protected OrderDetailStatusEnum status;
+    protected OrderStatusEnum status;
 
     protected Integer pageNo = 1;
 

+ 3 - 0
rankin-data-api/src/main/java/cn/rankin/data/api/trade/entity/Order.java

@@ -69,4 +69,7 @@ public class Order implements Serializable {
 
     @Transient
     private List<OrderGoods> goods;
+
+    @Transient
+    private List<OrderDetail> detailList;
 }

+ 2 - 2
rankin-data-api/src/main/java/cn/rankin/data/api/trade/entity/OrderDetail.java

@@ -1,7 +1,7 @@
 package cn.rankin.data.api.trade.entity;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.common.utils.enums.OrderDetailStatusEnum;
+import cn.rankin.common.utils.enums.OrderStatusEnum;
 import cn.rankin.common.utils.enums.OrderDetailTypeEnum;
 import lombok.Data;
 import lombok.ToString;
@@ -42,7 +42,7 @@ public class OrderDetail implements Serializable {
 
     @Column(name = "order_status")
     @Enumerated(EnumType.ORDINAL)
-    private OrderDetailStatusEnum orderStatus;
+    private OrderStatusEnum orderStatus;
 
     @Enumerated(EnumType.ORDINAL)
     private BaseStatusEnum status;

+ 2 - 2
rankin-data-api/src/main/java/cn/rankin/data/api/trade/vo/OrderDetailVo.java

@@ -1,7 +1,7 @@
 package cn.rankin.data.api.trade.vo;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.common.utils.enums.OrderDetailStatusEnum;
+import cn.rankin.common.utils.enums.OrderStatusEnum;
 import cn.rankin.common.utils.enums.OrderDetailTypeEnum;
 import cn.rankin.data.api.trade.entity.OrderGoods;
 import lombok.Data;
@@ -32,7 +32,7 @@ public class OrderDetailVo implements Serializable {
 
     private BigDecimal adjustPrice;
 
-    private OrderDetailStatusEnum orderStatus;
+    private OrderStatusEnum orderStatus;
 
     private BaseStatusEnum status;
 

+ 2 - 0
rankin-data-api/src/main/java/cn/rankin/data/api/trade/vo/OrderVo.java

@@ -59,4 +59,6 @@ public class OrderVo implements Serializable {
     private Date gmtModified;
 
     private List<GoodsVo> goods;
+
+    private List<OrderDetailVo> detailList;
 }

+ 3 - 3
rankin-task/src/main/java/cn/rankin/task/repository/OrderRepository.java

@@ -17,16 +17,16 @@ public interface OrderRepository extends BasicJpaRepository<Order, String> {
 
     // 已拆分
     @Modifying
-    @Query(value = "update Order o set o.splitStatus = 2 where o.splitStatus = 0 and o.orderStatus = 1 and o.status = 0 and o.id = ?1")
+    @Query(value = "update Order o set o.splitStatus = 2, o.orderStatus = 5 where o.splitStatus = 0 and o.orderStatus = 1 and o.status = 0 and o.id = ?1")
     Integer split(String orderId);
 
     // 不需要拆分,但也要处理
     @Modifying
-    @Query(value = "update Order o set o.splitStatus = 1 where o.splitStatus = 0 and o.orderStatus = 1 and o.status = 0 and o.id = ?1")
+    @Query(value = "update Order o set o.splitStatus = 1, o.orderStatus = 5 where o.splitStatus = 0 and o.orderStatus = 1 and o.status = 0 and o.id = ?1")
     Integer process(String orderId);
 
     // 标记订单完成
     @Modifying
-    @Query(value = "update Order o set o.orderStatus = 4 where o.orderStatus = 1 and o.status = 0 and o.id in (?1)")
+    @Query(value = "update Order o set o.orderStatus = 4 where o.orderStatus not in (0,2,3,4) and o.status = 0 and o.id in (?1)")
     Integer complete(List<String> orderIdList);
 }

+ 4 - 4
rankin-task/src/main/java/cn/rankin/task/service/OrderService.java

@@ -1,7 +1,7 @@
 package cn.rankin.task.service;
 
 import cn.rankin.common.utils.enums.BaseStatusEnum;
-import cn.rankin.common.utils.enums.OrderDetailStatusEnum;
+import cn.rankin.common.utils.enums.OrderStatusEnum;
 import cn.rankin.data.api.trade.entity.Order;
 import cn.rankin.data.api.trade.entity.OrderDetail;
 import cn.rankin.data.api.trade.entity.OrderGoods;
@@ -49,12 +49,12 @@ public class OrderService {
         Set<String> notCompleteOrderIdSet = new HashSet<>();
         for (OrderDetail orderDetail : orderDetailList) {
             String orderId = orderDetail.getOrderId();
-            OrderDetailStatusEnum orderStatus = orderDetail.getOrderStatus();
+            OrderStatusEnum orderStatus = orderDetail.getOrderStatus();
             BaseStatusEnum status = orderDetail.getStatus();
             if (!status.equals(BaseStatusEnum.NORMAL)) {
                 continue;
             }
-            if (!orderStatus.equals(OrderDetailStatusEnum.COMPLETE)) {
+            if (!orderStatus.equals(OrderStatusEnum.COMPLETE)) {
                 notCompleteOrderIdSet.add(orderId);
             }
         }
@@ -152,7 +152,7 @@ public class OrderService {
         }
 
         for (OrderDetail orderDetail : orderDetailList) {
-            orderDetail.setOrderStatus(OrderDetailStatusEnum.FORSEND);
+            orderDetail.setOrderStatus(OrderStatusEnum.FORSEND);
             OrderDetail one = orderDetailRepository.save(orderDetail);
             String detailId = one.getId();
             List<String> goodsIdList = new ArrayList<>();

+ 0 - 1
rankin-task/src/main/java/cn/rankin/task/service/ProductService.java

@@ -5,7 +5,6 @@ import cn.rankin.data.api.product.entity.Goods;
 import cn.rankin.data.api.product.entity.Package;
 import cn.rankin.data.api.product.entity.Product;
 import cn.rankin.task.code.TaskAPICode;
-import javafx.concurrent.Task;
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.stereotype.Component;
 import org.springframework.web.bind.annotation.PathVariable;

+ 2 - 0
rankin-trade-service/src/main/java/cn/rankin/tradeservice/code/TradeServiceAPICode.java

@@ -11,4 +11,6 @@ public class TradeServiceAPICode extends APICode {
     public final static int _CANCEL_ERROR = 50101;
     public final static BaseCode CANCEL_ERROR = new BaseCode(_CANCEL_ERROR, "取消失败");
 
+    public final static int _UPDATE_ERROR = 50102;
+    public final static BaseCode UPDATE_ERROR = new BaseCode(_UPDATE_ERROR, "更新状态失败");
 }

+ 11 - 1
rankin-trade-service/src/main/java/cn/rankin/tradeservice/controller/OrderController.java

@@ -58,7 +58,7 @@ public class OrderController {
 
     @RequestMapping(value = "/pay/{orderId}", method = RequestMethod.POST)
     public APIResult<Boolean> pay(@PathVariable("orderId") String orderId) {
-        return orderService.ok(orderId);
+        return orderService.pay(orderId);
     }
 
     @RequestMapping(value = "/pay/{orderId}", method = RequestMethod.DELETE)
@@ -78,4 +78,14 @@ public class OrderController {
         return orderProductSnapshotService.search(searchDTO);
     }
 
+    @RequestMapping(value = "/send/{detailId}", method = RequestMethod.POST)
+    public APIResult<Boolean> send(@PathVariable("detailId") String detailId) {
+        return orderDetailService.send(detailId);
+    }
+
+    @RequestMapping(value = "/receive/{detailId}", method = RequestMethod.POST)
+    public APIResult<Boolean> receive(@PathVariable("detailId") String detailId) {
+        return orderDetailService.receive(detailId);
+    }
+
 }

+ 15 - 0
rankin-trade-service/src/main/java/cn/rankin/tradeservice/repository/OrderDetailRepository.java

@@ -2,6 +2,21 @@ package cn.rankin.tradeservice.repository;
 
 import cn.rankin.common.utils.jpa.BasicJpaRepository;
 import cn.rankin.data.api.trade.entity.OrderDetail;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
 
 public interface OrderDetailRepository extends BasicJpaRepository<OrderDetail, String> {
+
+    @Modifying
+    @Query(value = "update OrderDetail o set o.orderStatus = 6 where o.orderStatus = 5 and o.status = 0 and o.id = ?1")
+    Integer send(String detailId);
+
+    @Modifying
+    @Query(value = "update OrderDetail o set o.orderStatus = 7 where o.orderStatus = 6 and o.status = 0 and o.id = ?1")
+    Integer receive(String detailId);
+
+    @Query(value = "select o from OrderDetail o where o.orderId in (?1)")
+    List<OrderDetail> findByOrderIds(List<String> orderIds);
 }

+ 8 - 2
rankin-trade-service/src/main/java/cn/rankin/tradeservice/repository/OrderRepository.java

@@ -5,8 +5,6 @@ import cn.rankin.data.api.trade.entity.Order;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 
-import java.util.List;
-
 public interface OrderRepository extends BasicJpaRepository<Order, String> {
 
     @Modifying
@@ -17,4 +15,12 @@ public interface OrderRepository extends BasicJpaRepository<Order, String> {
     @Query(value = "update Order o set o.orderStatus = 2 where o.status = 0 and o.id = ?1 and o.orderStatus = 0")
     Integer cancel(String orderId);
 
+    @Modifying
+    @Query(value = "update Order o set o.orderStatus = 6 where o.status = 0 and o.id = ?1 and o.orderStatus = 5")
+    Integer send(String orderId);
+
+    @Modifying
+    @Query(value = "update Order o set o.orderStatus = 7 where o.status = 0 and o.id = ?1 and o.orderStatus = 6")
+    Integer receive(String orderId);
+
 }

+ 61 - 2
rankin-trade-service/src/main/java/cn/rankin/tradeservice/service/OrderDetailService.java

@@ -3,7 +3,7 @@ package cn.rankin.tradeservice.service;
 import cn.rankin.common.utils.api.model.APIResult;
 import cn.rankin.common.utils.api.page.Page;
 import cn.rankin.common.utils.enums.BaseOrderEnum;
-import cn.rankin.common.utils.enums.OrderDetailStatusEnum;
+import cn.rankin.common.utils.enums.OrderStatusEnum;
 import cn.rankin.common.utils.util.JpaSortUtil;
 import cn.rankin.data.api.trade.dto.OrderDetailSearchDTO;
 import cn.rankin.data.api.trade.entity.OrderDetail;
@@ -11,9 +11,12 @@ import cn.rankin.data.api.trade.entity.OrderGoods;
 import cn.rankin.tradeservice.code.TradeServiceAPICode;
 import cn.rankin.tradeservice.repository.OrderDetailRepository;
 import cn.rankin.tradeservice.repository.OrderGoodsRepository;
+import cn.rankin.tradeservice.repository.OrderRepository;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
@@ -26,6 +29,7 @@ import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 
+@Slf4j
 @Service
 public class OrderDetailService {
 
@@ -35,6 +39,55 @@ public class OrderDetailService {
     @Autowired
     private OrderGoodsRepository orderGoodsRepository;
 
+    @Autowired
+    private OrderRepository orderRepository;
+
+    @Transactional
+    public APIResult<Boolean> send(String detailId) {
+        OrderDetail orderDetail = orderDetailRepository.find(detailId);
+        if (orderDetail == null) {
+            return APIResult.error(TradeServiceAPICode.NOT_EXISTS);
+        }
+
+        Integer count = orderDetailRepository.send(detailId);
+        if (count == 0) {
+            log.error("update detail order send status error");
+            return APIResult.error(TradeServiceAPICode.UPDATE_ERROR);
+        }
+
+        String orderId = orderDetail.getOrderId();
+        Integer another = orderRepository.send(orderId);
+        if (another == 0) {
+            log.error("update order send status error");
+            return APIResult.error(TradeServiceAPICode.UPDATE_ERROR);
+        }
+
+        return APIResult.ok();
+    }
+
+    @Transactional
+    public APIResult<Boolean> receive(String detailId) {
+        OrderDetail orderDetail = orderDetailRepository.find(detailId);
+        if (orderDetail == null) {
+            return APIResult.error(TradeServiceAPICode.NOT_EXISTS);
+        }
+
+        Integer count = orderDetailRepository.receive(detailId);
+        if (count == 0) {
+            log.error("update detail order receive status error");
+            return APIResult.error(TradeServiceAPICode.UPDATE_ERROR);
+        }
+
+        String orderId = orderDetail.getOrderId();
+        Integer another = orderRepository.receive(orderId);
+        if (another == 0) {
+            log.error("update order receive status error");
+            return APIResult.error(TradeServiceAPICode.UPDATE_ERROR);
+        }
+
+        return APIResult.ok();
+    }
+
     public APIResult<OrderDetail> getOrder(String detailId) {
         OrderDetail orderDetail = orderDetailRepository.find(detailId);
         if (orderDetail == null) {
@@ -87,7 +140,13 @@ public class OrderDetailService {
             list.add(tmp);
         }
 
-        OrderDetailStatusEnum status = searchDTO.getStatus();
+        String cpId = searchDTO.getCpId();
+        if (!StringUtils.isEmpty(cpId)) {
+            tmp = cb.equal(root.get("cpId"), cpId);
+            list.add(tmp);
+        }
+
+        OrderStatusEnum status = searchDTO.getStatus();
         if (status != null) {
             tmp = cb.equal(root.get("orderStatus"), status);
             list.add(tmp);

+ 31 - 1
rankin-trade-service/src/main/java/cn/rankin/tradeservice/service/OrderService.java

@@ -7,12 +7,15 @@ import cn.rankin.common.utils.enums.BaseStatusEnum;
 import cn.rankin.common.utils.enums.OrderSplitStatusEnum;
 import cn.rankin.common.utils.enums.OrderStatusEnum;
 import cn.rankin.common.utils.util.JpaSortUtil;
+import cn.rankin.common.utils.util.ListUtil;
 import cn.rankin.data.api.trade.dto.OrderSearchDTO;
 import cn.rankin.data.api.trade.dto.OrderDTO;
 import cn.rankin.data.api.trade.dto.OrderGoodsDTO;
+import cn.rankin.data.api.trade.entity.OrderDetail;
 import cn.rankin.data.api.trade.entity.OrderGoods;
 import cn.rankin.data.api.trade.entity.Order;
 import cn.rankin.tradeservice.code.TradeServiceAPICode;
+import cn.rankin.tradeservice.repository.OrderDetailRepository;
 import cn.rankin.tradeservice.repository.OrderRepository;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.domain.Specification;
@@ -38,8 +41,11 @@ public class OrderService {
     @Autowired
     private OrderGoodsService orderGoodsService;
 
+    @Autowired
+    private OrderDetailRepository orderDetailRepository;
+
     @Transactional
-    public APIResult<Boolean> ok(String orderId) {
+    public APIResult<Boolean> pay(String orderId) {
         Integer count = orderRepository.pay(orderId);
         if (count > 0) {
             return APIResult.ok();
@@ -101,6 +107,30 @@ public class OrderService {
         LinkedHashMap<String, BaseOrderEnum> sort = new LinkedHashMap<>();
         sort.put("gmtModified", BaseOrderEnum.DESC);
         List<Order> orderList = orderRepository.find(specification, start, page.getPageSize(), JpaSortUtil.sort(sort));
+
+        List<String> orderIdList = new ArrayList<>();
+        orderList.forEach(order -> orderIdList.add(order.getId()));
+
+        List<OrderDetail> orderDetailList = orderDetailRepository.findByOrderIds(orderIdList);
+        Map<String, List<OrderDetail>> orderDetailMap = new HashMap<>();
+        for (OrderDetail orderDetail : orderDetailList) {
+            String orderId = orderDetail.getOrderId();
+            List<OrderDetail> tmp = orderDetailMap.get(orderId);
+            if (CollectionUtils.isEmpty(tmp)) {
+                tmp = new ArrayList<>();
+                tmp.add(orderDetail);
+                orderDetailMap.put(orderId, tmp);
+            }else {
+                tmp.add(orderDetail);
+            }
+        }
+
+        for (Order order : orderList) {
+            String orderId = order.getId();
+            List<OrderDetail> detailList = orderDetailMap.getOrDefault(orderId, new ArrayList<>());
+            order.setDetailList(detailList);
+        }
+
         page.setList(orderList);
 
         return APIResult.ok(page);