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;
@Resource
private EquipmentOrderGoodsService equipmentOrderGoodsService;
@Resource
private OrderPayService orderPayService;
@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)) {
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<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, 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<OrderPay>> orderPayCollect = orderPayList.stream().collect(Collectors.groupingBy(OrderPay::getRentOrderId));
// 查询订单的设备
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();
orderGoodsParam.setOrderId(order.getOrderId());
List<EquipmentOrderGoods> 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> 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<Order, OrderParam> page = new PageParam<>(param);
PageResult ret = new PageResult<>(list, page.getTotal());
ret.setCount((long) list.size());
return success(ret);
//PageParam<Order, OrderParam> page = new PageParam<>(param);
//PageResult ret = new PageResult<>(list, page.getTotal());
//ret.setCount(pageResult.getCount());
return success(pageResult);
}
@PreAuthorize("hasAuthority('shop:order:list')")

View File

@@ -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){

View File

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