瀏覽代碼

Merge branch 'system_fee' into apply_multi_order

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
yonge 4 年之前
父節點
當前提交
c30063bce8

+ 0 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -290,14 +290,6 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @param musicGroupId
      * @return
      */
-    List<Integer> queryNormalUser(String musicGroupId);
-
-    /**
-     * 获取乐团在读人数
-     *
-     * @param musicGroupId
-     * @return
-     */
     List<Integer> queryNormalUserList(String musicGroupId);
 
     /**

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -180,6 +180,17 @@ public class MusicGroup {
 
 	private Boolean hasVerifyMusicalList = false;
 
+	//0云教练1云教练+
+	private Integer cloudTeacherType;
+
+	public Integer getCloudTeacherType() {
+		return cloudTeacherType;
+	}
+
+	public void setCloudTeacherType(Integer cloudTeacherType) {
+		this.cloudTeacherType = cloudTeacherType;
+	}
+
 	@ApiModelProperty(value = "进行中,缴费按钮控制",required = true)
 	private Boolean isRemedy = false;
 

+ 13 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSchoolTermCourseDetailServiceImpl.java

@@ -2,10 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentMemberCourseDetail;
-import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermCourseDetail;
-import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermStudentCourseDetail;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.MusicGroupSchoolTermCourseDetailService;
@@ -56,6 +53,8 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 	private TeacherDao teacherDao;
 	@Autowired
 	private StudentDao studentDao;
+	@Autowired
+	private MemberRankSettingDao memberRankSettingDao;
 
 	@Override
 	public BaseDAO<Integer, MusicGroupSchoolTermCourseDetail> getDAO() {
@@ -142,7 +141,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 				studentCourseDetail.setMusicGroupSchoolTermCourseDetailId(courseDetail.getId());
 				studentCourseDetail.setMemberCourseMinutes(courseDetail.getTotalCourseTime());
 				//获取乐团所有在读学员
-				List<Integer> studentIds = studentRegistrationDao.queryNormalUser(musicGroupId);
+				List<Integer> studentIds = studentRegistrationDao.queryNormalUserList(musicGroupId);
 				if(studentIds == null || studentIds.size() == 0){
 					throw new BizException("操作失败:该乐团没有在读学员");
 				}
@@ -187,6 +186,11 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 						musicGroup.getName());
 			}
 		}
+		String memberName = "黄金会员";
+		MemberRankSetting memberRankSetting = memberRankSettingDao.get(1);
+		if(memberRankSetting != null){
+			memberName = memberRankSetting.getName();
+		}
 		//会员结束前15天提醒学员续费
 		String pushMemberRenew = sysConfigDao.findConfigValue(SysConfigService.PUSH_MEMBER_RENEW);
 		if(StringUtils.isEmpty(pushMemberRenew)){
@@ -207,7 +211,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					null,
 					0,
 					null,
-					null,pushMemberRenew);
+					null,memberName,pushMemberRenew);
 
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
 					MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
@@ -215,7 +219,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					null,
 					0,
 					null,
-					"STUDENT",pushMemberRenew);
+					"STUDENT",memberName,pushMemberRenew);
 		}
 		//会员结束前15天提醒学员续费
 		String pushMemberRenewAgain = sysConfigDao.findConfigValue(SysConfigService.PUSH_MEMBER_RENEW_AGAIN);
@@ -237,7 +241,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					null,
 					0,
 					null,
-					null,pushMemberRenewAgain);
+					null,memberName,pushMemberRenewAgain);
 
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
 					MessageTypeEnum.STUDENT_MEMBER_RENEW_MESSAGE,
@@ -245,7 +249,7 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 					null,
 					0,
 					null,
-					"STUDENT",pushMemberRenewAgain);
+					"STUDENT",memberName,pushMemberRenewAgain);
 		}
 	}
 

+ 79 - 68
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -730,10 +730,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         CloudTeacherOrder cloudTeacherOrder = null;
         //云教练/云教练+
         if (registerPayDto.getBuyCloudTeacher() || registerPayDto.getBuyCloudTeacherPlus()) {
-            
-            BigDecimal cloudTeacherPrice = musicGroupRegCalender.getMemberPaymentAmount();
-            //OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
-            //BigDecimal cloudTeacherPrice = registerPayDto.getBuyCloudTeacher() ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
+            BigDecimal cloudTeacherPrice = BigDecimal.ZERO;
+			if (musicGroupRegCalender.getMemberRankSettingId() != null) {
+				cloudTeacherPrice = musicGroupRegCalender.getMemberPaymentAmount();
+			} else {
+				if (musicGroup.getCloudTeacherType() != null) {
+					OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
+					cloudTeacherPrice = musicGroup.getCloudTeacherType() == 0 ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
+				}
+			}
             
             orderAmount = orderAmount.add(cloudTeacherPrice);
             studentRegistration.setHasCloudTeacher(1);
@@ -743,12 +748,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             cloudTeacherOrder = new CloudTeacherOrder();
 
     		cloudTeacherOrder.setType(2);//月
-			cloudTeacherOrder.setTime(musicGroupRegCalender.getMemberValidDate());
+			cloudTeacherOrder.setTime(musicGroupRegCalender.getMemberValidDate() == null ? 6 : musicGroupRegCalender.getMemberValidDate());
     		
     		cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
     		cloudTeacherOrder.setStudentId(studentRegistration.getUserId());
-    		cloudTeacherOrder.setLevel(musicGroupRegCalender.getMemberRankSettingId());
-    		cloudTeacherOrder.setAmount(musicGroupRegCalender.getMemberPaymentAmount());
+    		cloudTeacherOrder.setLevel(musicGroupRegCalender.getMemberRankSettingId() == null ? 1 : musicGroupRegCalender.getMemberRankSettingId());
+    		cloudTeacherOrder.setAmount(cloudTeacherPrice);
     		cloudTeacherOrder.setStatus(0);
         }
 
@@ -959,9 +964,15 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //云教练/云教练+
         if (registerPayDto.getBuyCloudTeacher() || registerPayDto.getBuyCloudTeacherPlus()) {
         	
-            BigDecimal cloudTeacherPrice = musicGroupRegCalender.getMemberPaymentAmount();
-            //OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
-            //BigDecimal cloudTeacherPrice = registerPayDto.getBuyCloudTeacher() ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
+            BigDecimal cloudTeacherPrice = BigDecimal.ZERO;
+			if (musicGroupRegCalender.getMemberRankSettingId() != null) {
+				cloudTeacherPrice = musicGroupRegCalender.getMemberPaymentAmount();
+			} else {
+				if (musicGroup.getCloudTeacherType() != null) {
+					OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
+					cloudTeacherPrice = musicGroup.getCloudTeacherType() == 0 ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
+				}
+			}
             
             orderAmount = orderAmount.add(cloudTeacherPrice);
             studentRegistration.setHasCloudTeacher(1);
@@ -971,12 +982,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             cloudTeacherOrder = new CloudTeacherOrder();
 
     		cloudTeacherOrder.setType(2);//月
-			cloudTeacherOrder.setTime(musicGroupRegCalender.getMemberValidDate());
+			cloudTeacherOrder.setTime(musicGroupRegCalender.getMemberValidDate() == null ? 6 : musicGroupRegCalender.getMemberValidDate());
     		
     		cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
     		cloudTeacherOrder.setStudentId(studentRegistration.getUserId());
-    		cloudTeacherOrder.setLevel(musicGroupRegCalender.getMemberRankSettingId());
-    		cloudTeacherOrder.setAmount(musicGroupRegCalender.getMemberPaymentAmount());
+    		cloudTeacherOrder.setLevel(musicGroupRegCalender.getMemberRankSettingId() == null ? 1 : musicGroupRegCalender.getMemberRankSettingId());
+    		cloudTeacherOrder.setAmount(musicGroupRegCalender.getMemberPaymentAmount() == null ? cloudTeacherPrice : musicGroupRegCalender.getMemberPaymentAmount());
     		cloudTeacherOrder.setStatus(0);
         }
 
@@ -1981,6 +1992,32 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
 
             }
+
+            if(isRefundMemberFee){
+                //退云教练费用
+                if (cloudTeacherAmount != null) {
+                    Date nowDate = new Date();
+                    List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
+                    BigDecimal orderAmount = BigDecimal.ZERO;
+                    if(cloudTeacherOrders.size() > 0){
+                        List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
+                        for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
+                            if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
+                                    DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
+                                quitCloudTeacherOrders.add(cloudTeacherOrder);
+                                orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
+                            }
+                        }
+                        cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
+                    }
+                    if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
+                        throw new BizException("云教练退费金额不能大于原始订单金额");
+                    }
+                    amount = amount.add(cloudTeacherAmount);
+                    //清除学员云教练
+                    studentService.cleanMember(userId);
+                }
+            }
             if (currentStudentMusicGroupStatus != StudentMusicGroupStatusEnum.NORMAL) {
                 return true;
             }
@@ -2051,32 +2088,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 }
             }
 
-            if(isRefundMemberFee){
-                //退云教练费用
-                if (cloudTeacherAmount != null) {
-                    Date nowDate = new Date();
-                    List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
-                    BigDecimal orderAmount = BigDecimal.ZERO;
-                    if(cloudTeacherOrders.size() > 0){
-                        List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
-                        for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
-                            if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
-                                    DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
-                                quitCloudTeacherOrders.add(cloudTeacherOrder);
-                                orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
-                            }
-                        }
-                        cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
-                    }
-                    if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
-                        throw new BizException("云教练退费金额不能大于原始订单金额");
-                    }
-                    amount = amount.add(cloudTeacherAmount);
-                    //清除学员云教练
-                    studentService.cleanMember(userId);
-                }
-            }
-
             if (amount.doubleValue() > 0) {
                 // 增加交易流水
                 sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
@@ -2258,6 +2269,31 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             //统计变更学员数
             groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
         }
+        if (isRefundMemberFee){
+            //退云教练费用
+            if (cloudTeacherAmount != null) {
+                Date nowDate = new Date();
+                List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
+                BigDecimal orderAmount = BigDecimal.ZERO;
+                if(cloudTeacherOrders.size() > 0){
+                    List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
+                    for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
+                        if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
+                                DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
+                            quitCloudTeacherOrders.add(cloudTeacherOrder);
+                            orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
+                        }
+                    }
+                    cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
+                }
+                if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
+                    throw new BizException("云教练退费金额不能大于原始订单金额");
+                }
+                amount = amount.add(cloudTeacherAmount);
+                //清除学员云教练
+                studentService.cleanMember(userId);
+            }
+        }
 
         if (currentStudentMusicGroupStatus != StudentMusicGroupStatusEnum.NORMAL) {
             return true;
@@ -2327,32 +2363,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             }
         }
 
-        if (isRefundMemberFee){
-            //退云教练费用
-            if (cloudTeacherAmount != null) {
-                Date nowDate = new Date();
-                List<CloudTeacherOrder> cloudTeacherOrders = cloudTeacherOrderService.getStudentCloudTeacherOrder(userId, musicGroupId);
-                BigDecimal orderAmount = BigDecimal.ZERO;
-                if(cloudTeacherOrders.size() > 0){
-                    List<CloudTeacherOrder> quitCloudTeacherOrders = new ArrayList<>();
-                    for (CloudTeacherOrder cloudTeacherOrder : cloudTeacherOrders) {
-                        if (cloudTeacherOrder.getEndTime() == null || DateUtil.stringToDate(DateUtil.format(cloudTeacherOrder.getEndTime(),DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT).compareTo(
-                                DateUtil.stringToDate(DateUtil.format(nowDate,DateUtil.ISO_EXPANDED_DATE_FORMAT),DateUtil.ISO_EXPANDED_DATE_FORMAT)) >= 0) {
-                            quitCloudTeacherOrders.add(cloudTeacherOrder);
-                            orderAmount = orderAmount.add(cloudTeacherOrder.getAmount());
-                        }
-                    }
-                    cloudTeacherOrderService.quitCloudTeacherOrders(quitCloudTeacherOrders, cloudTeacherAmount);
-                }
-                if (cloudTeacherAmount.compareTo(orderAmount) > 0) {
-                    throw new BizException("云教练退费金额不能大于原始订单金额");
-                }
-                amount = amount.add(cloudTeacherAmount);
-                //清除学员云教练
-                studentService.cleanMember(userId);
-            }
-        }
-
         if (amount.doubleValue() > 0) {
             // 增加交易流水
             sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
@@ -3093,6 +3103,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setPaymentExpireDate(DateUtil.toDate(expireDate));
         musicGroup.setStatus(MusicGroupStatusEnum.PAY);
         musicGroupDao.update(musicGroup);
+        List<Map<Integer, String>> mapList = studentRegistrationDao.findMapByMusicGroupId(musicGroupId, 0);
         //所有人开启缴费
         studentRegistrationDao.musicGroupOpenPay(musicGroupId, PaymentStatusEnum.OPEN);
         MusicGroupPaymentCalender regCalender = musicGroupPaymentCalenderDao.findByMusicGroupRegCalender(musicGroupId);
@@ -3105,12 +3116,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //三方乐团不发送缴费通知
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
             //获取所有已报名学员列表
-            HashMap<Integer, String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findMapByMusicGroupId(musicGroupId, 0))), HashMap.class);
+            HashMap<Integer, String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(mapList)), HashMap.class);
             if (map != null && map.size() > 0) {
                 String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
-                String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
+//                String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
                 sysMessageService.batchSendMessage(MessageSender.AWSMS, MessageTypeEnum.SMS_PAYMENT_MESSAGE,
-                        map, null, 0, "", "", musicGroup.getName(), studentApplyUrl, DateUtil.format(musicGroup.getPaymentExpireDate(), DateUtil.DATE_FORMAT_MIN), serverPhone);
+                        map, null, 0, "", "", musicGroup.getName(), studentApplyUrl);
             }
         }
         Set<Integer> roleIds = new HashSet<>(1);

+ 25 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -27,6 +27,7 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.OrganizationCloudTeacherFee;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.enums.GoodsType;
@@ -107,6 +108,10 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     @Override
     public MusicGroupSubjectGoodsAndInfoDto getSubjectGoodsAndInfo(String musicGroupId, Integer subjectId) {
         MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+        
+        if(musicGroup == null){
+        	throw new BizException("乐团信息查询失败");
+        }
 
         //课程形态
         Map<String, Object> courseForm = JSON.parseObject(musicGroup.getCourseForm(), Map.class);
@@ -144,14 +149,26 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
         musicGroupSubjectGoodsAndInfo.setMusicGroupPaymentCalender(musicGroupRegCalender);
         musicGroupSubjectGoodsAndInfo.setMusicGroupSubjectGoodsGroupList(goodsGroups);
         musicGroupSubjectGoodsAndInfo.setMusicGroup(musicGroup);
-        if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE)) {
-        	musicGroupSubjectGoodsAndInfo.setCloudTeacherFee(musicGroupRegCalender.getMemberPaymentAmount());
-            /*OrganizationCloudTeacherFee cloudTeacherFee = organizationCloudTeacherFeeDao.getByOrganId(musicGroup.getOrganId());
-            musicGroupSubjectGoodsAndInfo.setCloudTeacherPlusFee(cloudTeacherFee.getPlusPrice());*/
-            if(musicGroupRegCalender != null) {
-            	musicGroupSubjectGoodsAndInfo.setMemberPrivilegesItemList(memberRankPrivilegesService.queryByMemberRankId(musicGroupRegCalender.getMemberRankSettingId()));
-            }
-        }
+		if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE) || musicGroup.getCloudTeacherType() != null) {
+			// 历史数据
+			if (musicGroup.getCloudTeacherType() != null) {
+				OrganizationCloudTeacherFee cloudTeacherFee = organizationCloudTeacherFeeDao.getByOrganId(musicGroup.getOrganId());
+				if (musicGroup.getCloudTeacherType() == 0) {
+					musicGroupSubjectGoodsAndInfo.setCloudTeacherFee(cloudTeacherFee.getPrice());
+				} else if (musicGroup.getCloudTeacherType() == 1) {
+					musicGroupSubjectGoodsAndInfo.setCloudTeacherFee(cloudTeacherFee.getPlusPrice());
+				}
+			} else {
+				musicGroupSubjectGoodsAndInfo.setCloudTeacherFee(musicGroupRegCalender.getMemberPaymentAmount());
+			}
+
+			if (musicGroupRegCalender != null && musicGroupRegCalender.getMemberRankSettingId() != null) {
+				musicGroupSubjectGoodsAndInfo.setMemberPrivilegesItemList(memberRankPrivilegesService.queryByMemberRankId(musicGroupRegCalender
+						.getMemberRankSettingId()));
+			} else{
+				musicGroupSubjectGoodsAndInfo.setMemberPrivilegesItemList(memberRankPrivilegesService.queryByMemberRankId(1));
+			}
+		}
         return musicGroupSubjectGoodsAndInfo;
     }
 

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

@@ -488,16 +488,25 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             maintenanceOrderDetail.setIsRenew(0);
             studentPaymentOrderDetailList.add(maintenanceOrderDetail);
         }
+
+        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+        
         //云教练/云教练+
         if (buyCloudTeacher || buyCloudTeacherPlus) {
-            // OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
-            // BigDecimal cloudTeacherPrice = buyCloudTeacher ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
-            
-            MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderDao.getMusicGroupRegCalender(studentRegistration.getMusicGroupId());
-            if(musicGroupRegCalender == null){
-            	throw new BizException("缴费信息不存在");
-            }
-            BigDecimal cloudTeacherPrice = musicGroupRegCalender.getMemberPaymentAmount();
+        	
+        	BigDecimal cloudTeacherPrice = BigDecimal.ZERO;
+        	
+        	if(musicGroup.getCloudTeacherType() != null){
+        		OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
+                cloudTeacherPrice = musicGroup.getCloudTeacherType() == 0 ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
+        	}else {
+        		MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderDao.getMusicGroupRegCalender(studentRegistration.getMusicGroupId());
+                if(musicGroupRegCalender == null){
+                	throw new BizException("缴费信息不存在");
+                }
+                
+                cloudTeacherPrice = musicGroupRegCalender.getMemberPaymentAmount();
+        	}
             
             OrderDetailTypeEnum orderDetailTypeEnum = OrderDetailTypeEnum.CLOUD_TEACHER;
             StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
@@ -512,8 +521,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
         studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
 
-        MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
-
         //增加缴费学生数,0元订单不增加报名人数(没买云教练/云教练+的)
         boolean paidZeroFlag = false;
         boolean firstPaidZeroFlag = false;
@@ -1403,7 +1410,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                     receivers.put(e.getUserId(), e.getParentsPhone());
                 });
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
-                        MessageTypeEnum.STUDENT_SMS_OPEN_PAYMENT, receivers, null, 0, null, "",
+                        MessageTypeEnum.SMS_PAYMENT_MESSAGE, receivers, null, 0, null, "",
                         musicGroup.getName(), HttpUtil.getSortUrl(configValue + musicGroup.getId()));
             }
         }

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/MemberRankSettingMapper.xml

@@ -25,6 +25,11 @@
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="MemberRankSetting">
 		SELECT * FROM member_rank_setting
+		<where>
+			<if test="isDefault != null">
+				is_default_ = #{isDefault}
+			</if>
+		</where>
 	</select>
 	
 	<!-- 向数据库增加一条记录 -->

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -40,6 +40,7 @@
         <result column="payment_valid_end_date_" property="paymentValidEndDate"/>
         <result column="payment_pattern_" property="paymentPattern"/>
         <result column="is_classroom_lessons_" property="isClassroomLessons"/>
+        <result column="cloud_teacher_type_" property="cloudTeacherType"/>
         <result column="course_view_type_" property="courseViewType"
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
@@ -242,10 +243,10 @@
                 </foreach>
             </if>
             <if test="createStartDate!=null">
-                AND date(transaction_teacher_id_) &gt;= #{createStartDate}
+                AND date(create_time_) &gt;= #{createStartDate}
             </if>
             <if test="createEndDate!=null">
-                AND date(transaction_teacher_id_) &lt;= #{createEndDate}
+                AND date(create_time_) &lt;= #{createEndDate}
             </if>
             <if test="billStartDate!=null">
                 AND date(bill_start_date_) &gt;= #{billStartDate}

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -656,7 +656,7 @@
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON cg.music_group_id_ = vg.id_
         LEFT JOIN vip_group_activity vgc ON vgc.id_ = vg.vip_group_activity_id_
-        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.group_status_ != 3
+        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.group_status_ NOT IN (3,7)
         <if test="vipGroupName != null">
             AND vg.name_ LIKE CONCAT('%',#{vipGroupName},'%')
         </if>

+ 0 - 6
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -852,12 +852,6 @@
         AND FIND_IN_SET(sr.music_group_id_, #{musicGroupIds})
         GROUP BY sr.music_group_id_
     </select>
-    <select id="queryNormalUser" resultType="integer">
-        SELECT sr.user_id_
-        FROM student_registration sr
-        WHERE sr.music_group_status_ != 'QUIT'
-        AND sr.music_group_id_ = #{musicGroupIds}
-    </select>
     <select id="queryNormalUserList" resultType="integer">
         SELECT sr.user_id_
         FROM student_registration sr

+ 61 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -4,11 +4,11 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
 import com.ym.mec.biz.dal.dto.StudentVipDouble11Dto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
-import com.ym.mec.biz.dal.entity.Teacher;
-import com.ym.mec.biz.dal.entity.VipGroupCategory;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.biz.service.VipGroupService;
@@ -48,6 +48,8 @@ public class TeacherVipGroupController extends BaseController {
 	private StudentManageService studentManageService;
 	@Autowired
 	private VipGroupCategoryDao vipGroupCategoryDao;
+	@Autowired
+	private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
 
 	@ApiOperation("vip课申请")
 	@PostMapping("/vipGroupApply")
@@ -177,4 +179,61 @@ public class TeacherVipGroupController extends BaseController {
 		return succeed(studentManageService.queryDouble11Students(queryInfo));
 	}
 
+	@ApiOperation(value = "获取六一活动学生列表")
+	@GetMapping("queryChildrenDayStudentList")
+	public Object queryStudentList(StudentManageQueryInfo queryInfo){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		Teacher teacher = teacherDao.get(sysUser.getId());
+		if(Objects.isNull(teacher)){
+			return failed("教师信息不存在");
+		}
+		if(Objects.nonNull(teacher.getTeacherOrganId())){
+			queryInfo.setOrganId(teacher.getTeacherOrganId().toString());
+		}
+		if(StringUtils.isNotBlank(teacher.getFlowOrganRange())){
+			queryInfo.setOrganId(queryInfo.getOrganId()+","+teacher.getFlowOrganRange());
+		}
+		if(StringUtils.isBlank(queryInfo.getOrganId())){
+			return succeed(Collections.EMPTY_LIST);
+		}
+
+		queryInfo.setIsExport(false);
+		return succeed(studentManageService.findStudentsByOrganId(queryInfo));
+	}
+
+	@ApiOperation(value = "创建六一活动vip课")
+	@PostMapping("/createActivityVipGroup")
+	public Object createActivityVipGroup(@RequestBody VipGroupApplyDto vipGroupApplyDto){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setUserId(sysUser.getId());
+		Integer userId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getUserId();
+		Teacher teacher = teacherDao.get(userId);
+		if(Objects.isNull(teacher)){
+			return failed("请指定指导老师!");
+		}
+		Integer firstStudentId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getFirstStudentId();
+		SysUser student = teacherDao.getUser(firstStudentId);
+		if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
+			return failed("学员信息异常");
+		}
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
+		for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
+			courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getSingleClassMinutes()));
+		}
+		VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId());
+		if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
+			vipGroupApplyDto.getVipGroupApplyBaseInfo().setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
+			vipGroupApplyDto.getVipGroupApplyBaseInfo().setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());
+		}
+
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setEducationalTeacherId(sysUser.getId());
+		return vipGroupService.createActivityVipGroup(vipGroupApplyDto);
+	}
+
 }

+ 49 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupActivityController.java

@@ -16,6 +16,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -122,4 +123,52 @@ public class VipGroupActivityController extends BaseController {
         }
     }
 
+    @ApiOperation(value = "获取六一活动方案")
+    @GetMapping("/getChildrenDayActivitys")
+    public Object findByVipGroupCategory(Long categoryId, String studentIds){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("用户信息获取失败");
+        }
+        if(StringUtils.isBlank(studentIds)){
+            return failed("请选择学员");
+        }
+
+        SysConfig activityIdConfig = sysConfigService.findByParamName(SysConfigService.CHILDREN_DAY_VIP_ACTIVITY_IDS);
+        if(Objects.isNull(activityIdConfig)||StringUtils.isBlank(activityIdConfig.getParanValue())){
+            return succeed();
+        }
+
+        Set<Integer> activityIds = Arrays.stream(activityIdConfig.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toSet());
+
+        List<Integer> userIds = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+        List<Student> students = studentDao.findByStudentIds(userIds);
+        if(CollectionUtils.isEmpty(students)||students.size()!=userIds.size()){
+            return failed("学员信息不存在");
+        }
+        long newStudentNum = students.stream().filter(s -> s.getIsNewUser()).count();
+
+        Integer applyToStudentType = -1;
+        if(newStudentNum==0){
+            applyToStudentType = 0;
+        }else if(newStudentNum==userIds.size()){
+            applyToStudentType = 1;
+        }
+
+        SysUser student = teacherDao.getUser(userIds.get(0));
+        if(Objects.isNull(student)){
+            return failed("学员信息不存在");
+        }
+        String organIds = student.getOrganId().toString();
+        List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.findByVipGroupCategory(categoryId, organIds, sysUser.getId(), applyToStudentType, null);
+        Iterator<VipGroupActivity> iterator = vipGroupActivities.iterator();
+        while (iterator.hasNext()){
+            VipGroupActivity vipGroupActivity = iterator.next();
+            if(!activityIds.contains(vipGroupActivity.getId())){
+                iterator.remove();
+            }
+        }
+        return succeed(vipGroupActivities);
+    }
+
 }

+ 2 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupCategoryController.java

@@ -45,7 +45,7 @@ public class VipGroupCategoryController extends BaseController {
 
 	@ApiOperation("全查询")
 	@GetMapping(value = "/queryAll")
-	public Object queryAll(Integer organId) {
+	public Object queryAll(Integer organId, Integer includeMusicTheory) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (Objects.isNull(user)) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
@@ -62,7 +62,7 @@ public class VipGroupCategoryController extends BaseController {
 				return failed("教师信息不存在");
 			}
 			List<VipGroupCategory> result = vipGroupCategoryService.findAllByOrgan(teacher.getTeacherOrganId().toString());
-			if(!CollectionUtils.isEmpty(result)){
+			if(!CollectionUtils.isEmpty(result)&&(Objects.isNull(includeMusicTheory)||includeMusicTheory<=0)){
 				result = result.stream().filter(c->!c.getMusicTheory()).collect(Collectors.toList());
 			}
 			return succeed(result);

+ 4 - 2
mec-web/src/main/java/com/ym/mec/web/controller/MemberRankSettingController.java

@@ -71,7 +71,9 @@ public class MemberRankSettingController extends BaseController {
     @ApiOperation(value = "获取所有会员列表")
     @GetMapping("/findAll")
     @PreAuthorize("@pcs.hasPermissions('memberRankSetting/findAll')")
-    public Object findAll() {
-        return succeed(memberRankSettingService.findAll(new HashMap<>()));
+    public Object findAll(Boolean isDefault) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("isDefault",isDefault);
+        return succeed(memberRankSettingService.findAll(map));
     }
 }

+ 13 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupManageController.java

@@ -3,9 +3,11 @@ package com.ym.mec.web.controller.education;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -35,6 +37,8 @@ public class EduVipGroupManageController extends BaseController {
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private TeacherDao teacherDao;
+    @Autowired
+    private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
 
     @ApiOperation(value = "创建六一活动vip课")
     @PostMapping("/createActivityVipGroup")
@@ -59,6 +63,15 @@ public class EduVipGroupManageController extends BaseController {
         for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
             courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getSingleClassMinutes()));
         }
+
+        if(Objects.nonNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId())){
+            VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId());
+            if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
+                vipGroupApplyDto.getVipGroupApplyBaseInfo().setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
+                vipGroupApplyDto.getVipGroupApplyBaseInfo().setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());
+            }
+        }
+
         vipGroupApplyDto.getVipGroupApplyBaseInfo().setEducationalTeacherId(sysUser.getId());
         return vipGroupService.createActivityVipGroup(vipGroupApplyDto);
     }