Browse Source

!600 订单中心:修改获取售后订单详情接口,修改订单管理后台物流获取接口
Merge pull request !600 from puhui999/feature/mall_product

芋道源码 1 năm trước cách đây
mục cha
commit
8dd600a300

+ 20 - 0
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/aftersale/TradeAfterSaleController.java

@@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.annotation.security.PermitAll;
 import javax.validation.Valid;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -82,6 +84,24 @@ public class TradeAfterSaleController {
         MemberUserRespDTO user = memberUserApi.getUser(afterSale.getUserId());
         // 获取售后日志
         List<TradeAfterSaleLogRespDTO> logs = afterSaleLogService.getLog(afterSale.getId());
+        // TODO 方便测试看效果,review 后移除
+        if (logs == null) {
+            logs = new ArrayList<>();
+        }
+        for (int i = 1; i <= 6; i++) {
+            TradeAfterSaleLogRespDTO respVO = new TradeAfterSaleLogRespDTO();
+            respVO.setId((long) i);
+            respVO.setUserId((long) i);
+            respVO.setUserType(1);
+            respVO.setAfterSaleId(id);
+            respVO.setOrderId((long) i);
+            respVO.setOrderItemId((long) i);
+            respVO.setBeforeStatus((i - 1) * 10);
+            respVO.setAfterStatus(i * 10);
+            respVO.setContent("66+6");
+            respVO.setCreateTime(LocalDateTime.now());
+            logs.add(respVO);
+        }
         return success(TradeAfterSaleConvert.INSTANCE.convert(afterSale, order, orderItems, user, logs));
     }
 

+ 2 - 10
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java

@@ -25,7 +25,6 @@ import java.util.Map;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
-import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 
 @Tag(name = "管理后台 - 交易订单")
 @RestController
@@ -70,7 +69,7 @@ public class TradeOrderController {
         TradeOrderDO order = tradeOrderQueryService.getOrder(id);
         // 查询订单项
         List<TradeOrderItemDO> orderItems = tradeOrderQueryService.getOrderItemListByOrderId(id);
-
+        // orderLog
         // 拼接数据
         MemberUserRespDTO user = memberUserApi.getUser(order.getUserId());
         return success(TradeOrderConvert.INSTANCE.convert(order, orderItems, user));
@@ -82,7 +81,7 @@ public class TradeOrderController {
     @PreAuthorize("@ss.hasPermission('trade:order:query')")
     public CommonResult<List<?>> getOrderExpressTrackList(@RequestParam("id") Long id) {
         return success(TradeOrderConvert.INSTANCE.convertList02(
-                tradeOrderQueryService.getExpressTrackList(id, getLoginUserId())));
+                tradeOrderQueryService.getExpressTrackList(id)));
     }
 
     @PutMapping("/delivery")
@@ -117,11 +116,4 @@ public class TradeOrderController {
         return success(true);
     }
 
-    // TODO @puhui999 订单物流详情
-    // TODO @puhui999 【前台】订单取消
-    // TODO @puhui999 【后台】订单取消
-    // TODO @puhui999 【前台】订单核销
-    // TODO @puhui999 【前台】订单删除
-    // TODO @puhui999 【后台】订单统计
-
 }

+ 21 - 0
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java

@@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.Prod
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Schema(description = "管理后台 - 交易订单的详情 Response VO")
@@ -24,6 +25,26 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO {
      */
     private MemberUserRespVO user;
 
+    /**
+     * TODO 订单操作日志, 先模拟一波
+     */
+    private List<OrderLog> orderLog;
+
+    @Data
+    public static class OrderLog {
+
+        /**
+         * 内容
+         */
+        private String content;
+
+        /**
+         * 创建时间
+         */
+        private LocalDateTime createTime;
+
+    }
+
     @Schema(description = "管理后台 - 交易订单的详情的订单项目")
     @Data
     public static class Item extends TradeOrderItemBaseVO {

+ 1 - 1
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderPageReqVO.java

@@ -61,5 +61,5 @@ public class TradeOrderPageReqVO extends PageParam {
     @Schema(description = "订单来源", example = "10")
     @InEnum(value = TerminalEnum.class, message = "订单来源 {value}")
     private Integer terminal;
-
+//    TODO 添加配送方式筛选
 }

+ 4 - 2
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/aftersale/TradeAfterSaleConvert.java

@@ -72,16 +72,18 @@ public interface TradeAfterSaleConvert {
     
     default TradeAfterSaleDetailRespVO convert(TradeAfterSaleDO afterSale, TradeOrderDO order, List<TradeOrderItemDO> orderItems,
                                                MemberUserRespDTO user, List<TradeAfterSaleLogRespDTO> logs) {
-        TradeAfterSaleDetailRespVO respVO = convert(afterSale, orderItems, convertList1(logs));
+        TradeAfterSaleDetailRespVO respVO = convert(afterSale, orderItems);
         // 处理用户信息
         respVO.setUser(convert(user));
         // 处理订单信息
         respVO.setOrder(convert(order));
+        // 处理售后日志
+        respVO.setAfterSaleLog(convertList1(logs));
         return respVO;
     }
     List<TradeAfterSaleLogRespVO> convertList1(List<TradeAfterSaleLogRespDTO> list);
     @Mapping(target = "id", source = "afterSale.id")
-    TradeAfterSaleDetailRespVO convert(TradeAfterSaleDO afterSale, List<TradeOrderItemDO> orderItems, List<TradeAfterSaleLogRespVO> logs);
+    TradeAfterSaleDetailRespVO convert(TradeAfterSaleDO afterSale, List<TradeOrderItemDO> orderItems);
     TradeOrderBaseVO convert(TradeOrderDO order);
 
 }

+ 15 - 3
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java

@@ -1,6 +1,5 @@
 package cn.iocoder.yudao.module.trade.convert.order;
 
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
@@ -37,8 +36,10 @@ import org.mapstruct.Mapping;
 import org.mapstruct.Mappings;
 import org.mapstruct.factory.Mappers;
 
-import java.util.*;
-import java.util.stream.Collectors;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap;
@@ -86,7 +87,9 @@ public interface TradeOrderConvert {
     default ProductSkuUpdateStockReqDTO convert(List<TradeOrderItemDO> list) {
         return new ProductSkuUpdateStockReqDTO(TradeOrderConvert.INSTANCE.convertList(list));
     }
+
     List<ProductSkuUpdateStockReqDTO.Item> convertList(List<TradeOrderItemDO> list);
+
     @Mappings({
             @Mapping(source = "skuId", target = "id"),
             @Mapping(source = "count", target = "incrCount"),
@@ -137,6 +140,15 @@ public interface TradeOrderConvert {
         orderVO.setReceiverAreaName(AreaUtils.format(order.getReceiverAreaId()));
         // 处理用户信息
         orderVO.setUser(convert(user));
+        // TODO puhui999:模拟订单操作日志
+        ArrayList<TradeOrderDetailRespVO.OrderLog> orderLogs = new ArrayList<>();
+        for (int i = 0; i < 6; i++) {
+            TradeOrderDetailRespVO.OrderLog orderLog = new TradeOrderDetailRespVO.OrderLog();
+            orderLog.setContent("订单操作" + i);
+            orderLog.setCreateTime(LocalDateTime.now());
+            orderLogs.add(orderLog);
+        }
+        orderVO.setOrderLog(orderLogs);
         return orderVO;
     }
 

+ 9 - 1
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryService.java

@@ -66,7 +66,7 @@ public interface TradeOrderQueryService {
     Long getOrderCount(Long userId, Integer status, Boolean commonStatus);
 
     /**
-     * 获得订单的物流轨迹
+     * 【前台】获得订单的物流轨迹
      *
      * @param id 订单编号
      * @param userId 用户编号
@@ -74,6 +74,14 @@ public interface TradeOrderQueryService {
      */
     List<ExpressTrackRespDTO> getExpressTrackList(Long id, Long userId);
 
+    /**
+     * 【后台】获得订单的物流轨迹
+     *
+     * @param id 订单编号
+     * @return 物流轨迹数组
+     */
+    List<ExpressTrackRespDTO> getExpressTrackList(Long id);
+
     // =================== Order Item ===================
 
     /**

+ 21 - 0
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderQueryServiceImpl.java

@@ -106,6 +106,27 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
             throw exception(ORDER_NOT_FOUND);
         }
 
+        return getTrackRespDTOs(order);
+    }
+
+    @Override
+    public List<ExpressTrackRespDTO> getExpressTrackList(Long id) {
+        // 查询订单
+        TradeOrderDO order = tradeOrderMapper.selectById(id);
+        if (order == null) {
+            throw exception(ORDER_NOT_FOUND);
+        }
+
+        return getTrackRespDTOs(order);
+    }
+
+    /**
+     * 得到物流轨迹
+     *
+     * @param order 订单
+     * @return 物流轨迹
+     */
+    private List<ExpressTrackRespDTO> getTrackRespDTOs(TradeOrderDO order) {
         // 查询物流公司
         if (order.getLogisticsId() == null) {
             return Collections.emptyList();