Ver código fonte

Merge branch 'system_fee' into apply_multi_order

yonge 4 anos atrás
pai
commit
65e5a2e5bb
20 arquivos alterados com 341 adições e 61 exclusões
  1. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java
  3. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/IndexBaseMonthData.java
  6. 23 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MemberRankSetting.java
  7. 21 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicMemberDto.java
  8. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java
  9. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicMemberQueryInfo.java
  10. 13 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  11. 6 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java
  12. 23 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  13. 9 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  14. 89 0
      mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml
  15. 11 5
      mec-biz/src/main/resources/config/mybatis/MemberRankSettingMapper.xml
  16. 20 9
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  17. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  18. 7 4
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  19. 15 0
      mec-web/src/main/java/com/ym/mec/web/controller/MemberRankSettingController.java
  20. 30 22
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1867,6 +1867,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取预排课程列表
+     * @param classGroupIds
+     * @return
+     */
+    int queryPreCourseListByClassGroupIds(@Param("classGroupIds") List<Integer> classGroupIds);
+
+    /**
+     * 获取预排课程列表
      * @param classGroupId
      * @return
      */

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -289,6 +289,20 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
                                                             @Param("endDate") String endDate,
                                                             @Param("organIds") List<Integer> organIds);
 
+    List<IndexBaseMonthData> getTotalAmountDataWithTimelyDetails(@Param("startDate") String startDate,
+                                                                 @Param("endDate") String endDate,
+                                                                 @Param("organIds") List<Integer> organIds,
+                                                                 @Param("orderType") String orderType,
+                                                                 @Param("notOrderType") List<String> notOrderType);
+
+    List<IndexBaseMonthData> getVipAmountDataWithTimelyDetails(@Param("startDate") String startDate,
+                                                                 @Param("endDate") String endDate,
+                                                                 @Param("organIds") List<Integer> organIds);
+
+    List<IndexBaseMonthData> getOtherAmountDataWithTimelyDetails(@Param("startDate") String startDate,
+                                                                 @Param("endDate") String endDate,
+                                                                 @Param("organIds") List<Integer> organIds);
+
     int countStudentErrorLeave(@Param("organIdList") Set<Integer> organIdList, @Param("format") String format, @Param("classGroupIds") List<Long> classGroupIds);
 
     int countStudentErrorLeave1(Map<String, Object> params);

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -638,5 +638,6 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     List<StudentRegistration> queryMemberEndAutoQuitMusic(@Param("memberEndAutoQuitMusic") String memberEndAutoQuitMusic,
-                                                          @Param("educationUserId") Integer educationUserId);
+                                                          @Param("educationUserId") Integer educationUserId,
+                                                          @Param("organIds") String organIds);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java

@@ -103,6 +103,8 @@ public class StudentManageListDto {
     private String cooperationOrganName;
 
     private Integer memberRankSettingId;
+    
+    private Date membershipEndTime;
 
     public Integer getMemberRankSettingId() {
         return memberRankSettingId;
@@ -421,4 +423,12 @@ public class StudentManageListDto {
     public void setNoStartPracticeCourseNum(Integer noStartPracticeCourseNum) {
         this.noStartPracticeCourseNum = noStartPracticeCourseNum;
     }
+
+	public Date getMembershipEndTime() {
+		return membershipEndTime;
+	}
+
+	public void setMembershipEndTime(Date membershipEndTime) {
+		this.membershipEndTime = membershipEndTime;
+	}
 }

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

@@ -16,6 +16,9 @@ public class IndexBaseMonthData {
 	/**  */
 	private java.util.Date month;
 
+	/**  */
+	private String monthStr;
+
 	private String title;
 	
 	/** 分部编号 */
@@ -38,6 +41,14 @@ public class IndexBaseMonthData {
 
 	private Date updateTime;
 
+	public String getMonthStr() {
+		return monthStr;
+	}
+
+	public void setMonthStr(String monthStr) {
+		this.monthStr = monthStr;
+	}
+
 	public IndexBaseMonthData() {
 	}
 

+ 23 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MemberRankSetting.java

@@ -10,9 +10,15 @@ import java.util.List;
 public class MemberRankSetting {
 
 	/**  */
-	private Integer id;
+	private Integer operator;
 	
 	/**  */
+	private String operatorName;
+
+	/**  */
+	private Integer id;
+
+	/**  */
 	private String name;
 	
 	/**  */
@@ -38,6 +44,22 @@ public class MemberRankSetting {
 	
 	private MemberFeeSetting memberFeeSetting;
 
+	public Integer getOperator() {
+		return operator;
+	}
+
+	public void setOperator(Integer operator) {
+		this.operator = operator;
+	}
+
+	public String getOperatorName() {
+		return operatorName;
+	}
+
+	public void setOperatorName(String operatorName) {
+		this.operatorName = operatorName;
+	}
+
 	public List<MemberRankPrivileges> getMemberRankPrivileges() {
 		return memberRankPrivileges;
 	}

+ 21 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicMemberDto.java

@@ -1,10 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import java.math.BigDecimal;
+import java.util.Date;
 
 public class MusicMemberDto {
 
@@ -18,10 +15,30 @@ public class MusicMemberDto {
 
 	private String musicGroupId;
 
+	private String phone;
+
 	private Integer memberDay;
 
 	private BigDecimal cloudTeacherAmount;
 
+	private Date visitTime;
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public Date getVisitTime() {
+		return visitTime;
+	}
+
+	public void setVisitTime(Date visitTime) {
+		this.visitTime = visitTime;
+	}
+
 	public BigDecimal getCloudTeacherAmount() {
 		return cloudTeacherAmount;
 	}

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java

@@ -43,6 +43,13 @@ public enum IndexDataType implements BaseEnum<String, IndexDataType> {
     FINANCE_AMOUNT("FINANCE_AMOUNT","现金收入", false, false),
     TOTAL_AMOUNT("TOTAL_AMOUNT","总收入", false, false),
 
+    //经营数据详情
+    APPLY_AMOUNT("APPLY_AMOUNT","报名缴费收入", false, false),
+    RENEW_AMOUNT("RENEW_AMOUNT","乐团续费收入", false, false),
+    VIP_AMOUNT("VIP_AMOUNT","VIP课收入", false, false),
+    PRACTICE_AMOUNT("PRACTICE_AMOUNT","网管课收入", false, false),
+    OTHER_AMOUNT("OTHER_AMOUNT","其他收入", false, false),
+
     //业务数据
     HOMEWORK_CREATE_RATE("HOMEWORK_CREATE_RATE","作业布置率", true, true),
     HOMEWORK_SUBMIT_RATE("HOMEWORK_SUBMIT_RATE","作业提交率", true, true),

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicMemberQueryInfo.java

@@ -3,6 +3,8 @@ package com.ym.mec.biz.dal.page;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.Date;
+
 public class MusicMemberQueryInfo extends QueryInfo {
 
 	@ApiModelProperty(value = "0已过期,1即将过期", required = false)
@@ -10,9 +12,29 @@ public class MusicMemberQueryInfo extends QueryInfo {
 
 	private String memberEndAutoQuitMusic;
 
+	private Date visitStartTime;
+
+	private Date visitEndTime;
+
     @ApiModelProperty(value = "分部", required = false)
     private String organId;
 
+	public Date getVisitStartTime() {
+		return visitStartTime;
+	}
+
+	public void setVisitStartTime(Date visitStartTime) {
+		this.visitStartTime = visitStartTime;
+	}
+
+	public Date getVisitEndTime() {
+		return visitEndTime;
+	}
+
+	public void setVisitEndTime(Date visitEndTime) {
+		this.visitEndTime = visitEndTime;
+	}
+
 	public String getMemberEndAutoQuitMusic() {
 		return memberEndAutoQuitMusic;
 	}

+ 13 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1418,8 +1418,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //删除班级未开始课程
         List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
         if (courseScheduleList.size() > 0) {
-            List<CourseSchedule> courseSchedules = courseScheduleDao.queryPreCourseListByClassGroupId(classGroupId);
-            if(courseSchedules.size() > 0){
+            if(courseScheduleDao.queryPreCourseListByClassGroupId(classGroupId).size() > 0){
                 throw new BizException("操作失败:该班级存在预排课程");
             }
             List<Long> courseScheduleIds = courseScheduleList.stream().map(courseSchedule -> courseSchedule.getId()).collect(Collectors.toList());
@@ -1445,8 +1444,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //删除班级未开始课程
         List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
         if (courseScheduleList.size() > 0) {
-            List<CourseSchedule> courseSchedules = courseScheduleDao.queryPreCourseListByClassGroupId(classGroupId);
-            if(courseSchedules.size() > 0){
+            if(courseScheduleDao.queryPreCourseListByClassGroupId(classGroupId).size() > 0){
                 throw new BizException("操作失败:该班级存在预排课程");
             }
             List<Long> courseScheduleIds = courseScheduleList.stream().map(courseSchedule -> courseSchedule.getId()).collect(Collectors.toList());
@@ -2763,6 +2761,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (classGroup == null) {
             throw new BizException("班级不存在");
         }
+        if (classGroup.getLockFlag() == 1) {
+            throw new BizException("当前班级已冻结无法操作预排课");
+        }
         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
 
         Boolean confirmGenerate = false;
@@ -4497,6 +4498,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         MusicGroupPaymentCalenderDto paymentCalenderDto = mergeClassSplitClassAffirmDto.getMusicGroupPaymentCalenderDtos().get(0);
         //主班
         Integer masterClassGroupId = mergeClassSplitClassAffirmDto.getMasterClassGroupId();
+        //是否有预排课
+        if(courseScheduleDao.queryPreCourseListByClassGroupId(masterClassGroupId).size() > 0){
+            throw new BizException("操作失败: 所选主班有预排课课程,请先完成预排课操作");
+        }
         //学员列表
         List<Integer> studentIds = mergeClassSplitClassAffirmDto.getStudentIds();
         //主班是否包含所选学员列表
@@ -4506,6 +4511,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         //学员列表
         List<Integer> classGroupIds = mergeClassSplitClassAffirmDto.getClassGroupIds();
+        //是否有预排课
+        if(courseScheduleDao.queryPreCourseListByClassGroupIds(classGroupIds) > 0){
+            throw new BizException("操作失败: 所选从班班有预排课课程,请先完成预排课操作");
+        }
         //班级和学员关联
         List<Map<Integer, String>> classGroupStudents = mergeClassSplitClassAffirmDto.getClassGroupStudents();
         //获取默认的学员缴费详情

+ 6 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -463,7 +463,11 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         if (Objects.isNull(classGroup)) {
             throw new BizException("班级信息错误");
         }
-
+        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+        //是否有预排课
+        if(courseScheduleDao.queryPreCourseListByMusicGroupId(musicGroup.getId()).size() > 0){
+            throw new BizException("调整失败:请先完成预排课操作");
+        }
         if (ClassGroupTypeEnum.MUSIC_NETWORK.equals(classGroup.getType())) {
             String subjectName = classGroup.getName().split("•")[0];
             List<String> studentNames = studentDao.getStudentNames(new ArrayList<>(studentIds));
@@ -486,7 +490,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             oldStudentIds = classGroupStudents.stream().map(ClassGroupStudentMapper::getUserId).collect(Collectors.toSet());
             oldNormalStudentIds = classGroupStudents.stream().filter(s -> ClassGroupStudentStatusEnum.NORMAL.equals(s.getStatus())).map(ClassGroupStudentMapper::getUserId).collect(Collectors.toSet());
         }
-        MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
+
         //线上基础技能班,原始分班人数不能小于3人大于6人
         if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
 

+ 23 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -150,8 +150,18 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			typeDateMap.put(IndexDataType.FINANCE_BALANCE_AMOUNT,indexBaseMonthDataDao.getFinanceBalanceDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds)));
 			typeDateMap.put(FINANCE_AMOUNT,indexBaseMonthDataDao.getFinanceActualDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds)));
 			List<IndexBaseMonthData> totalAmountDataWithTimely = indexBaseMonthDataDao.getTotalAmountDataWithTimely(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
-
 			typeDateMap.put(IndexDataType.TOTAL_AMOUNT,totalAmountDataWithTimely);
+			//经营报表细化
+			List<IndexBaseMonthData> applyAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"APPLY",null);
+			typeDateMap.put(APPLY_AMOUNT,applyAmount);
+			List<IndexBaseMonthData> renewAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"RENEW",null);
+			typeDateMap.put(RENEW_AMOUNT,renewAmount);
+			List<IndexBaseMonthData> vipAmount = indexBaseMonthDataDao.getVipAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
+			typeDateMap.put(VIP_AMOUNT,vipAmount);
+			List<IndexBaseMonthData> practiceAmount = indexBaseMonthDataDao.getTotalAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds),"PRACTICE_GROUP_BUY,PRACTICE_GROUP_RENEW",null);
+			typeDateMap.put(PRACTICE_AMOUNT,practiceAmount);
+			List<IndexBaseMonthData> otherAmount = indexBaseMonthDataDao.getOtherAmountDataWithTimelyDetails(startDate.toString(), endDate.toString(), new ArrayList<>(organIds));
+			typeDateMap.put(OTHER_AMOUNT,otherAmount);
 		}
 
 
@@ -211,9 +221,14 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			}
 			IndexBaseDto indexBaseData = new IndexBaseDto(typeDateMapEntry.getKey(),typeDateMapEntry.getKey().getMsg());
 			indexBaseData.setIndexMonthData(typeDateMapEntry.getValue(), currentMonth);
-			if(IndexDataType.FINANCE_PAY.equals(typeDateMapEntry.getKey()) || FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
-				IndexDataType.FINANCE_BALANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
-					IndexDataType.TOTAL_AMOUNT.equals(typeDateMapEntry.getKey())){
+			if(FINANCE_PAY.equals(typeDateMapEntry.getKey()) || FINANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+				FINANCE_BALANCE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+					TOTAL_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+					APPLY_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+					RENEW_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+					VIP_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+					PRACTICE_AMOUNT.equals(typeDateMapEntry.getKey()) ||
+					OTHER_AMOUNT.equals(typeDateMapEntry.getKey())){
 				indexBaseData.setPercent(typeDateMapEntry.getValue().stream().map(IndexBaseMonthData::getPercent).reduce(BigDecimal.ZERO, BigDecimal::add));
 			}
 			if(IndexDataType.VIP_GROUP_COURSE.equals(typeDateMapEntry.getKey()) || VIP_GROUP_ONLINE_COURSE.equals(typeDateMapEntry.getKey()) ||
@@ -532,7 +547,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP, IndexErrorType.STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP.getMsg(), quitGroupNum.size(),  quitGroupNum));
 
 			//乐团学员会员到期首页提醒
-			List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(null,educationUserId);
+			List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(null,educationUserId,organIdsStr);
 			IndexErrInfoDto noClassMusicGroupStudentInfo = new IndexErrInfoDto();
 			Set<String> musicGroupIds = studentRegistrations.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
 			Set<Integer> userIds = studentRegistrations.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
@@ -910,7 +925,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		if(StringUtils.isEmpty(configValue)){
 			configValue = "15";
 		}
-		List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(configValue,educationUserId);
+		List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(configValue,educationUserId,organIds);
 		Set<String> musicGroupIdList = studentRegistrations.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
 		Set<Integer> userIds = studentRegistrations.stream().map(e -> e.getUserId()).collect(Collectors.toSet());
 		IndexErrInfoDto infoDto = new IndexErrInfoDto();
@@ -987,7 +1002,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			if(StringUtils.isEmpty(configValue)){
 				configValue = "15";
 			}
-			List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(configValue,educationUserId);
+			List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(configValue,educationUserId,organIdsStr);
 			if(studentRegistrations.size() > 0){
 				flag2 = true;
 			}
@@ -1096,7 +1111,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		}
 		if(!flag5){
 			if(!flag5){
-				List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(null,educationUserId);
+				List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryMemberEndAutoQuitMusic(null,educationUserId,organIdsStr);
 				if(studentRegistrations.size() > 0){
 					flag5 = true;
 				}

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -3902,6 +3902,15 @@
         AND is_lock_ = 1 AND pre_course_flag_ = 1
     </select>
 
+    <select id="queryPreCourseListByClassGroupIds" resultType="int">
+        SELECT COUNT(cs.id_) FROM course_schedule cs
+        WHERE class_group_id_ IN
+        <foreach collection="classGroupIds" open="(" item="classGroupId" separator="," close=")">
+            #{classGroupId}
+        </foreach>
+        AND is_lock_ = 1 AND pre_course_flag_ = 1
+    </select>
+
     <select id="queryPreCourseListByMusicGroupId" resultMap="CourseSchedule">
         SELECT * FROM course_schedule WHERE music_group_id_ = #{musicGroupId} AND group_type_ = 'MUSIC' AND is_lock_ = 1 AND pre_course_flag_ = 1
     </select>

+ 89 - 0
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -9,6 +9,7 @@
 	<resultMap type="com.ym.mec.biz.dal.entity.IndexBaseMonthData" id="IndexBaseMonthData">
 		<result column="id_" property="id" />
 		<result column="month_" property="month" />
+		<result column="month_" property="monthStr" />
 		<result column="organ_id_" property="organId" />
 		<result column="total_num_" property="totalNum" />
 		<result column="activate_num_" property="activateNum" />
@@ -1329,6 +1330,94 @@
 		</if>
 		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
 	</select>
+	<select id="getTotalAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
+		SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
+		                         CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_,
+			   SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
+		CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) activate_num_,
+			   SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
+		CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) percent_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
+		FROM student_payment_order spo
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		<if test="orderType != null">
+			AND FIND_IN_SET(spo.type_,#{orderType})
+		</if>
+		<if test="notOrderType != null">
+			AND spo.type_ NOT IN
+			<foreach collection="notOrderType" open="(" close=")" item="item" separator=",">
+				#{item}
+			</foreach>
+		</if>
+		<if test="organIds!=null and organIds.size()>0">
+			AND spo.organ_id_ IN
+			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+				#{organId}
+			</foreach>
+		</if>
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+	</select>
+
+	<select id="getVipAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
+		SELECT organ_id_,SUM(c.total_num_) total_num_,SUM(c.total_num_) activate_num_,SUM(c.total_num_) percent_,month_ FROM (
+		SELECT spo.organ_id_,SUM(CASE WHEN spod.price_ IS NULL THEN 0 ELSE spod.price_ END) total_num_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
+		FROM student_payment_order spo
+		LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		AND spo.type_ = 'DEGREE' AND spod.type_ IN ('THEORY_COURSE','VIP')
+		<if test="organIds!=null and organIds.size()>0">
+			AND spo.organ_id_ IN
+			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+				#{organId}
+			</foreach>
+		</if>
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+		UNION
+		SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
+		CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_
+		,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
+		FROM student_payment_order spo
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		AND spo.type_ = 'SMALL_CLASS_TO_BUY'
+		<if test="organIds!=null and organIds.size()>0">
+			AND spo.organ_id_ IN
+			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+				#{organId}
+			</foreach>
+		</if>
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+		)c GROUP BY DATE_FORMAT(c.month_,'%Y-%m-%d')
+	</select>
+
+	<select id="getOtherAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
+		SELECT organ_id_,SUM(c.total_num_) total_num_,SUM(c.total_num_) activate_num_,SUM(c.total_num_) percent_,month_ FROM (
+		SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
+							   CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_
+		   ,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
+		FROM student_payment_order spo
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		AND spo.type_ NOT IN ('APPLY','RENEW','PRACTICE_GROUP_BUY','PRACTICE_GROUP_RENEW','SMALL_CLASS_TO_BUY','DEGREE')
+		<if test="organIds!=null and organIds.size()>0">
+			AND spo.organ_id_ IN
+			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+				#{organId}
+			</foreach>
+		</if>
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+		UNION
+		SELECT spo.organ_id_,SUM(CASE WHEN spod.price_ IS NULL THEN 0 ELSE spod.price_ END) total_num_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
+		FROM student_payment_order spo
+			   LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
+		WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
+		AND spo.type_ = 'DEGREE' AND spod.type_ = 'DEGREE_REGISTRATION'
+		<if test="organIds!=null and organIds.size()>0">
+			AND spo.organ_id_ IN
+			<foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+				#{organId}
+			</foreach>
+		</if>
+		GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
+		)c GROUP BY DATE_FORMAT(c.month_,'%Y-%m-%d')
+	</select>
 
 	<sql id="queryTeacherServeInfoCondition">
 		<where>

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

@@ -14,6 +14,8 @@
 		<result column="is_default_" property="isDefault" javaType="java.lang.Boolean" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="operator_" property="operator" />
+		<result column="operator_name_" property="operatorName" />
 	</resultMap>
 
 	<select id="get" resultMap="MemberRankSetting" >
@@ -27,13 +29,16 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MemberRankSetting" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO member_rank_setting (name_,intro_,icon_,is_default_,create_time_,update_time_)
-		VALUES(#{name},#{intro},#{icon},#{isDefault},NOW(),NOW())
+		INSERT INTO member_rank_setting (name_,intro_,icon_,is_default_,create_time_,update_time_,operator_)
+		VALUES(#{name},#{intro},#{icon},#{isDefault},NOW(),NOW(),#{operator})
 	</insert>
 
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.MemberRankSetting">
 		UPDATE member_rank_setting
 		<set>
+		<if test="operator != null">
+			operator_ = #{operator},
+		</if>
 		<if test="name != null">
 			name_ = #{name},
 		</if>
@@ -52,7 +57,8 @@
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="MemberRankSetting" parameterType="map">
-		SELECT * FROM member_rank_setting
+		SELECT mrs.*,su.real_name_ operator_name_ FROM member_rank_setting mrs
+		LEFT JOIN sys_user su ON su.id_ = mrs.operator_
 		<include refid="queryPageSql"/>
 		<include refid="global.limit"/>
 	</select>
@@ -60,14 +66,14 @@
 	<sql id="queryPageSql">
 		<where>
 			<if test="search != null and search != ''">
-				AND (name_ LIKE CONCAT('%',#{search},'%') OR id_ = #{search})
+				AND (mrs.name_ LIKE CONCAT('%',#{search},'%') OR mrs.id_ = #{search})
 			</if>
 		</where>
 	</sql>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM member_rank_setting
+		SELECT COUNT(mrs.id_) FROM member_rank_setting mrs
 		<include refid="queryPageSql"/>
 	</select>
 	

+ 20 - 9
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -824,20 +824,24 @@
     </select>
     <select id="countMusicMemberList" resultType="java.lang.Integer">
         SELECT COUNT(c.user_id_) FROM
-        (SELECT sr.user_id_,su.username_,o.name_ organ_name_,mg.name_ music_group_name_,DATEDIFF(MAX(cto.end_time_),NOW()) member_day_,sr.music_group_id_ FROM student_registration sr
+        (SELECT sr.user_id_ FROM student_registration sr
         LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
-        LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_
+        LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_ AND cto.status_ IN (1,2)
         LEFT JOIN sys_user su ON su.id_ = sr.user_id_
         LEFT JOIN organization o ON o.id_ = mg.organ_id_
+        LEFT JOIN student_visit sv ON sv.student_id_ = sr.user_id_ AND sv.purpose_ = '会员续费'
         <include refid="queryMusicMemberListSql"/>
-        GROUP BY cto.student_id_ HAVING MIN(cto.status_) != 1
+        GROUP BY sr.user_id_ HAVING (MAX(cto.id_) IS NULL OR MIN(cto.status_) != 1)
         <if test="hasMember != null">
             <if test="hasMember == 0">
-                AND DATEDIFF(MAX(cto.end_time_),NOW()) &lt; 0
+                AND (MAX(cto.id_) IS NULL OR DATEDIFF(MAX(cto.end_time_),NOW()) &lt; 0)
             </if>
             <if test="hasMember == 1">
                 AND DATEDIFF(MAX(cto.end_time_),NOW()) &lt;= #{memberEndAutoQuitMusic} AND DATEDIFF(MAX(cto.end_time_),NOW()) >= 0
             </if>
+        </if>
+        <if test="visitStartTime != null">
+            AND MAX(sv.visit_time_) BETWEEN #{visitStartTime} AND #{visitEndTime}
         </if>) c
     </select>
     <resultMap id="MusicMemberDto" type="com.ym.mec.biz.dal.entity.MusicMemberDto">
@@ -847,29 +851,36 @@
         <result property="userId" column="user_id_"/>
         <result property="username" column="username_"/>
         <result property="memberDay" column="member_day_"/>
+        <result property="visitTime" column="visit_time_"/>
+        <result property="phone" column="phone_"/>
     </resultMap>
     <select id="queryMusicMemberList" resultMap="MusicMemberDto">
-        SELECT sr.user_id_,su.username_,o.name_ organ_name_,mg.name_ music_group_name_,DATEDIFF(MAX(cto.end_time_),NOW()) + 1 member_day_,sr.music_group_id_ FROM student_registration sr
+        SELECT sr.user_id_,su.username_,su.phone_,o.name_ organ_name_,mg.name_ music_group_name_,
+        DATEDIFF(MAX(cto.end_time_),NOW()) + 1 member_day_,sr.music_group_id_,MAX(sv.visit_time_) visit_time_ FROM student_registration sr
         LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
-        LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_
+        LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_ AND cto.status_ IN (1,2)
         LEFT JOIN sys_user su ON su.id_ = sr.user_id_
         LEFT JOIN organization o ON o.id_ = mg.organ_id_
+        LEFT JOIN student_visit sv ON sv.student_id_ = sr.user_id_ AND sv.purpose_ = '会员续费'
         <include refid="queryMusicMemberListSql"/>
-        GROUP BY cto.student_id_ HAVING MIN(cto.status_) != 1
+        GROUP BY sr.user_id_ HAVING (MAX(cto.id_) IS NULL OR MIN(cto.status_) != 1)
         <if test="hasMember != null">
             <if test="hasMember == 0">
-                AND DATEDIFF(MAX(cto.end_time_),NOW()) &lt; 0
+                AND (MAX(cto.id_) IS NULL OR DATEDIFF(MAX(cto.end_time_),NOW()) &lt; 0)
             </if>
             <if test="hasMember == 1">
                 AND DATEDIFF(MAX(cto.end_time_),NOW()) &lt;= #{memberEndAutoQuitMusic} AND DATEDIFF(MAX(cto.end_time_),NOW()) >= 0
             </if>
         </if>
+        <if test="visitStartTime != null">
+            AND MAX(sv.visit_time_) BETWEEN #{visitStartTime} AND #{visitEndTime}
+        </if>
         <include refid="global.limit"/>
     </select>
     <sql id="queryMusicMemberListSql">
         <where>
             sr.music_group_status_ != 'QUIT' AND mg.course_view_type_ = 1
-            AND mg.status_ = 'PROGRESS' AND cto.status_ IN (1,2)
+            AND mg.status_ = 'PROGRESS'
             <if test="search != null and search != ''">
                 AND (mg.name_ LIKE CONCAT('%',#{search},'%') OR mg.id_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_ = #{search})
             </if>

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

@@ -72,7 +72,7 @@
         <result column="grade_type_" property="gradeType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="cooperation_organ_id_" property="cooperationOrganId"/>
         <result column="cooperation_organ_name_" property="cooperationOrganName"/>
-        <result column="membershipEndTime" property="membership_end_time_"/>
+        <result column="membership_end_time_" property="membershipEndTime"/>
     </resultMap>
 
     <sql id="queryCondition">

+ 7 - 4
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -1539,18 +1539,21 @@
     <select id="queryMemberEndAutoQuitMusic" resultMap="StudentRegistration">
         SELECT sr.music_group_id_,sr.user_id_ FROM student_registration sr
         LEFT JOIN music_group mg ON mg.id_ = sr.music_group_id_
-        LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_
+        LEFT JOIN cloud_teacher_order cto ON cto.student_id_ = sr.user_id_ AND cto.status_ IN (1,2)
         WHERE sr.music_group_status_ != 'QUIT' AND mg.course_view_type_ = 1
-        AND mg.status_ = 'PROGRESS' AND cto.status_ IN (1,2)
+        AND mg.status_ = 'PROGRESS'
         <if test="educationUserId != null">
             AND mg.educational_teacher_id_ = #{educationUserId}
         </if>
-        GROUP BY cto.student_id_ HAVING MIN(cto.status_) != 1
+        <if test="organIds != null and organIds != ''">
+            AND FIND_IN_SET(mg.organ_id_,#{organIds})
+        </if>
+        GROUP BY sr.user_id_ HAVING (MAX(cto.id_) IS NULL OR MIN(cto.status_) != 1)
         <if test="memberEndAutoQuitMusic != null">
             AND DATEDIFF(MAX(cto.end_time_),NOW()) &lt;= #{memberEndAutoQuitMusic} AND DATEDIFF(MAX(cto.end_time_),NOW()) >= 0
         </if>
         <if test="memberEndAutoQuitMusic == null">
-            AND DATEDIFF(MAX(cto.end_time_),NOW()) &lt; 0
+            AND (MAX(cto.id_) IS NULL OR DATEDIFF(MAX(cto.end_time_),NOW()) &lt; 0)
         </if>
     </select>
 </mapper>

+ 15 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MemberRankSettingController.java

@@ -1,8 +1,11 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
 import com.ym.mec.biz.service.MemberRankSettingService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.QueryInfo;
 import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
@@ -20,12 +23,19 @@ public class MemberRankSettingController extends BaseController {
 
     @Autowired
     private MemberRankSettingService memberRankSettingService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "新增")
     @PostMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('memberRankSetting/add')")
     @AuditLogAnnotation(operateName = "新增会员等级")
     public Object add(@RequestBody MemberRankSetting memberRankSetting) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("请登录");
+        }
+        memberRankSetting.setOperator(sysUser.getId());
         memberRankSettingService.add(memberRankSetting);
         return succeed();
     }
@@ -42,6 +52,11 @@ public class MemberRankSettingController extends BaseController {
     @PostMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('memberRankSetting/update')")
     public Object update(@RequestBody MemberRankSetting memberRankSetting) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("请登录");
+        }
+        memberRankSetting.setOperator(sysUser.getId());
         memberRankSettingService.updateSetting(memberRankSetting);
         return succeed();
     }

+ 30 - 22
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -1,43 +1,36 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
 import com.ym.mec.biz.dal.dto.MusicGroupRegsDto;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.MusicMemberDto;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.dal.page.MusicMemberQueryInfo;
+import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-
-import java.util.*;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
-import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
-import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.exception.BizException;
-import com.yonge.log.model.AuditLogAnnotation;
+import java.util.*;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
@@ -345,7 +338,22 @@ public class MusicGroupController extends BaseController {
 	@ApiOperation(value = "获取乐团已经过期或者即将过期的学员列表")
 	@GetMapping("/queryMusicMemberList")
 	@PreAuthorize("@pcs.hasPermissions('musicGroup/queryMusicMemberList')")
-	public HttpResponseResult<PageInfo<MusicMemberDto>> queryMusicMemberList(MusicMemberQueryInfo musicMemberQueryInfo) {
-		return succeed(musicGroupService.queryMusicMemberList(musicMemberQueryInfo));
+	public HttpResponseResult<PageInfo<MusicMemberDto>> queryMusicMemberList(MusicMemberQueryInfo queryInfo) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		Employee employee = employeeDao.get(sysUser.getId());
+		if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+			queryInfo.setOrganId(employee.getOrganIdList());
+		}else if(StringUtils.isEmpty(employee.getOrganIdList())){
+			return failed("用户所在分部异常");
+		}else {
+			List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+			if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+				return failed("非法请求");
+			}
+		}
+		return succeed(musicGroupService.queryMusicMemberList(queryInfo));
 	}
 }