|
@@ -83,9 +83,11 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
|
|
|
|
|
|
studentPaymentRouteOrderDto.setOrderNo(orderNo);
|
|
|
studentPaymentRouteOrderDto.setGroupType(GroupType.OUTORDER);
|
|
|
+ studentPaymentRouteOrderDto.setRouteOrganId(studentPaymentRouteOrderDto.getOrganId());
|
|
|
studentPaymentRouteOrderDto.setExpectAmount(studentPaymentRouteOrderDto.getActualAmount());
|
|
|
studentPaymentRouteOrderDto.setStatus(DealStatusEnum.SUCCESS);
|
|
|
studentPaymentRouteOrderDto.setUpdateTime(nowDate);
|
|
|
+
|
|
|
studentPaymentOrderDao.insert(studentPaymentRouteOrderDto);
|
|
|
StudentPaymentRouteOrder studentPaymentRouteOrder = new StudentPaymentRouteOrder();
|
|
|
studentPaymentRouteOrder.setOrderNo(orderNo);
|
|
@@ -95,42 +97,57 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
|
|
|
studentPaymentRouteOrder.setFeeFlag("N");
|
|
|
studentPaymentRouteOrderDao.insert(studentPaymentRouteOrder);
|
|
|
|
|
|
-// if (studentPaymentRouteOrderDto.getGoodies() != null && studentPaymentRouteOrderDto.getGoodies().size() > 0) {
|
|
|
-// List<SellOrder> sellOrders = new ArrayList<>();
|
|
|
-// BigDecimal hasRouteAmount = BigDecimal.ZERO;
|
|
|
-// studentPaymentRouteOrderDto.getGoodies().forEach((id, num) -> {
|
|
|
-// Goods goods = goodsDao.get(id);
|
|
|
-//
|
|
|
-// SellOrder sellOrder = new SellOrder();
|
|
|
-// sellOrder.setOrganId(studentPaymentOrder.getOrganId());
|
|
|
-// sellOrder.setSchoolId(musicGroup.getSchoolId());
|
|
|
-// sellOrder.setTransNo(studentPaymentOrder.getTransNo());
|
|
|
-// sellOrder.setOrderId(studentPaymentOrder.getId());
|
|
|
-// sellOrder.setOrderNo(studentPaymentOrder.getOrderNo());
|
|
|
-// sellOrder.setActualAmount(actualAmount);
|
|
|
-// sellOrder.setBalanceAmount(balancePaymentAmount);
|
|
|
-// sellOrder.setExpectAmount(actualAmount.add(balance));
|
|
|
-// sellOrder.setSellCost(goods.getDiscountPrice());
|
|
|
-// sellOrder.setSellCost2(goods.getAgreeCostPrice());
|
|
|
-// sellOrder.setNum(1);
|
|
|
-// sellOrder.setUserId(studentPaymentOrder.getUserId());
|
|
|
-// sellOrder.setPaymentChannel(studentPaymentOrder.getPaymentChannel());
|
|
|
-// sellOrder.setMerNo(studentPaymentOrder.getMerNos());
|
|
|
-// sellOrder.setSellTime(studentPaymentOrder.getCreateTime());
|
|
|
-// sellOrder.setCreateIme(new Date());
|
|
|
-// sellOrder.setUpdateTime(new Date());
|
|
|
-// if (goods.getType().equals(GoodsType.INSTRUMENT)) {
|
|
|
-// sellOrder.setType(SellTypeEnum.INSTRUMENT);
|
|
|
-// } else if (goods.getType().equals(GoodsType.ACCESSORIES)) {
|
|
|
-// sellOrder.setType(SellTypeEnum.ACCESSORIES);
|
|
|
-// } else {
|
|
|
-// sellOrder.setType(SellTypeEnum.OTHER);
|
|
|
-// }
|
|
|
-// sellOrders.add(sellOrder);
|
|
|
-// });
|
|
|
-//
|
|
|
-// sellOrderDao.batchInsert(sellOrders);
|
|
|
-// }
|
|
|
+ if (studentPaymentRouteOrderDto.getGoodies() != null && studentPaymentRouteOrderDto.getGoodies().size() > 0) {
|
|
|
+ List<SellOrder> sellOrders = new ArrayList<>();
|
|
|
+ BigDecimal hasRouteAmount = BigDecimal.ZERO;
|
|
|
+ BigDecimal goodsTotalPrice = BigDecimal.ZERO;
|
|
|
+
|
|
|
+ for (Map.Entry<Integer, Integer> goodsMap : studentPaymentRouteOrderDto.getGoodies().entrySet()) {
|
|
|
+ Goods goods = goodsDao.get(goodsMap.getKey());
|
|
|
+ goodsTotalPrice = goodsTotalPrice.add(goods.getGroupPurchasePrice().multiply(new BigDecimal(goodsMap.getValue())));
|
|
|
+ }
|
|
|
+
|
|
|
+ int i = 1;
|
|
|
+ for (Map.Entry<Integer, Integer> goodsMap : studentPaymentRouteOrderDto.getGoodies().entrySet()) {
|
|
|
+ Goods goods = goodsDao.get(goodsMap.getKey());
|
|
|
+
|
|
|
+ BigDecimal actualAmount = studentPaymentRouteOrderDto.getActualAmount().multiply(goods.getGroupPurchasePrice().multiply(new BigDecimal(goodsMap.getValue()))).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ if (i == studentPaymentRouteOrderDto.getGoodies().size()) {
|
|
|
+ actualAmount = studentPaymentRouteOrderDto.getActualAmount().subtract(hasRouteAmount);
|
|
|
+ }
|
|
|
+ hasRouteAmount = hasRouteAmount.add(actualAmount);
|
|
|
+ i++;
|
|
|
+
|
|
|
+ SellOrder sellOrder = new SellOrder();
|
|
|
+ sellOrder.setOrganId(studentPaymentRouteOrderDto.getOrganId());
|
|
|
+ sellOrder.setSchoolId(studentPaymentRouteOrderDto.getSchoolId());
|
|
|
+ sellOrder.setTransNo(studentPaymentRouteOrderDto.getTransNo());
|
|
|
+ sellOrder.setOrderId(studentPaymentRouteOrderDto.getId());
|
|
|
+ sellOrder.setOrderNo(orderNo);
|
|
|
+ sellOrder.setActualAmount(actualAmount);
|
|
|
+ sellOrder.setBalanceAmount(BigDecimal.ZERO);
|
|
|
+ sellOrder.setExpectAmount(actualAmount);
|
|
|
+ sellOrder.setSellCost(goods.getDiscountPrice().multiply(new BigDecimal(goodsMap.getValue())));
|
|
|
+ sellOrder.setSellCost2(goods.getAgreeCostPrice().multiply(new BigDecimal(goodsMap.getValue())));
|
|
|
+ sellOrder.setNum(goodsMap.getValue());
|
|
|
+ sellOrder.setUserId(studentPaymentRouteOrderDto.getUserId());
|
|
|
+ sellOrder.setPaymentChannel(studentPaymentRouteOrderDto.getPaymentChannel());
|
|
|
+ sellOrder.setMerNo(studentPaymentRouteOrderDto.getMerNos());
|
|
|
+ sellOrder.setSellTime(studentPaymentRouteOrderDto.getCreateTime());
|
|
|
+ sellOrder.setCreateIme(new Date());
|
|
|
+ sellOrder.setUpdateTime(new Date());
|
|
|
+ if (goods.getType().equals(GoodsType.INSTRUMENT)) {
|
|
|
+ sellOrder.setType(SellTypeEnum.INSTRUMENT);
|
|
|
+ } else if (goods.getType().equals(GoodsType.ACCESSORIES)) {
|
|
|
+ sellOrder.setType(SellTypeEnum.ACCESSORIES);
|
|
|
+ } else {
|
|
|
+ sellOrder.setType(SellTypeEnum.OTHER);
|
|
|
+ }
|
|
|
+ sellOrders.add(sellOrder);
|
|
|
+
|
|
|
+ }
|
|
|
+ sellOrderDao.batchInsert(sellOrders);
|
|
|
+ }
|
|
|
return studentPaymentRouteOrderDto;
|
|
|
}
|
|
|
|