|
@@ -288,23 +288,14 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
|
|
}
|
|
}
|
|
//获取总金额
|
|
//获取总金额
|
|
BigDecimal detailTotalPrice = goodsOrderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal detailTotalPrice = goodsOrderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
- BigDecimal balancePaymentAmount = studentPaymentOrder.getBalancePaymentAmount();
|
|
|
|
- if (balancePaymentAmount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
- BigDecimal expectAmount = studentPaymentOrder.getExpectAmount();
|
|
|
|
- BigDecimal organShareProfit = orderDetails.stream().filter(o -> o.getType() == ORGAN_SHARE_PROFIT).map(StudentPaymentOrderDetail::getPrice)
|
|
|
|
- .reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
- if(organShareProfit != null){
|
|
|
|
- expectAmount = expectAmount.subtract(organShareProfit);
|
|
|
|
- }
|
|
|
|
- //获取比例
|
|
|
|
- BigDecimal ratioAmount = BigDecimal.ZERO;
|
|
|
|
- if(expectAmount.compareTo(BigDecimal.ZERO) > 0){
|
|
|
|
- ratioAmount = balancePaymentAmount.divide(expectAmount, 6, BigDecimal.ROUND_HALF_UP);
|
|
|
|
- }
|
|
|
|
- //获取分配的减免金额
|
|
|
|
- balancePaymentAmount = balancePaymentAmount.multiply(ratioAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
|
|
+ //获取比例
|
|
|
|
+ BigDecimal totalRatioAmount = BigDecimal.ZERO;
|
|
|
|
+ if(studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) > 0){
|
|
|
|
+ totalRatioAmount = detailTotalPrice.divide(studentPaymentOrder.getExpectAmount(), 6, BigDecimal.ROUND_HALF_UP);
|
|
}
|
|
}
|
|
- //获取总减免金额
|
|
|
|
|
|
+ //获取分配的余额
|
|
|
|
+ BigDecimal balancePaymentAmount = studentPaymentOrder.getBalancePaymentAmount().multiply(totalRatioAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ //获取总优惠券金额
|
|
BigDecimal detailTotalRemitPrice = goodsOrderDetails.stream().map(StudentPaymentOrderDetail::getRemitFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal detailTotalRemitPrice = goodsOrderDetails.stream().map(StudentPaymentOrderDetail::getRemitFee).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
List<SellOrder> sellOrders = new ArrayList<>();
|
|
List<SellOrder> sellOrders = new ArrayList<>();
|
|
@@ -497,7 +488,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
public List<SellOrder> refund(List<SellOrder> sellOrders, Boolean reBackFee) {
|
|
public List<SellOrder> refund(List<SellOrder> sellOrders, Boolean reBackFee) {
|
|
Date nowDate = new Date();
|
|
Date nowDate = new Date();
|
|
for (SellOrder sellOrder : sellOrders) {
|
|
for (SellOrder sellOrder : sellOrders) {
|