Browse Source

feat: 添加订单日志接口

luofeiyun 4 tuần trước cách đây
mục cha
commit
7b89c45e74

+ 71 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/AdminTradeOrderController.java

@@ -0,0 +1,71 @@
+package com.yc.ship.module.trade.controller.admin.order;
+
+import com.yc.ship.framework.common.enums.UserTypeEnum;
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.framework.common.util.collection.CollectionUtils;
+import com.yc.ship.framework.common.util.collection.MapUtils;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+import com.yc.ship.module.member.api.user.MemberUserApi;
+import com.yc.ship.module.member.api.user.dto.MemberUserRespDTO;
+import com.yc.ship.module.system.api.user.AdminUserApi;
+import com.yc.ship.module.system.api.user.dto.AdminUserRespDTO;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeOrderLogRespVO;
+import com.yc.ship.module.trade.dal.dataobject.order.TradeOrderLogDO;
+import com.yc.ship.module.trade.service.order.TradeOrderLogService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
+
+/**
+ * 后台管理:订单通用接口
+ */
+@Validated
+@Slf4j
+@RestController
+@RequestMapping("trade/order")
+@Tag(name = "后台管理:订单通用接口")
+public class AdminTradeOrderController {
+
+    @Resource
+    private TradeOrderLogService tradeOrderLogService;
+
+    @Resource
+    private AdminUserApi adminUserApi;
+
+    @Resource
+    private MemberUserApi memberUserApi;
+
+    @GetMapping("getOrderLogListByOrderId")
+    @Operation(summary = "通过订单ID获得订单日志列表")
+    public CommonResult<List<TradeOrderLogRespVO>> getOrderLogListByOrderId(Long orderId) {
+        List<TradeOrderLogDO> list = tradeOrderLogService.getOrderLogListByOrderId(orderId);
+        List<TradeOrderLogRespVO> tradeOrderLogRespVOS = BeanUtils.toBean(list, TradeOrderLogRespVO.class);
+        List<Long> userIds = CollectionUtils.convertList(tradeOrderLogRespVOS, TradeOrderLogRespVO::getUserId, (item) -> item.getUserType() == UserTypeEnum.ADMIN.getValue());
+        List<AdminUserRespDTO> userList = adminUserApi.getUserList(userIds);
+        Map<Long, AdminUserRespDTO> userMap = CollectionUtils.convertMap(userList, AdminUserRespDTO::getId);
+
+        List<Long> memberIds = CollectionUtils.convertList(tradeOrderLogRespVOS, TradeOrderLogRespVO::getUserId, (item) -> item.getUserType() == UserTypeEnum.MEMBER.getValue());
+        List<MemberUserRespDTO> memberList = memberUserApi.getUserList(memberIds);
+        Map<Long, MemberUserRespDTO> memberMap = CollectionUtils.convertMap(memberList, MemberUserRespDTO::getId);
+
+        tradeOrderLogRespVOS.stream().forEach(item -> {
+            if(item.getUserType() == UserTypeEnum.ADMIN.getValue()) {
+                MapUtils.findAndThen(userMap, item.getUserId(), user -> item.setUserName(user.getNickname()));
+            }else if(item.getUserType() == UserTypeEnum.MEMBER.getValue()) {
+                MapUtils.findAndThen(memberMap, item.getUserId(), member -> item.setUserName(member.getNickname()));
+            }
+        });
+        return success(tradeOrderLogRespVOS);
+    }
+
+}

+ 1 - 1
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeOrderLogRespVO.java

@@ -21,7 +21,7 @@ public class TradeOrderLogRespVO {
     private Long userId;
 
     @Schema(description = "用户类型", example = "28458")
-    private Long userType;
+    private Integer userType;
 
     @Schema(description = "用户昵称", example = "28458")
     @ExcelProperty("用户昵称")