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,6 +12,7 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderI
12 import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; 12 import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
13 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; 13 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
14 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; 14 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
  15 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
15 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService; 16 import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
16 import io.swagger.v3.oas.annotations.Operation; 17 import io.swagger.v3.oas.annotations.Operation;
17 import io.swagger.v3.oas.annotations.Parameter; 18 import io.swagger.v3.oas.annotations.Parameter;
@@ -171,17 +172,17 @@ public class AppTradeOrderController { @@ -171,17 +172,17 @@ public class AppTradeOrderController {
171 return success(TradeOrderConvert.INSTANCE.convertPage02(pageResult, orderItems, propertyValueDetails)); 172 return success(TradeOrderConvert.INSTANCE.convertPage02(pageResult, orderItems, propertyValueDetails));
172 } 173 }
173 174
174 - // TODO 芋艿:后续实现  
175 @GetMapping("/get-count") 175 @GetMapping("/get-count")
176 @Operation(summary = "获得交易订单数量") 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 return success(orderCount); 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,4 +44,10 @@ public interface TradeOrderMapper extends BaseMapperX&lt;TradeOrderDO&gt; {
44 .orderByDesc(TradeOrderDO::getId)); // TODO 芋艿:未来不同的 status,不同的排序 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,6 +91,16 @@ public interface TradeOrderService {
91 */ 91 */
92 PageResult<TradeOrderDO> getOrderPage(Long userId, AppTradeOrderPageReqVO reqVO); 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 // =================== Order Item =================== 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,6 +451,11 @@ public class TradeOrderServiceImpl implements TradeOrderService {
451 return tradeOrderMapper.selectPage(reqVO, userId); 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 // =================== Order Item =================== 459 // =================== Order Item ===================
455 460
456 @Override 461 @Override