From 0bf0722c69c38be880c8e981bf42f8928495d600 Mon Sep 17 00:00:00 2001 From: yangqingyuan Date: Sun, 11 Aug 2024 00:17:00 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E8=AE=A2=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E5=A2=9E=E5=8A=A0=E4=BA=A4=E8=B4=B9=E6=80=BB?= =?UTF-8?q?=E6=95=B0=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shop/controller/OrderController.java | 34 +++++++++++++------ .../java/com/gxwebsoft/shop/entity/Order.java | 4 +++ .../shop/service/impl/OrderServiceImpl.java | 16 +++++++-- 3 files changed, 40 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/gxwebsoft/shop/controller/OrderController.java b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java index 9b6d000..9dbbe09 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/OrderController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/OrderController.java @@ -83,6 +83,8 @@ public class OrderController extends BaseController { private FreezeOrderService freezeOrderService; @Resource private EquipmentOrderGoodsService equipmentOrderGoodsService; + @Resource + private OrderPayService orderPayService; @PreAuthorize("hasAuthority('shop:order:list')") @@ -116,7 +118,9 @@ public class OrderController extends BaseController { // 云芯威项目查询关联设备 // 查询订单的关联商品 - List list = orderService.listRel(param); + //List list = orderService.listRel(param);//注意:这里每次查询都全量会非常影响性能 + PageResult pageResult= orderService.pageRel(param); + List list = pageResult.getList(); if (CollectionUtils.isEmpty(list)) { return success(new PageResult<>(list, 0L)); @@ -129,20 +133,30 @@ public class OrderController extends BaseController { } List equipmentList = equipmentService.list(Wrappers.lambdaQuery(Equipment.class).in(Equipment::getEquipmentId, equipmentIds)); List equipmentOrderGoodsList = equipmentOrderGoodsService.list(Wrappers.lambdaQuery(EquipmentOrderGoods.class).in(EquipmentOrderGoods::getOrderId, orderIds)); + List orderPayList = orderPayService.list(Wrappers.lambdaQuery(OrderPay.class).eq(OrderPay::getPayStatus,20).in(OrderPay::getRentOrderId, orderIds)); // Map> equipmentCollect = equipmentList.stream().collect(Collectors.groupingBy(Equipment::getEquipmentId)); Map equipmentCollect = equipmentList.stream().collect(Collectors.toMap(Equipment::getEquipmentId, e->e)); Map> equipmentOrderGoodsCollect = equipmentOrderGoodsList.stream().collect(Collectors.groupingBy(EquipmentOrderGoods::getOrderId)); + Map> orderPayCollect = orderPayList.stream().collect(Collectors.groupingBy(OrderPay::getRentOrderId)); // 查询订单的设备 for (Order order : list) { + //计算缴费总钱数 + List orderPays = orderPayCollect.get(order.getOrderId()); + if (null != orderPays && !orderPays.isEmpty()) { + BigDecimal sum = orderPays.stream().map(OrderPay::getOrderPrice).reduce(BigDecimal.ZERO, BigDecimal::add); + order.setTotalPayPrice(sum); + } else { + order.setTotalPayPrice(BigDecimal.ZERO); + } + final OrderGoodsParam orderGoodsParam = new OrderGoodsParam(); orderGoodsParam.setOrderId(order.getOrderId()); List equipmentOrderGoods = equipmentOrderGoodsCollect.get(order.getOrderId()); - if (CollectionUtils.isEmpty(equipmentOrderGoods)) { - continue; + if (!CollectionUtils.isEmpty(equipmentOrderGoods)) { + EquipmentOrderGoods orderGoods = equipmentOrderGoods.get(0); + order.setEquipmentGoods(orderGoods); } - EquipmentOrderGoods orderGoods = equipmentOrderGoods.get(0); - order.setEquipmentGoods(orderGoods); // List equipment = equipmentCollect.get(order.getEquipmentId()); // if (CollectionUtils.isNotEmpty(equipment)) { // order.setEquipment(equipment.get(0)); @@ -152,12 +166,10 @@ public class OrderController extends BaseController { order.setEquipment(equipment); } } - PageParam page = new PageParam<>(param); - PageResult ret = new PageResult<>(list, page.getTotal()); - ret.setCount((long) list.size()); - return success(ret); - - + //PageParam page = new PageParam<>(param); + //PageResult ret = new PageResult<>(list, page.getTotal()); + //ret.setCount(pageResult.getCount()); + return success(pageResult); } @PreAuthorize("hasAuthority('shop:order:list')") diff --git a/src/main/java/com/gxwebsoft/shop/entity/Order.java b/src/main/java/com/gxwebsoft/shop/entity/Order.java index 496eed0..54a4091 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Order.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Order.java @@ -332,6 +332,10 @@ public class Order implements Serializable { @TableField(exist = false) private Integer isRefund; + @ApiModelProperty(value = "订单交费总数") + @TableField(exist = false) + private BigDecimal totalPayPrice; + public Integer getRestDay() { if(null != orderStatus){ switch(orderStatus){ diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java index b7800de..17cf7b2 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java @@ -67,10 +67,20 @@ public class OrderServiceImpl extends ServiceImpl implements @Override public PageResult pageRel(OrderParam param) { PageParam page = new PageParam<>(param); - page.setDefaultOrder("delivery_time desc,create_time desc"); + String sort = param.getSort(); + String order = param.getOrder(); + if(StrUtil.isNotBlank(sort)){ + String orderStr = sort; + if(StrUtil.isNotBlank(order)){ + orderStr += " " + order; + } + page.setDefaultOrder(orderStr); + } else { + page.setDefaultOrder("create_time desc"); + } List list = baseMapper.selectPageRel(page, param); // 是否查询订单商品 - if(param.getShowGoodsList() != null){ + /*if(param.getShowGoodsList() != null){ list.forEach(d -> { final List goodsList = orderGoodsService.list(new LambdaQueryWrapper().eq(OrderGoods::getOrderId, d.getOrderId()).gt(OrderGoods::getTotalNum, 0)); goodsList.forEach(g -> { @@ -89,7 +99,7 @@ public class OrderServiceImpl extends ServiceImpl implements }); d.setGoodsList(goodsList); }); - } + }*/ return new PageResult<>(list, page.getTotal()); }