Commit be7c664e07868fb2de39061f6ff54bb0d571cc17

Authored by YunaiV
1 parent 83aa656b

mall:订单统计接口

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
12 12 import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
13 13 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
14 14 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
  15 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
15 16 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
16 17 import io.swagger.v3.oas.annotations.Operation;
17 18 import io.swagger.v3.oas.annotations.Parameter;
... ... @@ -171,17 +172,17 @@ public class AppTradeOrderController {
171 172 return success(TradeOrderConvert.INSTANCE.convertPage02(pageResult, orderItems, propertyValueDetails));
172 173 }
173 174  
174   - // TODO 芋艿:后续实现
175 175 @GetMapping("/get-count")
176 176 @Operation(summary = "获得交易订单数量")
177   - public CommonResult<Map<String, Integer>> getOrderCount() {
178   - Map<String, Integer> orderCount = new HashMap<>();
179   - orderCount.put("allCount", 10);
180   - orderCount.put("unpaidCount", 5);
181   - orderCount.put("undeliveredCount", 2);
182   - orderCount.put("deliveredCount", 1);
183   - orderCount.put("uncommentedCount", 3);
184   - orderCount.put("allPrice", 300);
  177 + public CommonResult<Map<String, Long>> getOrderCount() {
  178 + Map<String, Long> orderCount = new HashMap<>();
  179 + // 全部
  180 + orderCount.put("allCount", tradeOrderService.getOrderCount(getLoginUserId(), null, null));
  181 + // 待付款(未支付)
  182 + orderCount.put("unpaidCount", tradeOrderService.getOrderCount(getLoginUserId(), TradeOrderStatusEnum.UNPAID.getStatus(), null));
  183 + orderCount.put("undeliveredCount", tradeOrderService.getOrderCount(getLoginUserId(), TradeOrderStatusEnum.UNDELIVERED.getStatus(), null));
  184 + orderCount.put("deliveredCount", tradeOrderService.getOrderCount(getLoginUserId(), TradeOrderStatusEnum.DELIVERED.getStatus(), null));
  185 + orderCount.put("uncommentedCount", tradeOrderService.getOrderCount(getLoginUserId(), TradeOrderStatusEnum.COMPLETED.getStatus(), false));
185 186 return success(orderCount);
186 187 }
187 188  
... ...
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&lt;TradeOrderDO&gt; {
44 44 .orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status,不同的排序
45 45 }
46 46  
  47 + default Long selectCountByUserIdAndStatus(Long userId, Integer status, Boolean commentStatus) {
  48 + return selectCount(new LambdaQueryWrapperX<TradeOrderDO>()
  49 + .eq(TradeOrderDO::getUserId, userId)
  50 + .eqIfPresent(TradeOrderDO::getStatus, status)
  51 + .eqIfPresent(TradeOrderDO::getCommentStatus, commentStatus));
  52 + }
47 53 }
... ...
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 {
91 91 */
92 92 PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO);
93 93  
  94 + /**
  95 + * 【会员】获得交易订单数量
  96 + *
  97 + * @param userId 用户编号
  98 + * @param status 订单状态。如果为空,则不进行筛选
  99 + * @param commonStatus 评价状态。如果为空,则不进行筛选
  100 + * @return 订单数量
  101 + */
  102 + Long getOrderCount(Long userId, Integer status, Boolean commonStatus);
  103 +
94 104 // =================== Order Item ===================
95 105  
96 106 /**
... ...
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 {
451 451 return tradeOrderMapper.selectPage(reqVO, userId);
452 452 }
453 453  
  454 + @Override
  455 + public Long getOrderCount(Long userId, Integer status, Boolean commentStatus) {
  456 + return tradeOrderMapper.selectCountByUserIdAndStatus(userId, status, commentStatus);
  457 + }
  458 +
454 459 // =================== Order Item ===================
455 460  
456 461 @Override
... ...