Kaynağa Gözat

update:购买云教练送辅件

yonge 3 yıl önce
ebeveyn
işleme
ec83664db6

+ 26 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -801,10 +801,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee() == null ? BigDecimal.ZERO : musicOneSubjectClassPlan.getFee();
         orderAmount = orderAmount.add(courseFee);
 
-        BigDecimal remitFee = BigDecimal.ZERO;
+        BigDecimal remitFee = BigDecimal.ZERO; //乐器减免金额
         BigDecimal courseRemitFee = BigDecimal.ZERO; //课程减免费用
         boolean remitCourseRFeeFlag = false; //减免课程费用标识
 
+        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+        if(musicGroup == null){
+        	throw new BizException("查询乐团信息失败");
+        }
+
         //乐器及打包辅件
         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
         if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) {
@@ -828,8 +833,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
                 remitFee = groupType.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : groupType.get(kitGroupPurchaseType);
             }
-            orderAmount = orderAmount.add(goodsGroup.getPrice());
             goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
+            
+            if(goodsGroup.getType().equals(GoodsType.ACCESSORIES)){
+            	if((registerPayDto.getBuyCloudTeacher() || registerPayDto.getBuyCloudTeacherPlus()) && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
+            		goodsGroup.setPrice(BigDecimal.ZERO);
+            		continue;
+            	}
+            }
+            orderAmount = orderAmount.add(goodsGroup.getPrice());
         }
         orderAmount = orderAmount.subtract(remitFee);
 
@@ -850,8 +862,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             BigDecimal maintenancePrice = new BigDecimal(sysConfigDao.findConfigValue("maintenance_price"));
             orderAmount = orderAmount.add(maintenancePrice);
         }
-
-        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
         
         studentRegistration.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
         studentRegistration.setOrganId(musicGroup.getOrganId());
@@ -1049,6 +1059,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         BigDecimal courseRemitFee = BigDecimal.ZERO; //课程减免费用
         boolean remitCourseRFeeFlag = false; //减免课程费用标识
 
+        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+        if(musicGroup == null){
+        	throw new BizException("查询乐团信息失败");
+        }
 
         //乐器及打包辅件
         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
@@ -1073,8 +1087,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
                 remitFee = groupType.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : groupType.get(kitGroupPurchaseType);
             }
-            orderAmount = orderAmount.add(goodsGroup.getPrice());
             goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
+            
+            if(goodsGroup.getType().equals(GoodsType.ACCESSORIES)){
+            	if((registerPayDto.getBuyCloudTeacher() || registerPayDto.getBuyCloudTeacherPlus()) && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
+            		goodsGroup.setPrice(BigDecimal.ZERO);
+            		continue;
+            	}
+            }
+            orderAmount = orderAmount.add(goodsGroup.getPrice());
         }
 
         //新课程形态
@@ -1095,8 +1116,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             orderAmount = orderAmount.add(maintenancePrice);
         }
 
-        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
-        
         studentRegistration.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
         studentRegistration.setOrganId(musicGroup.getOrganId());
         studentRegistration.setPayingStatus(1);

+ 2 - 10
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -183,16 +183,8 @@ public class MusicGroupController extends BaseController {
         	List<OrderDetailTypeEnum> typeList = studentPaymentOrderDetailList.stream().map(t -> t.getType()).collect(Collectors.toList());
         	//判断是否所有类型都购买完
 			if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
-				if ((typeList.contains(OrderDetailTypeEnum.MUSICAL) || typeList.contains(OrderDetailTypeEnum.ACCESSORIES))
-						&& typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER)
-						&& (typeList.contains(OrderDetailTypeEnum.COURSE)
-								|| typeList.contains(OrderDetailTypeEnum.HIGH_ONLINE_COURSE) || typeList.contains(OrderDetailTypeEnum.SINGLE)
-								|| typeList.contains(OrderDetailTypeEnum.MIX) || typeList.contains(OrderDetailTypeEnum.HIGH)
-								|| typeList.contains(OrderDetailTypeEnum.VIP) || typeList.contains(OrderDetailTypeEnum.DEMO)
-								|| typeList.contains(OrderDetailTypeEnum.COMPREHENSIVE) || typeList.contains(OrderDetailTypeEnum.ENLIGHTENMENT)
-								|| typeList.contains(OrderDetailTypeEnum.TRAINING_SINGLE) || typeList.contains(OrderDetailTypeEnum.TRAINING_MIX)
-								|| typeList.contains(OrderDetailTypeEnum.HIGH_ONLINE) || typeList.contains(OrderDetailTypeEnum.MUSIC_NETWORK) || typeList
-									.contains(OrderDetailTypeEnum.CLASSROOM))) {
+				if (typeList.contains(OrderDetailTypeEnum.MUSICAL) && typeList.contains(OrderDetailTypeEnum.ACCESSORIES)
+						&& typeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER)) {
 					return failed(HttpStatus.PROCESSING, "您已缴费,请等待乐团开启");
 				}
 			} else {