Commit 50b2a1d53fab21b8e0b42be0e070c71668444b38
1 parent
df4cc666
(提交版本master-jdk17)问题:订单正在待支付的时候,连续更改多次价格,如果更改次数超过两次,在订单结束后,客户想退款,会发现退款金额显示的不是最后更改的金额,而是原始金额。
修复:确保每次更新时,adjustPrice 和 payPrice 都是累加的
Showing
1 changed file
with
3 additions
and
2 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
| @@ -688,8 +688,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -688,8 +688,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 688 | List<TradeOrderItemDO> updateItems = new ArrayList<>(); | 688 | List<TradeOrderItemDO> updateItems = new ArrayList<>(); |
| 689 | for (int i = 0; i < orderOrderItems.size(); i++) { | 689 | for (int i = 0; i < orderOrderItems.size(); i++) { |
| 690 | TradeOrderItemDO item = orderOrderItems.get(i); | 690 | TradeOrderItemDO item = orderOrderItems.get(i); |
| 691 | - updateItems.add(new TradeOrderItemDO().setId(item.getId()).setAdjustPrice(item.getAdjustPrice() + dividePrices.get(i)) | ||
| 692 | - .setPayPrice((item.getPayPrice() - item.getAdjustPrice()) + dividePrices.get(i))); | 691 | + updateItems.add(new TradeOrderItemDO().setId(item.getId()) |
| 692 | + .setAdjustPrice(item.getAdjustPrice() + dividePrices.get(i)) | ||
| 693 | + .setPayPrice(item.getPayPrice() + dividePrices.get(i))); | ||
| 693 | } | 694 | } |
| 694 | tradeOrderItemMapper.updateBatch(updateItems); | 695 | tradeOrderItemMapper.updateBatch(updateItems); |
| 695 | 696 |