Administrator
2025-05-20 2402314e739d4c27ecb7b7a59d57d4ff4094d04a
fix(mall): 修复订单部分退款导致运费也被退的问题

- 在处理订单部分退款时,只在第一次循环中添加运费
- 优化了退款金额的计算逻辑,确保运费只被退还一次
1 files modified
7 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 7 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -1086,6 +1086,7 @@
        if(CollUtil.isEmpty(mallOrderItemList)){
            return new FebsResponse().fail().message("订单不存在");
        }
        int i = 0;
        for(MallOrderItem mallOrderItem : mallOrderItemList){
            QueryWrapper<MallRefundEntity> objectQueryWrapper = new QueryWrapper<>();
            objectQueryWrapper.eq("member_id",member.getId());
@@ -1106,7 +1107,11 @@
                    mallRefundEntity.setType(3);
                }
                mallRefundEntity.setState(3);
                mallRefundEntity.setAmount(mallOrderItem.getAmount().add(mallOrderInfo.getCarriage()));
                if(i == 0){
                    mallRefundEntity.setAmount(mallOrderItem.getAmount().add(mallOrderInfo.getCarriage()));
                }else{
                    mallRefundEntity.setAmount(mallOrderItem.getAmount());
                }
                mallRefundMapper.insert(mallRefundEntity);
            }else{
                if(mallRefund.getState() == 1){