| 
					
				 | 
			
			
				@@ -19,6 +19,7 @@ import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.event.source.GroupEventSource; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.enums.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -75,21 +76,6 @@ import com.ym.mec.biz.dal.entity.Subject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.SubjectChange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.SysUserCashAccount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.CourseStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.DealStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.GoodsType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.GroupType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.MessageTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.OrderTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.PaymentStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.enums.YesOrNoEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.dal.BaseDAO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.entity.HttpResponseResult; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -288,7 +274,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (musicGroup.getStatus() == MusicGroupStatusEnum.AUDIT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Set<Integer> roleIds = new HashSet<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             roleIds.add(SysUserRole.SECTION_MANAGER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(),musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 保存乐团付费主体列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //批量新增 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -420,6 +406,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             student.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             student.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             student.setIsNewUser(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            student.setCurrentGradeNum(studentPreRegistration.getCurrentGradeNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            student.setCurrentClass(studentPreRegistration.getCurrentClass()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             studentDao.insert(student); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -427,6 +415,23 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPreRegistration.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPreRegistration.setUserId(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Organization organization = organizationDao.get(musicGroup.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(organization.getGradeType().equals(GradeTypeEnum.SIX_PLUS)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (SixPlusGradeEnum value : SixPlusGradeEnum.values()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(value.getCode().equals(studentPreRegistration.getCurrentGradeNum())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPreRegistration.setCurrentGrade(value.getDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (FivePlusGradeEnum value : FivePlusGradeEnum.values()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(value.getCode().equals(studentPreRegistration.getCurrentGradeNum())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPreRegistration.setCurrentGrade(value.getDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPreRegistrationDao.insert(studentPreRegistration); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 添加成员 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -641,9 +646,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取课程价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal courseFee = musicOneSubjectClassPlan.getFee() == null ? BigDecimal.ZERO : musicOneSubjectClassPlan.getFee(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (studentRegistration.getTemporaryCourseFee() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            courseFee = studentRegistration.getTemporaryCourseFee(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         orderAmount = orderAmount.add(courseFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal remitFee = BigDecimal.ZERO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -652,102 +654,31 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //乐器及打包辅件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (studentRegistration.getTemporaryCourseFee() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.findUserApplyOrder(studentRegistration.getUserId(), studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (StudentPaymentOrderDetail orderDetail : orderDetails) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (orderDetail == null || orderDetail.getPrice() == null || orderDetail.getGoodsIdList() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                MusicGroupSubjectGoodsGroup musicGroupSubjectGoodsGroup = new MusicGroupSubjectGoodsGroup(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                GoodsType goodsType = orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) ? GoodsType.INSTRUMENT : GoodsType.ACCESSORIES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setType(goodsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setGoodsIdList(orderDetail.getGoodsIdList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setPrice(orderDetail.getPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setKitGroupPurchaseType(orderDetail.getKitGroupPurchaseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goodsGroups.add(musicGroupSubjectGoodsGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(orderDetail.getPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (StringUtils.isNoneBlank(registerPayDto.getGoodsGroupIds())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(registerPayDto.getGoodsGroupIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    goodsGroup.setPrice(musicOneSubjectClassPlan.getDepositFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.FREE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    goodsGroup.setPrice(new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(goodsGroup.getPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //团购乐器减免课程费用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && goodsGroup.getRemissionCourseFee() != null && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.GROUP)) {//团购 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    orderAmount = orderAmount.subtract(goodsGroup.getRemissionCourseFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    courseFee = courseFee.subtract(goodsGroup.getRemissionCourseFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(Object::toString).collect(Collectors.joining(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (!groupType.containsKey(kitGroupPurchaseType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        throw new BizException("乐器提供方式不存在,请核查"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (!kitGroupPurchaseType.equals("GROUP")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        remitCourseRFeeFlag = goodsGroup.getGroupRemissionCourseFee().equals(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    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())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            orderAmount = orderAmount.subtract(remitFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //单独辅件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Goods> goodsList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (registerPayDto.getGoodsIds() != null && !registerPayDto.getGoodsIds().equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            goodsList = goodsService.findGoodsByIds(registerPayDto.getGoodsIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (Goods goods : goodsList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(goods.getGroupPurchasePrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //单独教谱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Goods> otherGoodsList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (registerPayDto.getOtherGoodsIds() != null && !registerPayDto.getOtherGoodsIds().equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            otherGoodsList = goodsService.findGoodsByIds(registerPayDto.getOtherGoodsIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (Goods goods : otherGoodsList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(goods.getGroupPurchasePrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //可选课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<CourseFormDto> courseForms = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (registerPayDto.getCourseKeys() != null && registerPayDto.getCourseKeys().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (musicGroup.getCourseForm() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new BizException("可选课程不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            JSONObject courseForm = JSON.parseObject(musicGroup.getCourseForm()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (String courseKey : registerPayDto.getCourseKeys()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (courseForm.get(courseKey) == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new BizException("可选课程不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!groupType.containsKey(kitGroupPurchaseType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new BizException("乐器提供方式不存在,请核查"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                CourseFormDto courseFormDto = new CourseFormDto(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                JSONObject jsonObject = JSON.parseObject(courseForm.getString(courseKey)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(jsonObject.getBigDecimal("value")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                courseFormDto.setType(courseKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                courseFormDto.setPrice(jsonObject.getBigDecimal("value")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                courseForms.add(courseFormDto); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!kitGroupPurchaseType.equals("GROUP")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    remitCourseRFeeFlag = goodsGroup.getGroupRemissionCourseFee().equals(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        orderAmount = orderAmount.subtract(remitFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //新课程形态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<MusicGroupPaymentCalenderCourseSettings> newCourses = new ArrayList<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -761,6 +692,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 orderAmount = orderAmount.add(calenderCourseSetting.getCourseCurrentPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //乐器保养 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(registerPayDto.getBuyMaintenance()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            orderAmount = orderAmount.add(new BigDecimal(400)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (amount.compareTo(orderAmount) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("商品价格不符"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -773,7 +708,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String channelType = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, amount, orderNo, channelType, courseFee, goodsGroups, goodsList, otherGoodsList, courseForms, remitFee, courseRemitFee, newCourses); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.addOrder(studentRegistration, amount, orderNo, channelType, courseFee, goodsGroups, remitFee, courseRemitFee, newCourses,registerPayDto.getBuyMaintenance()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setVersion(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date date = new Date(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -861,9 +796,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取课程价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal courseFee = musicOneSubjectClassPlan.getFee() == null ? BigDecimal.ZERO : musicOneSubjectClassPlan.getFee(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (studentRegistration.getTemporaryCourseFee() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            courseFee = studentRegistration.getTemporaryCourseFee(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         orderAmount = orderAmount.add(courseFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal remitFee = BigDecimal.ZERO; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -873,100 +805,29 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //乐器及打包辅件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (studentRegistration.getTemporaryCourseFee() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.findUserApplyOrder(studentRegistration.getUserId(), studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (StudentPaymentOrderDetail orderDetail : orderDetails) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (orderDetail == null || orderDetail.getPrice() == null || orderDetail.getGoodsIdList() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                MusicGroupSubjectGoodsGroup musicGroupSubjectGoodsGroup = new MusicGroupSubjectGoodsGroup(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                GoodsType goodsType = orderDetail.getType().equals(OrderDetailTypeEnum.MUSICAL) ? GoodsType.INSTRUMENT : GoodsType.ACCESSORIES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setType(goodsType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setGoodsIdList(orderDetail.getGoodsIdList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setPrice(orderDetail.getPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupSubjectGoodsGroup.setKitGroupPurchaseType(orderDetail.getKitGroupPurchaseType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goodsGroups.add(musicGroupSubjectGoodsGroup); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(orderDetail.getPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (StringUtils.isNoneBlank(registerPayDto.getGoodsGroupIds())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(registerPayDto.getGoodsGroupIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    goodsGroup.setPrice(musicOneSubjectClassPlan.getDepositFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.FREE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    goodsGroup.setPrice(new BigDecimal(0)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(goodsGroup.getPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //团购乐器减免课程费用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && goodsGroup.getRemissionCourseFee() != null && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.GROUP)) {//团购 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    orderAmount = orderAmount.subtract(goodsGroup.getRemissionCourseFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    courseFee = courseFee.subtract(goodsGroup.getRemissionCourseFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(Object::toString).collect(Collectors.joining(",")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (!groupType.containsKey(kitGroupPurchaseType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        throw new BizException("乐器提供方式不存在,请核查"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (!kitGroupPurchaseType.equals("GROUP")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        remitCourseRFeeFlag = goodsGroup.getGroupRemissionCourseFee().equals(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    remitFee = groupType.get(kitGroupPurchaseType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(goodsGroup.getPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            orderAmount = orderAmount.subtract(remitFee).subtract(courseRemitFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //单独辅件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Goods> goodsList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (registerPayDto.getGoodsIds() != null && !registerPayDto.getGoodsIds().equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            goodsList = goodsService.findGoodsByIds(registerPayDto.getGoodsIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (Goods goods : goodsList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(goods.getGroupPurchasePrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //单独教谱 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Goods> otherGoodsList = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (registerPayDto.getOtherGoodsIds() != null && !registerPayDto.getOtherGoodsIds().equals("")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            otherGoodsList = goodsService.findGoodsByIds(registerPayDto.getOtherGoodsIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (Goods goods : otherGoodsList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(goods.getGroupPurchasePrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //可选课程 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<CourseFormDto> courseForms = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (registerPayDto.getCourseKeys() != null && registerPayDto.getCourseKeys().size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (musicGroup.getCourseForm() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new BizException("可选课程不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            JSONObject courseForm = JSON.parseObject(musicGroup.getCourseForm()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (String courseKey : registerPayDto.getCourseKeys()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (courseForm.get(courseKey) == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    throw new BizException("可选课程不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!groupType.containsKey(kitGroupPurchaseType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new BizException("乐器提供方式不存在,请核查"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                CourseFormDto courseFormDto = new CourseFormDto(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                JSONObject jsonObject = JSON.parseObject(courseForm.getString(courseKey)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                orderAmount = orderAmount.add(jsonObject.getBigDecimal("value")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                courseFormDto.setType(courseKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                courseFormDto.setPrice(jsonObject.getBigDecimal("value")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                courseForms.add(courseFormDto); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!kitGroupPurchaseType.equals("GROUP")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    remitCourseRFeeFlag = goodsGroup.getGroupRemissionCourseFee().equals(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                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())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //新课程形态 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -982,6 +843,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(registerPayDto.getBuyMaintenance()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            orderAmount = orderAmount.add(new BigDecimal(400)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (amount.compareTo(orderAmount) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("商品价格不符"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -994,7 +859,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String channelType = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.reAddOrder(userId, amount, orderNo, channelType, courseFee, goodsGroups, goodsList, otherGoodsList, studentRegistration.getMusicGroupId(), ApplyOrder, courseForms, remitFee, courseRemitFee, newCourses); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StudentPaymentOrder studentPaymentOrder = studentRegistrationService.reAddOrder(userId, amount, orderNo, channelType, courseFee, goodsGroups, studentRegistration.getMusicGroupId(), ApplyOrder, remitFee, courseRemitFee, newCourses,registerPayDto.getBuyMaintenance()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setVersion(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1134,7 +999,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Set<Integer> roleIds = new HashSet<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         roleIds.add(SysUserRole.SECTION_MANAGER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(),musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1240,7 +1105,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Set<Integer> roleIds = new HashSet<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         roleIds.add(SysUserRole.SECTION_MANAGER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(),musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getRealName(), musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1299,9 +1164,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Set<Integer> roleIds = new HashSet<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_ADJUST_SUCCESS, "",musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_ADJUST_SUCCESS, "", musicGroup.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, String> map = new HashMap<>(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        map.put(musicGroup.getEducationalTeacherId(),musicGroup.getEducationalTeacherId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        map.put(musicGroup.getEducationalTeacherId(), musicGroup.getEducationalTeacherId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (map != null && map.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_ADJUST_SUCCESS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     map, null, 0, null, "SYSTEM", musicGroup.getName()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2163,7 +2028,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (oldStudentPaymentOrder != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (oldStudentPaymentOrder.getStatus() == SUCCESS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw new BizException("您已支付请勿重复提交"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }else if(oldStudentPaymentOrder.getStatus() == ING){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else if (oldStudentPaymentOrder.getStatus() == ING) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     oldStudentPaymentOrder.setStatus(CLOSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     studentPaymentOrderService.update(oldStudentPaymentOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (oldStudentPaymentOrder.getBalancePaymentAmount() != null && oldStudentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) { 
			 |