|
|
@@ -701,16 +701,10 @@ public class TradeRefundServiceImpl implements TradeRefundService {
|
|
|
//订单产品信息
|
|
|
// Map<Long, ProductSpuRespDTO> productMap = getOrderProductByDetailList(tradeDetailList);
|
|
|
TradeRefundCalculateRespDTO respDTO = new TradeRefundCalculateRespDTO();
|
|
|
- BigDecimal originRefundPrice = BigDecimal.ZERO;
|
|
|
- BigDecimal fee = BigDecimal.ZERO;
|
|
|
- BigDecimal refundAmount = BigDecimal.ZERO;
|
|
|
List<TradeRefundCalculateRespDTO.RefundItem> refundItemList = new ArrayList<>();
|
|
|
//退单
|
|
|
for (TradeDetailBO tradeDetail : tradeDetailList) {
|
|
|
TradeRefundCalculateRespDTO.RefundItem calculateRefundItem = calculateRefundDetailPrice(tradeOrderDO, tradeDetail, null, null);
|
|
|
- refundAmount = refundAmount.add(calculateRefundItem.getRefundAmount());
|
|
|
- fee = fee.add(calculateRefundItem.getFee());
|
|
|
- originRefundPrice = originRefundPrice.add(calculateRefundItem.getOriginRefundAmount());
|
|
|
refundItemList.add(calculateRefundItem);
|
|
|
}
|
|
|
//获取当前可退金额
|
|
|
@@ -1022,6 +1016,9 @@ public class TradeRefundServiceImpl implements TradeRefundService {
|
|
|
}
|
|
|
|
|
|
private BigDecimal getRefundFee(BigDecimal originRefundPrice, BigDecimal percent) {
|
|
|
+ if(originRefundPrice==null || originRefundPrice.compareTo(BigDecimal.ZERO)<=0){
|
|
|
+ return BigDecimal.ZERO;
|
|
|
+ }
|
|
|
return originRefundPrice.multiply(percent).divide(new BigDecimal(100)).setScale(2, RoundingMode.HALF_UP);
|
|
|
}
|
|
|
|