Просмотр исходного кода

修改维修回调添加销售订单

周箭河 5 лет назад
Родитель
Сommit
f2bb126d0a

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.SellOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
@@ -28,6 +29,6 @@ public interface SellOrderService extends BaseService<Integer, SellOrder> {
      * @param studentPaymentOrder
      * @return
      */
-    List<SellOrder> addOrderDetail2SellOrder(List<StudentPaymentOrderDetail> orderDetails, StudentPaymentOrder studentPaymentOrder);
+    List<SellOrder> addOrderDetail2SellOrder(List<StudentPaymentOrderDetail> orderDetails, StudentPaymentOrder studentPaymentOrder, MusicGroup musicGroup);
 
 }

+ 80 - 77
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SellOrderServiceImpl.java

@@ -124,87 +124,90 @@ public class SellOrderServiceImpl extends BaseServiceImpl<Integer, SellOrder> im
     }
 
     @Override
-    public List<SellOrder> addOrderDetail2SellOrder(List<StudentPaymentOrderDetail> orderDetails, StudentPaymentOrder studentPaymentOrder) {
-            List<SellOrder> sellOrders = new ArrayList<>();
-            //总余额支付
-            BigDecimal totalBalance = studentPaymentOrder.getBalancePaymentAmount() != null ? studentPaymentOrder.getBalancePaymentAmount() : BigDecimal.ZERO;
-            //总价格
-            BigDecimal totalPrice = studentPaymentOrder.getExpectAmount();
-            //商品总付款
-            BigDecimal detailTotalPrice = orderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-            //商品销售占的余额
-            BigDecimal detailTotalBalance = detailTotalPrice.compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO :
-                    detailTotalPrice.multiply(totalBalance).divide(totalPrice, 2, BigDecimal.ROUND_HALF_UP);
-
-            int i = 1;
-            BigDecimal detailRouteBalance = BigDecimal.ZERO;
-            for (StudentPaymentOrderDetail orderDetail : orderDetails) {
-
-                BigDecimal detailBalance = orderDetail.getPrice().compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO :
-                        orderDetail.getPrice().multiply(detailTotalBalance).divide(detailTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
-                if (i == orderDetails.size()) {
-                    detailBalance = detailTotalBalance.subtract(detailRouteBalance);
-                }
-                detailRouteBalance = detailRouteBalance.add(detailBalance);
-                i++;
+    public List<SellOrder> addOrderDetail2SellOrder(List<StudentPaymentOrderDetail> orderDetails, StudentPaymentOrder studentPaymentOrder, MusicGroup musicGroup) {
+        List<SellOrder> sellOrders = new ArrayList<>();
+        //总余额支付
+        BigDecimal totalBalance = studentPaymentOrder.getBalancePaymentAmount() != null ? studentPaymentOrder.getBalancePaymentAmount() : BigDecimal.ZERO;
+        //总价格
+        BigDecimal totalPrice = studentPaymentOrder.getExpectAmount();
+        //商品总付款
+        BigDecimal detailTotalPrice = orderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+        //商品销售占的余额
+        BigDecimal detailTotalBalance = detailTotalPrice.compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO :
+                detailTotalPrice.multiply(totalBalance).divide(totalPrice, 2, BigDecimal.ROUND_HALF_UP);
 
-                if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
-                    continue;
-                }
+        int i = 1;
+        BigDecimal detailRouteBalance = BigDecimal.ZERO;
+        for (StudentPaymentOrderDetail orderDetail : orderDetails) {
+
+            BigDecimal detailBalance = orderDetail.getPrice().compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO :
+                    orderDetail.getPrice().multiply(detailTotalBalance).divide(detailTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
+            if (i == orderDetails.size()) {
+                detailBalance = detailTotalBalance.subtract(detailRouteBalance);
+            }
+            detailRouteBalance = detailRouteBalance.add(detailBalance);
+            i++;
+
+            if (orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) && orderDetail.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
+                continue;
+            }
 
-                BigDecimal goodsTotalPrice = orderDetail.getGoodsList().stream().map(Goods::getGroupPurchasePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
-                BigDecimal routePrice = BigDecimal.ZERO;
-                BigDecimal routeBalance = BigDecimal.ZERO;
-                int j = 1;
-                for (Goods goods : orderDetail.getGoodsList()) {
-                    BigDecimal expectAmount = BigDecimal.ZERO;
-                    BigDecimal balance = BigDecimal.ZERO;
-                    if (goodsTotalPrice.compareTo(BigDecimal.ZERO) > 0) {
-                        expectAmount = goods.getGroupPurchasePrice().multiply(orderDetail.getPrice()).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
-                        balance = goods.getGroupPurchasePrice().multiply(detailBalance).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
-                    }
-                    if (j == orderDetail.getGoodsList().size()) {
-                        expectAmount = orderDetail.getPrice().subtract(routePrice);
-                        balance = orderDetail.getPrice().subtract(routeBalance);
-                    }
-                    routePrice = routePrice.add(expectAmount);
-                    routeBalance = routeBalance.add(balance);
-                    j++;
-
-                    SellOrder sellOrder = new SellOrder();
-                    Map<String, BigDecimal> CostMap = new HashMap<>();
-                    CostMap.put("sellCost", goods.getDiscountPrice());
-                    if (goods.getAgreeCostPrice() != null) {
-                        CostMap.put("SellCost2", goods.getAgreeCostPrice());
-                    }
-                    sellOrder.setOrganId(studentPaymentOrder.getOrganId());
-                    sellOrder.setTransNo(studentPaymentOrder.getTransNo());
-                    sellOrder.setOrderId(studentPaymentOrder.getId());
-                    sellOrder.setOrderNo(studentPaymentOrder.getOrderNo());
-                    sellOrder.setActualAmount(expectAmount.subtract(balance));
-                    sellOrder.setBalanceAmount(balance);
-                    sellOrder.setExpectAmount(expectAmount);
-                    sellOrder.setSellCost(goods.getDiscountPrice());
-                    sellOrder.setSellCost2(JSON.toJSONString(CostMap));
-                    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);
+            BigDecimal goodsTotalPrice = orderDetail.getGoodsList().stream().map(Goods::getGroupPurchasePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal routePrice = BigDecimal.ZERO;
+            BigDecimal routeBalance = BigDecimal.ZERO;
+            int j = 1;
+            for (Goods goods : orderDetail.getGoodsList()) {
+                BigDecimal expectAmount = BigDecimal.ZERO;
+                BigDecimal balance = BigDecimal.ZERO;
+                if (goodsTotalPrice.compareTo(BigDecimal.ZERO) > 0) {
+                    expectAmount = goods.getGroupPurchasePrice().multiply(orderDetail.getPrice()).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
+                    balance = goods.getGroupPurchasePrice().multiply(detailBalance).divide(goodsTotalPrice, 2, BigDecimal.ROUND_HALF_UP);
+                }
+                if (j == orderDetail.getGoodsList().size()) {
+                    expectAmount = orderDetail.getPrice().subtract(routePrice);
+                    balance = orderDetail.getPrice().subtract(routeBalance);
+                }
+                routePrice = routePrice.add(expectAmount);
+                routeBalance = routeBalance.add(balance);
+                j++;
+
+                SellOrder sellOrder = new SellOrder();
+                Map<String, BigDecimal> CostMap = new HashMap<>();
+                CostMap.put("sellCost", goods.getDiscountPrice());
+                if (goods.getAgreeCostPrice() != null) {
+                    CostMap.put("SellCost2", goods.getAgreeCostPrice());
+                }
+                sellOrder.setOrganId(studentPaymentOrder.getOrganId());
+                sellOrder.setTransNo(studentPaymentOrder.getTransNo());
+                sellOrder.setOrderId(studentPaymentOrder.getId());
+                if (musicGroup != null) {
+                    sellOrder.setCooperationOrganId(musicGroup.getCooperationOrganId());
                 }
+                sellOrder.setOrderNo(studentPaymentOrder.getOrderNo());
+                sellOrder.setActualAmount(expectAmount.subtract(balance));
+                sellOrder.setBalanceAmount(balance);
+                sellOrder.setExpectAmount(expectAmount);
+                sellOrder.setSellCost(goods.getDiscountPrice());
+                sellOrder.setSellCost2(JSON.toJSONString(CostMap));
+                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);
-            return sellOrders;
+        }
+        sellOrderDao.batchInsert(sellOrders);
+        return sellOrders;
     }
 
 }

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

@@ -898,7 +898,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             //销售订单详情
             List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.getOrderDetail(studentPaymentOrder.getId());
             if (orderDetails.size() > 0) {
-                sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder);
+                sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder,musicGroup);
             }
 
             //三方乐团不发送缴费通知

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

@@ -554,7 +554,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             //销售订单详情
             List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.getOrderDetail(studentPaymentOrder.getId());
             if (orderDetails.size() > 0) {
-                sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder);
+                sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder, null);
             }
         } else if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {