Browse Source

mall:订单统计接口

YunaiV 2 years ago
parent
commit
be7c664e07

+ 10 - 9
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java

@@ -12,6 +12,7 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderI
 import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -171,17 +172,17 @@ public class AppTradeOrderController {
         return success(TradeOrderConvert.INSTANCE.convertPage02(pageResult, orderItems, propertyValueDetails));
     }
 
-    // TODO 芋艿:后续实现
     @GetMapping("/get-count")
     @Operation(summary = "获得交易订单数量")
-    public CommonResult<Map<String, Integer>> getOrderCount() {
-        Map<String, Integer> orderCount = new HashMap<>();
-        orderCount.put("allCount", 10);
-        orderCount.put("unpaidCount", 5);
-        orderCount.put("undeliveredCount", 2);
-        orderCount.put("deliveredCount", 1);
-        orderCount.put("uncommentedCount", 3);
-        orderCount.put("allPrice", 300);
+    public CommonResult<Map<String, Long>> getOrderCount() {
+        Map<String, Long> orderCount = new HashMap<>();
+        // 全部
+        orderCount.put("allCount", tradeOrderService.getOrderCount(getLoginUserId(), null, null));
+        // 待付款(未支付)
+        orderCount.put("unpaidCount", tradeOrderService.getOrderCount(getLoginUserId(), TradeOrderStatusEnum.UNPAID.getStatus(), null));
+        orderCount.put("undeliveredCount", tradeOrderService.getOrderCount(getLoginUserId(), TradeOrderStatusEnum.UNDELIVERED.getStatus(), null));
+        orderCount.put("deliveredCount", tradeOrderService.getOrderCount(getLoginUserId(),  TradeOrderStatusEnum.DELIVERED.getStatus(), null));
+        orderCount.put("uncommentedCount", tradeOrderService.getOrderCount(getLoginUserId(), TradeOrderStatusEnum.COMPLETED.getStatus(), false));
         return success(orderCount);
     }
 

+ 6 - 0
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -44,4 +44,10 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
                 .orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status,不同的排序
     }
 
+    default Long selectCountByUserIdAndStatus(Long userId, Integer status, Boolean commentStatus) {
+        return selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
+                .eq(TradeOrderDO::getUserId, userId)
+                .eqIfPresent(TradeOrderDO::getStatus, status)
+                .eqIfPresent(TradeOrderDO::getCommentStatus, commentStatus));
+    }
 }

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

@@ -91,6 +91,16 @@ public interface TradeOrderService {
      */
     PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO);
 
+    /**
+     * 【会员】获得交易订单数量
+     *
+     * @param userId       用户编号
+     * @param status       订单状态。如果为空,则不进行筛选
+     * @param commonStatus 评价状态。如果为空,则不进行筛选
+     * @return 订单数量
+     */
+    Long getOrderCount(Long userId, Integer status, Boolean commonStatus);
+
     // =================== Order Item ===================
 
     /**

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

@@ -451,6 +451,11 @@ public class TradeOrderServiceImpl implements TradeOrderService {
         return tradeOrderMapper.selectPage(reqVO, userId);
     }
 
+    @Override
+    public Long getOrderCount(Long userId, Integer status, Boolean commentStatus) {
+        return tradeOrderMapper.selectCountByUserIdAndStatus(userId, status, commentStatus);
+    }
+
     // =================== Order Item ===================
 
     @Override