yonge 2 vuotta sitten
vanhempi
commit
9f5db41573

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java

@@ -30,7 +30,8 @@ public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum>
     CLOUD_TEACHER("CLOUD_TEACHER","云教练"),
     CLOUD_TEACHER_PLUS("CLOUD_TEACHER_PLUS","云教练"),
     THEORY_COURSE("THEORY_COURSE", "乐理课"),
-    REPAIR("REPAIR", "乐器维修");
+    REPAIR("REPAIR", "乐器维修"),
+    ORGAN_SHARE_PROFIT("ORGAN_SHARE_PROFIT", "分部分润");
 
     private String code;
 

+ 12 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1159,6 +1159,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     }
                 } else {
                     goodsDto.setOrderAmount(goodsDto.getOrderAmount().add(goodsGroup.getPrice()));
+
+                    //分部分润金额
+                    goodsDto.setOrderAmount(goodsDto.getOrderAmount().add(goodsGroup.getOrganShareProfit()));
                 }
             }
             goodsDto.setOrderAmount(goodsDto.getOrderAmount().subtract(goodsDto.getRemitFee()));
@@ -1450,12 +1453,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                         || musicGroupSubjectGoodsGroup.getKitGroupPurchaseTypeJson().equals("{}"))) {
                     throw new BizException(musicGroupSubjectGoodsGroup.getName() + " 请选择提供方式");
                 }
-                if(musicGroupSubjectGoodsGroup.getOrganShareProfit() == null){
-                	throw new BizException("请设置分润金额");
-                }
-                //判断分润是否超过最大值
-                if(maxProfits.compareTo(musicGroupSubjectGoodsGroup.getOrganShareProfit()) < 0){
-                	throw new BizException("超过了分润最大金额[{}],请重新设置分润金额", maxProfits.doubleValue());
+                
+                if(musicGroupSubjectGoodsGroup.getType().equals(GoodsType.INSTRUMENT)){
+                    if(musicGroupSubjectGoodsGroup.getOrganShareProfit() == null){
+                    	throw new BizException("请设置分润金额");
+                    }
+                    //判断分润是否超过最大值
+                    if(maxProfits.compareTo(musicGroupSubjectGoodsGroup.getOrganShareProfit()) < 0){
+                    	throw new BizException("超过了分润最大金额[{}],请重新设置分润金额", maxProfits.doubleValue());
+                    }
                 }
                 
                 if (musicGroupSubjectGoodsGroup.getGroupRemissionCourseFee() == null) {

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

@@ -539,6 +539,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         List<MusicGroupPaymentCalenderCourseSettings> newCourses = goodsDto.getNewCourses();
         BigDecimal remitFee = goodsDto.getRemitFee();
         if (CollectionUtils.isNotEmpty(goodsGroups)) {
+        	
+        	BigDecimal organShareProfit = BigDecimal.ZERO;
+        	
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
                 studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO);
@@ -580,6 +583,22 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 if (OrderDetailTypeEnum.MUSICAL.equals(type)) {
                     maintenanceGoodsId = goodsGroup.getGoodsIdList();
                 }
+                
+                if(goodsGroup.getOrganShareProfit() != null){
+                	organShareProfit = organShareProfit.add(goodsGroup.getOrganShareProfit());
+                }
+            }
+            
+            //分部分润
+            if(organShareProfit.compareTo(BigDecimal.ZERO) > 0) {
+            	StudentPaymentOrderDetail spod = new StudentPaymentOrderDetail();
+                spod.setType(OrderDetailTypeEnum.ORGAN_SHARE_PROFIT);
+                spod.setPrice(organShareProfit);
+                spod.setRemitFee(BigDecimal.ZERO);
+                spod.setCreateTime(date);
+                spod.setUpdateTime(date);
+                spod.setPaymentOrderId(studentPaymentOrder.getId());
+                studentPaymentOrderDetailList.add(spod);
             }
         }