feat:订单管理-增加交费总数计算

This commit is contained in:
yangqingyuan
2024-08-11 00:17:00 +08:00
parent 5ef211571b
commit 0bf0722c69
3 changed files with 40 additions and 14 deletions

View File

@@ -83,6 +83,8 @@ public class OrderController extends BaseController {
private FreezeOrderService freezeOrderService; private FreezeOrderService freezeOrderService;
@Resource @Resource
private EquipmentOrderGoodsService equipmentOrderGoodsService; private EquipmentOrderGoodsService equipmentOrderGoodsService;
@Resource
private OrderPayService orderPayService;
@PreAuthorize("hasAuthority('shop:order:list')") @PreAuthorize("hasAuthority('shop:order:list')")
@@ -116,7 +118,9 @@ public class OrderController extends BaseController {
// 云芯威项目查询关联设备 // 云芯威项目查询关联设备
// 查询订单的关联商品 // 查询订单的关联商品
List<Order> list = orderService.listRel(param); //List<Order> list = orderService.listRel(param);//注意:这里每次查询都全量会非常影响性能
PageResult<Order> pageResult= orderService.pageRel(param);
List<Order> list = pageResult.getList();
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return success(new PageResult<>(list, 0L)); return success(new PageResult<>(list, 0L));
@@ -129,20 +133,30 @@ public class OrderController extends BaseController {
} }
List<Equipment> equipmentList = equipmentService.list(Wrappers.lambdaQuery(Equipment.class).in(Equipment::getEquipmentId, equipmentIds)); List<Equipment> equipmentList = equipmentService.list(Wrappers.lambdaQuery(Equipment.class).in(Equipment::getEquipmentId, equipmentIds));
List<EquipmentOrderGoods> equipmentOrderGoodsList = equipmentOrderGoodsService.list(Wrappers.lambdaQuery(EquipmentOrderGoods.class).in(EquipmentOrderGoods::getOrderId, orderIds)); List<EquipmentOrderGoods> equipmentOrderGoodsList = equipmentOrderGoodsService.list(Wrappers.lambdaQuery(EquipmentOrderGoods.class).in(EquipmentOrderGoods::getOrderId, orderIds));
List<OrderPay> orderPayList = orderPayService.list(Wrappers.lambdaQuery(OrderPay.class).eq(OrderPay::getPayStatus,20).in(OrderPay::getRentOrderId, orderIds));
// Map<Integer, List<Equipment>> equipmentCollect = equipmentList.stream().collect(Collectors.groupingBy(Equipment::getEquipmentId)); // Map<Integer, List<Equipment>> equipmentCollect = equipmentList.stream().collect(Collectors.groupingBy(Equipment::getEquipmentId));
Map<Integer, Equipment> equipmentCollect = equipmentList.stream().collect(Collectors.toMap(Equipment::getEquipmentId, e->e)); Map<Integer, Equipment> equipmentCollect = equipmentList.stream().collect(Collectors.toMap(Equipment::getEquipmentId, e->e));
Map<Integer, List<EquipmentOrderGoods>> equipmentOrderGoodsCollect = equipmentOrderGoodsList.stream().collect(Collectors.groupingBy(EquipmentOrderGoods::getOrderId)); Map<Integer, List<EquipmentOrderGoods>> equipmentOrderGoodsCollect = equipmentOrderGoodsList.stream().collect(Collectors.groupingBy(EquipmentOrderGoods::getOrderId));
Map<Integer, List<OrderPay>> orderPayCollect = orderPayList.stream().collect(Collectors.groupingBy(OrderPay::getRentOrderId));
// 查询订单的设备 // 查询订单的设备
for (Order order : list) { for (Order order : list) {
//计算缴费总钱数
List<OrderPay> 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(); final OrderGoodsParam orderGoodsParam = new OrderGoodsParam();
orderGoodsParam.setOrderId(order.getOrderId()); orderGoodsParam.setOrderId(order.getOrderId());
List<EquipmentOrderGoods> equipmentOrderGoods = equipmentOrderGoodsCollect.get(order.getOrderId()); List<EquipmentOrderGoods> equipmentOrderGoods = equipmentOrderGoodsCollect.get(order.getOrderId());
if (CollectionUtils.isEmpty(equipmentOrderGoods)) { if (!CollectionUtils.isEmpty(equipmentOrderGoods)) {
continue; EquipmentOrderGoods orderGoods = equipmentOrderGoods.get(0);
order.setEquipmentGoods(orderGoods);
} }
EquipmentOrderGoods orderGoods = equipmentOrderGoods.get(0);
order.setEquipmentGoods(orderGoods);
// List<Equipment> equipment = equipmentCollect.get(order.getEquipmentId()); // List<Equipment> equipment = equipmentCollect.get(order.getEquipmentId());
// if (CollectionUtils.isNotEmpty(equipment)) { // if (CollectionUtils.isNotEmpty(equipment)) {
// order.setEquipment(equipment.get(0)); // order.setEquipment(equipment.get(0));
@@ -152,12 +166,10 @@ public class OrderController extends BaseController {
order.setEquipment(equipment); order.setEquipment(equipment);
} }
} }
PageParam<Order, OrderParam> page = new PageParam<>(param); //PageParam<Order, OrderParam> page = new PageParam<>(param);
PageResult ret = new PageResult<>(list, page.getTotal()); //PageResult ret = new PageResult<>(list, page.getTotal());
ret.setCount((long) list.size()); //ret.setCount(pageResult.getCount());
return success(ret); return success(pageResult);
} }
@PreAuthorize("hasAuthority('shop:order:list')") @PreAuthorize("hasAuthority('shop:order:list')")

View File

@@ -332,6 +332,10 @@ public class Order implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Integer isRefund; private Integer isRefund;
@ApiModelProperty(value = "订单交费总数")
@TableField(exist = false)
private BigDecimal totalPayPrice;
public Integer getRestDay() { public Integer getRestDay() {
if(null != orderStatus){ if(null != orderStatus){
switch(orderStatus){ switch(orderStatus){

View File

@@ -67,10 +67,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Override @Override
public PageResult<Order> pageRel(OrderParam param) { public PageResult<Order> pageRel(OrderParam param) {
PageParam<Order, OrderParam> page = new PageParam<>(param); PageParam<Order, OrderParam> 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<Order> list = baseMapper.selectPageRel(page, param); List<Order> list = baseMapper.selectPageRel(page, param);
// 是否查询订单商品 // 是否查询订单商品
if(param.getShowGoodsList() != null){ /*if(param.getShowGoodsList() != null){
list.forEach(d -> { list.forEach(d -> {
final List<OrderGoods> goodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, d.getOrderId()).gt(OrderGoods::getTotalNum, 0)); final List<OrderGoods> goodsList = orderGoodsService.list(new LambdaQueryWrapper<OrderGoods>().eq(OrderGoods::getOrderId, d.getOrderId()).gt(OrderGoods::getTotalNum, 0));
goodsList.forEach(g -> { goodsList.forEach(g -> {
@@ -89,7 +99,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
}); });
d.setGoodsList(goodsList); d.setGoodsList(goodsList);
}); });
} }*/
return new PageResult<>(list, page.getTotal()); return new PageResult<>(list, page.getTotal());
} }