fix: 多条退款detail合并为单条
This commit is contained in:
@@ -219,22 +219,30 @@ public class OrderService {
|
|||||||
List<TbOrderDetail> list = mpOrderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
|
List<TbOrderDetail> list = mpOrderDetailMapper.selectList(new LambdaQueryWrapper<TbOrderDetail>()
|
||||||
.eq(TbOrderDetail::getOrderId, orderInfo.getId())
|
.eq(TbOrderDetail::getOrderId, orderInfo.getId())
|
||||||
.ne(TbOrderDetail::getProductId, TableConstant.CART_SEAT_ID));
|
.ne(TbOrderDetail::getProductId, TableConstant.CART_SEAT_ID));
|
||||||
HashMap<String, TbOrderDetail> detailHashMap = new HashMap<>();
|
|
||||||
list.forEach(item -> {
|
|
||||||
TbOrderDetail orderDetail = detailHashMap.get(item.getCartId().toString());
|
|
||||||
if (orderDetail == null) {
|
|
||||||
detailHashMap.put(item.getCartId().toString(), item);
|
|
||||||
}else {
|
|
||||||
orderDetail.setNum(orderDetail.getNum() + item.getNum());
|
|
||||||
orderDetail.setPriceAmount(orderDetail.getPriceAmount().add(item.getPriceAmount()));
|
|
||||||
orderDetail.setPackAmount(orderDetail.getPackAmount().add(item.getPackAmount()));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
int num = 0;
|
int num = 0;
|
||||||
for (TbOrderDetail orderDetail : detailHashMap.values()) {
|
if (!"unpaid".equals(orderInfo.getStatus())) {
|
||||||
num = num + orderDetail.getNum();
|
HashMap<String, TbOrderDetail> detailHashMap = new HashMap<>();
|
||||||
|
list.forEach(item -> {
|
||||||
|
TbOrderDetail orderDetail = detailHashMap.get(item.getCartId().toString());
|
||||||
|
if (orderDetail == null) {
|
||||||
|
detailHashMap.put(item.getCartId().toString(), item);
|
||||||
|
}else {
|
||||||
|
orderDetail.setNum(orderDetail.getNum() + item.getNum());
|
||||||
|
orderDetail.setPriceAmount(orderDetail.getPriceAmount().add(item.getPriceAmount()));
|
||||||
|
orderDetail.setPackAmount(orderDetail.getPackAmount().add(item.getPackAmount()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
for (TbOrderDetail orderDetail : detailHashMap.values()) {
|
||||||
|
num = num + orderDetail.getNum();
|
||||||
|
}
|
||||||
|
orderInfo.setDetailList(new ArrayList<>(detailHashMap.values()));
|
||||||
|
}else {
|
||||||
|
orderInfo.setDetailList(list);
|
||||||
}
|
}
|
||||||
orderInfo.setDetailList(new ArrayList<>(detailHashMap.values()));
|
|
||||||
|
|
||||||
orderInfo.setTotalNumber(num);
|
orderInfo.setTotalNumber(num);
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user