Browse Source

Merge branch 'sell_order' of http://git.dayaedu.com/yonge/mec

zouxuan 4 years ago
parent
commit
0021bf43c0

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ReplacementInstrumentActivityServiceImpl.java

@@ -324,6 +324,7 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
 
         String orderNo = idGeneratorService.generatorId("payment") + "";
 
+        studentPaymentOrder.setExpectAmount(amount.add(balance));
         studentPaymentOrder.setPaymentChannel("BALANCE");
         studentPaymentOrder.setUserId(userId);
         studentPaymentOrder.setGroupType(GroupType.REPLACEMENT);
@@ -554,6 +555,7 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
             sellOrder.setActualAmount(sellOrderExpectAmount.subtract(sellOrderBalance));
             sellOrder.setBalanceAmount(sellOrderBalance);
             sellOrder.setExpectAmount(sellOrderExpectAmount);
+            sellOrder.setCouponRemitAmount(groupPurchasePriceMap.get(sellOrder.getGoodsId()).subtract(sellOrderExpectAmount));
             sellOrder.setNum(1);
             sellOrder.setUserId(order.getUserId());
             sellOrder.setPaymentChannel(order.getPaymentChannel());

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SellOrderServiceImpl.java

@@ -178,7 +178,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
                 hasRouteSellOrderBalance = hasRouteSellOrderBalance.add(sellOrderBalance);
                 hasRouteCouponBalance = hasRouteCouponBalance.add(sellOrderCouponBalance);
 
-                sellOrder.setExpectAmount(sellOrderActualAmount.add(sellOrderBalance).add(sellOrderCouponBalance));
+                sellOrder.setExpectAmount(sellOrderActualAmount.add(sellOrderBalance));
                 sellOrder.setBalanceAmount(sellOrderBalance);
                 sellOrder.setCouponRemitAmount(sellOrderCouponBalance);
                 sellOrder.setActualAmount(sellOrderActualAmount);
@@ -304,6 +304,7 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
                     sellOrder.setActualAmount(sellOrderExpectAmount.subtract(sellOrderBalance));
                     sellOrder.setBalanceAmount(sellOrderBalance);
                     sellOrder.setExpectAmount(sellOrderExpectAmount);
+                    sellOrder.setCouponRemitAmount(goods.getGroupPurchasePrice().subtract(sellOrderExpectAmount));
                     sellOrder.setNum(1);
                     sellOrder.setUserId(studentPaymentOrder.getUserId());
                     sellOrder.setPaymentChannel(studentPaymentOrder.getPaymentChannel());

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -1013,6 +1013,28 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             sellOrder.setCooperationOrganId(studentGoodsSell.getCooperationOrganId());
         }
         if (sellOrderList.size() > 0) {
+            //如果有优惠券金额
+            BigDecimal couponMarketAmount = studentGoodsSell.getCouponMarketAmount();
+            if (couponMarketAmount.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 = couponMarketAmount;
+                for (int i = 0; i < sellOrders.size(); i++) {
+                    SellOrder sellOrder = sellOrders.get(i);
+                    //如果是最后一件商品
+                    if (i == sellOrders.size() - 1) {
+                        sellOrder.setCouponRemitAmount(couponMarketAmount.subtract(subCouponMarketAmount));
+                    } else {
+                        //获取比例
+                        BigDecimal ratioAmount = sellOrder.getExpectAmount().divide(reduce, 6, BigDecimal.ROUND_HALF_UP);
+                        //获取分配的减免金额
+                        BigDecimal multiply = couponMarketAmount.multiply(ratioAmount).setScale(2, BigDecimal.ROUND_HALF_UP);
+                        subCouponMarketAmount = subCouponMarketAmount.subtract(multiply);
+                        sellOrder.setCouponRemitAmount(multiply);
+                    }
+                }
+            }
             sellOrderService.batchInsert(sellOrderList);
         }
     }