|
@@ -375,7 +375,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
if (StringUtils.isNotBlank(goodsIds)) {
|
|
if (StringUtils.isNotBlank(goodsIds)) {
|
|
List<Integer> goodsIdList = Arrays.stream(goodsIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
|
|
List<Integer> goodsIdList = Arrays.stream(goodsIds.split(",")).map(Integer::parseInt).collect(Collectors.toList());
|
|
//添加新订单
|
|
//添加新订单
|
|
- this.addSellOrder(studentPaymentOrder.getId(), subjectChange.getMusicGroupId(), goodsIdList, BigDecimal.ZERO, BigDecimal.ZERO, subjectChange.getKitGroupPurchaseType());
|
|
|
|
|
|
+ this.addSellOrder(studentPaymentOrder.getId(),
|
|
|
|
+ subjectChange.getMusicGroupId(),
|
|
|
|
+ goodsIdList,
|
|
|
|
+ BigDecimal.ZERO,
|
|
|
|
+ BigDecimal.ZERO,
|
|
|
|
+ subjectChange.getKitGroupPurchaseType(),BigDecimal.ZERO);
|
|
}
|
|
}
|
|
//乐保处理
|
|
//乐保处理
|
|
studentInstrumentService.subjectChangeUpdateInstrument(subjectChange);
|
|
studentInstrumentService.subjectChangeUpdateInstrument(subjectChange);
|
|
@@ -625,7 +630,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
sellOrderService.refundByOrderId(subjectChange.getOriginalOrderId().longValue(), false);
|
|
sellOrderService.refundByOrderId(subjectChange.getOriginalOrderId().longValue(), false);
|
|
}
|
|
}
|
|
//添加新订单
|
|
//添加新订单
|
|
- List<SellOrder> sellOrders = this.addSellOrder(studentPaymentOrder.getId(), subjectChange.getMusicGroupId(), goodsIdList, studentPaymentOrder.getExpectAmount(), studentPaymentOrder.getBalancePaymentAmount(), subjectChange.getKitGroupPurchaseType());
|
|
|
|
|
|
+ List<SellOrder> sellOrders = this.addSellOrder(studentPaymentOrder.getId(),
|
|
|
|
+ subjectChange.getMusicGroupId(),
|
|
|
|
+ goodsIdList,
|
|
|
|
+ studentPaymentOrder.getExpectAmount(),
|
|
|
|
+ studentPaymentOrder.getBalancePaymentAmount(),
|
|
|
|
+ subjectChange.getKitGroupPurchaseType(),studentPaymentOrder.getCouponRemitFee());
|
|
if(sellOrders != null && sellOrders.size() > 0){
|
|
if(sellOrders != null && sellOrders.size() > 0){
|
|
SubjectChange change = subjectChangeDao.get(subjectChange.getId());
|
|
SubjectChange change = subjectChangeDao.get(subjectChange.getId());
|
|
BigDecimal instrumentAmount = sellOrders.stream().filter(e -> e.getType() == SellTypeEnum.INSTRUMENT).map(e -> e.getExpectAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
BigDecimal instrumentAmount = sellOrders.stream().filter(e -> e.getType() == SellTypeEnum.INSTRUMENT).map(e -> e.getExpectAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
@@ -742,7 +752,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
- public List<SellOrder> addSellOrder(Long orderId, String musicGroupId, List<Integer> goodsIds, BigDecimal totalAmount, BigDecimal balance, KitGroupPurchaseTypeEnum kitGroupPurchaseType) {
|
|
|
|
|
|
+ public List<SellOrder> addSellOrder(Long orderId,
|
|
|
|
+ String musicGroupId,
|
|
|
|
+ List<Integer> goodsIds,
|
|
|
|
+ BigDecimal totalAmount,
|
|
|
|
+ BigDecimal balance,
|
|
|
|
+ KitGroupPurchaseTypeEnum kitGroupPurchaseType,BigDecimal couponRemitAmount) {
|
|
if (goodsIds == null || goodsIds.size() <= 0) {
|
|
if (goodsIds == null || goodsIds.size() <= 0) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
@@ -865,7 +880,30 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- sellOrderDao.batchInsert(sellOrderList);
|
|
|
|
|
|
+ if (sellOrderList.size() > 0) {
|
|
|
|
+ //如果有优惠券金额
|
|
|
|
+ if (couponRemitAmount.compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
+ BigDecimal reduce = sellOrderList.stream().map(e -> e.getExpectAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
+ List<SellOrder> sellOrders = sellOrderList.stream().filter(e -> e.getExpectAmount().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList());
|
|
|
|
+ //可用优惠券金额
|
|
|
|
+ BigDecimal subCouponMarketAmount = couponRemitAmount;
|
|
|
|
+ for (int j = 0; j < sellOrders.size(); j++) {
|
|
|
|
+ SellOrder sellOrder = sellOrders.get(j);
|
|
|
|
+ //如果是最后一件商品
|
|
|
|
+ if (j == sellOrders.size() - 1) {
|
|
|
|
+ sellOrder.setCouponRemitAmount(subCouponMarketAmount);
|
|
|
|
+ } else {
|
|
|
|
+ //获取比例
|
|
|
|
+ BigDecimal ratioAmount = sellOrder.getExpectAmount().divide(reduce, 6, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ //获取分配的减免金额
|
|
|
|
+ BigDecimal multiply = couponRemitAmount.multiply(ratioAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
|
|
|
|
+ subCouponMarketAmount = subCouponMarketAmount.subtract(multiply);
|
|
|
|
+ sellOrder.setCouponRemitAmount(multiply);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ sellOrderService.batchInsert(sellOrderList);
|
|
|
|
+ }
|
|
return sellOrderList;
|
|
return sellOrderList;
|
|
}
|
|
}
|
|
}
|
|
}
|