fix: 退款金额不准确修复

This commit is contained in:
SongZhang 2024-10-29 14:54:52 +08:00
parent edceabad0e
commit ad8c87d313
1 changed files with 9 additions and 4 deletions

View File

@ -2033,7 +2033,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
}
private TbOrderInfo updateReturnOrderInfo(ReturnOrderDTO returnOrderDTO, TbOrderInfo oldOrderInfo, boolean isOnline) {
private HashMap<String, Object> updateReturnOrderInfo(ReturnOrderDTO returnOrderDTO, TbOrderInfo oldOrderInfo, boolean isOnline) {
ArrayList<Integer> detailIds = new ArrayList<>();
HashMap<String, Integer> returnNumMap = new HashMap<>();
returnOrderDTO.getOrderDetails().forEach(item -> {
@ -2127,7 +2127,10 @@ public class TbShopTableServiceImpl implements TbShopTableService {
updateStockAndRecord(detailList);
mpOrderDetailService.updateBatchById(detailList);
return returnOrder;
HashMap<String, Object> data = new HashMap<>();
data.put("returnOrder", returnOrder);
data.put("returnAmount", returnAmount);
return data;
}
private void updateStockAndRecord(List<TbOrderDetail> orderDetailList) {
@ -2187,7 +2190,9 @@ public class TbShopTableServiceImpl implements TbShopTableService {
// TODO 密码校验
}
TbOrderInfo returnOrderInfo = updateReturnOrderInfo(returnOrderDTO, orderInfo, true);
HashMap<String, Object> returnInfoData = updateReturnOrderInfo(returnOrderDTO, orderInfo, true);
TbOrderInfo returnOrderInfo = (TbOrderInfo) returnInfoData.get("returnOrder");
BigDecimal returnAmount = (BigDecimal) returnInfoData.get("returnAmount");
String shopId = orderInfo.getShopId();
String payType = orderInfo.getPayType();
@ -2199,7 +2204,7 @@ public class TbShopTableServiceImpl implements TbShopTableService {
orderInfo.setStatus("refund");
// 储值卡支付退款
} else if ("deposit".equals(payType)) {
orderInfoService.depositReturn(Integer.valueOf(orderInfo.getUserId()), Integer.valueOf(orderInfo.getShopId()), returnOrderInfo.getRefundAmount());
orderInfoService.depositReturn(Integer.valueOf(orderInfo.getUserId()), Integer.valueOf(orderInfo.getShopId()), returnAmount);
orderInfo.setStatus("refund");
mpOrderDetailService.updateStatusByOrderIdAndIds(OrderStatusEnums.REFUNDING, OrderStatusEnums.REFUND,
returnOrderDTO.getOrderId(), returnOrderDTO.getOrderDetails().stream().map(ReturnOrderDTO.OrderDetail::getId).collect(Collectors.toList()));