瀏覽代碼

Merge remote-tracking branch 'origin/master'

Joburgess 5 年之前
父節點
當前提交
f084fd156b
共有 24 個文件被更改,包括 281 次插入156 次删除
  1. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  2. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherMusicClassInfoDto.java
  3. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupCourseSchduleRecordDto.java
  4. 13 5
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  5. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  6. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java
  7. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  8. 142 80
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  9. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  10. 13 10
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  11. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  12. 4 6
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  13. 3 1
      mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml
  14. 6 6
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  15. 11 6
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  16. 5 4
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  17. 1 2
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  18. 2 1
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  19. 3 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  20. 6 9
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  21. 2 1
      mec-education/src/main/resources/mapper/ClassGroupStudentMapperMapper.xml
  22. 2 2
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  23. 15 6
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java
  24. 19 11
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

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

@@ -73,7 +73,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param musicGroupId
      * @return
      */
-    List<ImUserModel> findGroupUsers(String musicGroupId);
+//    List<ImUserModel> findGroupUsers(String musicGroupId);
 
     /**
      * 获取教师所在乐团列表
@@ -88,7 +88,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param musicGroupId
      * @return
      */
-    Set<Integer> queryTeacherIds(String musicGroupId);
+//    Set<Integer> queryTeacherIds(String musicGroupId);
 
     /**
      * 根据乐团编号列表获取乐团在读人数map

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherMusicClassInfoDto.java

@@ -27,6 +27,9 @@ public class TeacherMusicClassInfoDto {
     @ApiModelProperty(value = "运营主管编号", required = false)
     private Integer teamTeacherId;
 
+    @ApiModelProperty(value = "教师角色", required = false)
+    private String teacherRole;
+
     @ApiModelProperty(value = "执教班级名称", required = false)
     private List<String> classGroupNames;
 
@@ -39,6 +42,14 @@ public class TeacherMusicClassInfoDto {
     @ApiModelProperty(value = "出勤次数",required = false)
     private Integer attendanceNum;
 
+    public String getTeacherRole() {
+        return teacherRole;
+    }
+
+    public void setTeacherRole(String teacherRole) {
+        this.teacherRole = teacherRole;
+    }
+
     public Integer getAttendanceNum() {
         return attendanceNum;
     }

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

@@ -30,6 +30,8 @@ public class VipGroupCourseSchduleRecordDto {
 
     @ApiModelProperty(value = "上课人数")
     private Integer attendanceNum;
+    
+    private String schoolName;
 
     public Integer getAttendanceNum() {
         return attendanceNum;
@@ -78,4 +80,12 @@ public class VipGroupCourseSchduleRecordDto {
     public void setIsSalary(YesOrNoEnum isSalary) {
         this.isSalary = isSalary;
     }
+
+	public String getSchoolName() {
+		return schoolName;
+	}
+
+	public void setSchoolName(String schoolName) {
+		this.schoolName = schoolName;
+	}
 }

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -88,18 +88,26 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param id
 	 * @param status
 	 * @param reason
+	 * @param isRefundCourseFee 是否退还课程费用
+	 * @param isRefundInstrumentFee 是否退还乐器费用
+	 * @param isRefundTeachingAssistantsFee 是否退还教辅费用
 	 * @return
 	 */
-	boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason);
+	boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
+			boolean isRefundTeachingAssistantsFee);
 
 	/**
 	 * 一键退团
 	 * @param musicGroupId
 	 * @param userId
 	 * @param reason
+	 * @param isRefundCourseFee 是否退还课程费用
+	 * @param isRefundInstrumentFee 是否退还乐器费用
+	 * @param isRefundTeachingAssistantsFee 是否退还教辅费用
 	 * @return
 	 */
-	boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason);
+	boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
+			boolean isRefundTeachingAssistantsFee);
 
 	/**
 	 *  续费
@@ -159,7 +167,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param courseScheduleId
 	 * @return
 	 */
-    List<CourseScheduleTeachersDto> queryTeacherSalary(Integer courseScheduleId);
+	List<CourseScheduleTeachersDto> queryTeacherSalary(Integer courseScheduleId);
 
 	/**
 	 * 开启缴费(报名中 -->  缴费中)
@@ -186,7 +194,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 乐团确认成立
 	 * @param musicGroupId
 	 */
-    void musicGroupFound(String musicGroupId) throws Exception;
+	void musicGroupFound(String musicGroupId) throws Exception;
 
 	/**
 	 * 乐团修改,获取乐团声部信息数据
@@ -224,7 +232,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * 审核失败(审核中 -> 审核失败)
 	 * @param musicGroupId
 	 */
-	void musicGroupAuditFailed(String musicGroupId,String memo) throws Exception;
+	void musicGroupAuditFailed(String musicGroupId, String memo) throws Exception;
 
 	/**
 	 * 审核通过(审核中 -> 报名中)

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -264,6 +264,11 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
         MusicGroup musicGroup = musicGroupDao.get(highClassGroupList.get(0).getMusicGroupId());
 
+        int highClassGroupNum = studentRegistrationDao.findMusicGroupStudentNum(musicGroup.getId()) / 5;
+        if(highClassGroupList.size() > highClassGroupNum){
+            throw new BizException("班数不能大于"+highClassGroupNum);
+        }
+
         List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroup.getId(), ClassGroupTypeEnum.HIGH);
         if (classGroups.size() > 0) {
             List<Integer> classGroupIds = classGroups.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java

@@ -242,6 +242,8 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 		courseScheduleStudentPayment.setCourseScheduleId(courseScheduleByDemoGroup.getId());
 		courseScheduleStudentPayment.setClassGroupId(courseScheduleByDemoGroup.getClassGroupId());
 		courseScheduleStudentPayment.setExpectPrice(demoGroup.getPrice());
+		courseScheduleStudentPayment.setCreateTime(now);
+		courseScheduleStudentPayment.setUpdateTime(now);
 		courseScheduleStudentPaymentDao.insert(courseScheduleStudentPayment);
 
 		CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();

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

@@ -62,14 +62,14 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	public void add(Employee employee){
 		SysUser user = sysUserFeignService.queryUserByMobile(employee.getPhone());
 		if(user != null && user.getId() != null){
-			employee.setUserType(SysUserType.SYSTEM);
-			teacherDao.updateUser(employee);
 			Employee employee1 = employeeDao.get(user.getId());
 			if(employee1 == null){
 				employee.setUserId(user.getId());
 				employeeDao.insert(employee);
 				//新增用户角色
 				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds());
+				employee.setUserType(SysUserType.SYSTEM);
+				teacherDao.updateUser(employee);
 			}else{
 				new BizException("员工已存在");
 			}

+ 142 - 80
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -21,6 +21,7 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -115,6 +116,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
 	@Autowired
 	private SysConfigDao sysConfigDao;
+	
+	@Autowired
+    private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
 
     @Override
     public BaseDAO<String, MusicGroup> getDAO() {
@@ -562,100 +566,158 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         return true;
     }
 
-    @Override
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason){
-        MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(id);
-        if(musicGroupQuit == null){
-            throw new BizException("数据不存在");
-        }
-        Date date = new Date();
-
-        String musicGroupId = musicGroupQuit.getMusicGroupId();
-        Integer userId = musicGroupQuit.getUserId();
-
-        musicGroupQuit.setStatus(status);
-        musicGroupQuit.setReason(reason);
-        musicGroupQuit.setQuitDate(date);
-        musicGroupQuitDao.update(musicGroupQuit);
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean approveQuitMusicGroup(Long id, ApprovalStatus status, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
+			boolean isRefundTeachingAssistantsFee) {
+		MusicGroupQuit musicGroupQuit = musicGroupQuitDao.get(id);
+		if (musicGroupQuit == null) {
+			throw new BizException("数据不存在");
+		}
+		Date date = new Date();
+
+		String musicGroupId = musicGroupQuit.getMusicGroupId();
+		Integer userId = musicGroupQuit.getUserId();
+
+		musicGroupQuit.setStatus(status);
+		musicGroupQuit.setReason(reason);
+		musicGroupQuit.setQuitDate(date);
+		musicGroupQuitDao.update(musicGroupQuit);
+
+		if (status == ApprovalStatus.APPROVED) {
+			classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
+
+			StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+			if (studentRegistration == null) {
+				throw new BizException("用户注册信息不存在");
+			}
+			// 退团
+			studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
+			studentRegistration.setUpdateTime(date);
+
+			studentRegistrationDao.update(studentRegistration);
+
+			BigDecimal amount = new BigDecimal(0);
+
+			// 判断乐器是否是租赁
+			// MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+
+			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.SUCCESS);
+
+			if (studentPaymentOrder == null) {
+				throw new BizException("报名订单找不到");
+			}
+
+			List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
+
+			for (StudentPaymentOrderDetail detail : orderDetailList) {
+				if (isRefundCourseFee) {
+					// 退课程费用
+					if (detail.getType() == OrderDetailTypeEnum.COURSE) {
+						amount = amount.add(detail.getPrice());
+					}
+				}
+				if (isRefundInstrumentFee) {
+					// 退乐器费用
+					if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+						amount = amount.add(detail.getPrice());
+					}
+
+				}
+				if (isRefundTeachingAssistantsFee) {
+					// 退教辅费用
+					if (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING) {
+						amount = amount.add(detail.getPrice());
+					}
+				}
+			}
+			if (amount.doubleValue() > 0) {
+				// 增加交易流水
+				sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
+						PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
+			}
+		}
+		return true;
+	}
 
-        if (status == ApprovalStatus.APPROVED) {
-            classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
+			boolean isRefundTeachingAssistantsFee) {
 
-            // 判断乐器是否是租赁
-            StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-            if (studentRegistration == null) {
-                throw new BizException("用户注册信息不存在");
-            }
-            // 退团
-            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
-            studentRegistration.setUpdateTime(date);
+		SysUser sysUser = sysUserFeignService.queryUserById(userId);
+		if (sysUser == null) {
+			throw new BizException("获取用户信息失败");
+		}
 
-            studentRegistrationDao.update(studentRegistration);
+		Date date = new Date();
 
-            Integer subjectId = studentRegistration.getActualSubjectId();
-            MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
-            if (musicGroupSubjectPlan == null) {
-                throw new BizException("乐团声部费用设置不存在");
-            }
-            if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
-                // 增加交易流水
-                sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(),
-                        SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null,
-                        DealStatusEnum.SUCCESS, "退出乐团");
-            }
-        }
-        return true;
-    }
+		MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
+		musicGroupQuit.setCreateTime(date);
+		musicGroupQuit.setJoinDate(sysUser.getCreateTime());
+		musicGroupQuit.setMusicGroupId(musicGroupId);
+		musicGroupQuit.setUserId(sysUser.getId());
+		musicGroupQuit.setStatus(ApprovalStatus.APPROVED);
+		musicGroupQuit.setReason(reason);
+		musicGroupQuit.setQuitDate(date);
 
-    @Override
-    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
-    public boolean directQuitMusicGroup(String musicGroupId, Integer userId, String reason) {
+		musicGroupQuitDao.insert(musicGroupQuit);
 
-        SysUser sysUser = sysUserFeignService.queryUserById(userId);
-        if (sysUser == null) {
-            throw new BizException("获取用户信息失败");
-        }
+		classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
 
-        Date date = new Date();
+		// 判断乐器是否是租赁
+		StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+		if (studentRegistration == null) {
+			throw new BizException("用户注册信息不存在");
+		}
+		// 退团
+		studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
+		studentRegistration.setUpdateTime(date);
 
-        MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
-        musicGroupQuit.setCreateTime(date);
-        musicGroupQuit.setJoinDate(sysUser.getCreateTime());
-        musicGroupQuit.setMusicGroupId(musicGroupId);
-        musicGroupQuit.setUserId(sysUser.getId());
-        musicGroupQuit.setStatus(ApprovalStatus.APPROVED);
-        musicGroupQuit.setReason(reason);
-        musicGroupQuit.setQuitDate(date);
+		studentRegistrationDao.update(studentRegistration);
 
-        musicGroupQuitDao.insert(musicGroupQuit);
+		BigDecimal amount = new BigDecimal(0);
 
-        classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
+		// 判断乐器是否是租赁
+		// MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
 
-        // 判断乐器是否是租赁
-        StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-        if (studentRegistration == null) {
-            throw new BizException("用户注册信息不存在");
-        }
-        // 退团
-        studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);
-        studentRegistration.setUpdateTime(date);
+		StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.SUCCESS);
 
-        studentRegistrationDao.update(studentRegistration);
+		if (studentPaymentOrder == null) {
+			throw new BizException("报名订单找不到");
+		}
 
-        Integer subjectId = studentRegistration.getActualSubjectId();
-        MusicGroupSubjectPlan musicGroupSubjectPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
-        if (musicGroupSubjectPlan == null) {
-            throw new BizException("乐团声部费用设置不存在");
-        }
-        if (musicGroupSubjectPlan.getDepositFee().doubleValue() > 0) {
-            // 增加交易流水
-            sysUserCashAccountDetailService.addCashAccountDetail(userId, musicGroupSubjectPlan.getDepositFee(), SysUserCashAccountDetailService.MUSIC_GROUP
-                    + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
-        }
+		List<StudentPaymentOrderDetail> orderDetailList = studentPaymentOrderDetailDao.findApplyOrderGoods(studentPaymentOrder.getId());
+
+		for (StudentPaymentOrderDetail detail : orderDetailList) {
+			if (isRefundCourseFee) {
+				// 退课程费用
+				if (detail.getType() == OrderDetailTypeEnum.COURSE) {
+					amount = amount.add(detail.getPrice());
+				}
+			}
+			if (isRefundInstrumentFee) {
+				// 退乐器费用
+				if (detail.getType() == OrderDetailTypeEnum.MUSICAL) {
+					amount = amount.add(detail.getPrice());
+				}
+
+			}
+			if (isRefundTeachingAssistantsFee) {
+				// 退教辅费用
+				if (detail.getType() == OrderDetailTypeEnum.ACCESSORIES || detail.getType() == OrderDetailTypeEnum.TEACHING) {
+					amount = amount.add(detail.getPrice());
+				}
+			}
+		}
+		if (amount.doubleValue() > 0) {
+			// 增加交易流水
+			sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
+					PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
+		}
 
-        return true;
-    }
+		return true;
+	}
 
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

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

@@ -558,7 +558,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             studentRegistrationDao.update(studentRegistration);
 
             //进行中乐团加入学生缴费
-            if (studentRegistration.getTemporaryCourseFee() != null) {
+            if (studentRegistration.getTemporaryCourseFee() != null && studentRegistration.getTemporaryCourseFee().compareTo(new BigDecimal("0")) > 0) {
                 //关闭待支付订单
                 StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(studentRegistration.getUserId(), studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
                 waitPayOrder.setStatus(DealStatusEnum.CLOSE);

+ 13 - 10
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -202,6 +202,7 @@
         <result column="music_group_name_" property="musicGroupName"/>
         <result column="educational_teacher_id_" property="educationalTeacherId"/>
         <result column="team_teacher_id_" property="teamTeacherId"/>
+        <result column="teacher_role_" property="teacherRole"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="job_type_" property="jobType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="job_nature_" property="jobNature" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -211,12 +212,13 @@
     </resultMap>
     <select id="queryGroupCourses" resultMap="getTeaCourseInfosMap">
         SELECT mg.id_ music_group_id_,mg.name_ music_group_name_,
-        mg.team_teacher_id_,mg.educational_teacher_id_,cg.name_ class_group_name_,mg.status_,t.job_type_,t.job_nature_
+        mg.team_teacher_id_,mg.educational_teacher_id_,cg.name_ class_group_name_,
+        mg.status_,t.job_type_,t.job_nature_,cgtm.teacher_role_
         FROM class_group_teacher_mapper cgtm
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
         LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
-        WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
+        WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
         <include refid="global.limit"/>
     </select>
 
@@ -271,7 +273,7 @@
         FROM class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
-        WHERE FIND_IN_SET(cg.music_group_id_,#{vipIds}) AND cg.type_ = 'VIP' AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
+        WHERE FIND_IN_SET(cg.music_group_id_,#{vipIds}) AND cg.group_type_ = 'VIP' AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
         GROUP BY cg.music_group_id_
     </select>
     <select id="findGroupUsers" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">
@@ -471,7 +473,7 @@
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
         LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
-        WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
+        WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
     </select>
     <select id="findStudentOrganIdsByClassGroup" resultType="int">
         SELECT
@@ -501,14 +503,14 @@
         SELECT cg.name_ class_group_name_,cg.type_ class_group_type_,
         cg.current_class_times_,cg.id_ class_group_id_,cg.total_class_times_
         FROM class_group cg
-        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0
+        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
         <include refid="global.limit"/>
     </select>
 
     <select id="countMusicGroupClassGroup" resultType="java.lang.Integer">
         SELECT COUNT(cg.id_)
         FROM class_group cg
-        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0
+        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
     </select>
 
     <select id="countStudentNum" resultType="java.util.Map">
@@ -532,7 +534,7 @@
 
     <sql id="queryMusicGroupCourseScheduleSql">
         <where>
-            cg.del_flag_ = 0 AND cgtm.teacher_role_ = 'BISHOP'
+            cg.del_flag_ = 0 AND cgtm.teacher_role_ = 'BISHOP' AND cg.group_type_ = 'MUSIC'
             <if test="classScheduleType != null">
                 AND cs.type_ = #{classScheduleType}
             </if>
@@ -602,7 +604,8 @@
     <select id="queryStudentClassGroup" resultMap="ConditionDto">
         SELECT cg.id_,cg.name_,cg.student_num_ FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{teacherId} AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
+        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{teacherId}
+        AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND cg.group_type_ = 'MUSIC'
     </select>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseListDto" id="CourseListDto">
@@ -631,7 +634,7 @@
         FROM vip_group vg
         LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
         LEFT JOIN sys_user su ON vg.user_id_ = su.id_
-        WHERE cg.type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds}) AND vg.status_!=3
+        WHERE cg.group_type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds}) AND vg.status_!=3
     </select>
     <select id="queryStudentMusicGroupCourses" resultMap="CourseListDto">
         SELECT mg.id_ music_group_id_,mg.name_ music_group_name_,mgsf.payment_status_,
@@ -641,7 +644,7 @@
         LEFT JOIN class_group cg ON cg.music_group_id_ = mg.id_
         LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cg.id_
-        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.type_ != 'VIP' AND cg.del_flag_ = 0 AND mgsf.user_id_ =
+        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.group_type_ = 'MUSIC' AND cg.del_flag_ = 0 AND mgsf.user_id_ =
         #{userId} AND cgsm.user_id_ = #{userId}
         GROUP BY mg.id_,mgsf.payment_status_
     </select>

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

@@ -907,7 +907,7 @@
     </update>
     <update id="updateByMusicGroupId">
         UPDATE course_schedule cs SET cs.schoole_id_ = #{schoolId}
-        WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId})
+        WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId} AND cg.group_type_ = 'MUSIC' )
     </update>
 
     <update id="updateCourscheduleStatus">

+ 4 - 6
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -35,12 +35,10 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
-		INSERT INTO course_schedule_teacher_salary (id_,group_type_,music_group_id_,course_schedule_id_,teacher_role_,user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_) VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{courseScheduleId},#{teacherRole},#{userId},#{expectSalary},now(),now(),#{subsidy},#{actualSalary},#{settlementTime},#{classGroupId})
+		INSERT INTO course_schedule_teacher_salary (id_,group_type_,music_group_id_,course_schedule_id_,teacher_role_,
+		user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_)
+		VALUES(#{id},#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{courseScheduleId},
+		#{teacherRole},#{userId},#{expectSalary},now(),now(),#{subsidy},#{actualSalary},#{settlementTime},#{classGroupId})
 	</insert>
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
 		INSERT INTO course_schedule_teacher_salary (id_,group_type_,music_group_id_,course_schedule_id_,teacher_role_,user_id_,expect_salary_,create_time_,update_time_,subsidy_,actual_salary_,settlement_time_,class_group_id_)

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

@@ -311,7 +311,9 @@
 	</select>
     
     <select id="queryCurrentMonthCoursesNum" resultType="int">
-    	select count(cs.id_) from course_schedule cs left join demo_group vg on cs.music_group_id_ = vg.id_ AND cs.group_type_='DEMO' where cs.type_ in ('DEMO')
+    	select count(cs.id_) from course_schedule cs
+        left join demo_group vg on cs.music_group_id_ = vg.id_
+        where cs.type_ = 'DEMO'
   		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
    		<if test="organId != null">
    			and find_in_set(#{organId},vg.organ_id_list_)

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

@@ -183,18 +183,18 @@
         e.entry_date_,e.demission_date_,e.organ_id_list_ organ_id_,e.create_time_
         FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
         <where>
+            su.user_type_ = 'SYSTEM'
             <if test="organId != null">
-                FIND_IN_SET(su.organ_id_,#{organId})
+                AND FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+            <if test="search != null">
+                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
             </if>
         </where>
-        ORDER BY su.create_time_ DESC <include refid="global.limit"/>) ue
+        ORDER BY e.create_time_ DESC <include refid="global.limit"/>) ue
         LEFT JOIN sys_user_role sur ON sur.user_id_ = ue.user_id_
         LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
         LEFT JOIN organization o ON FIND_IN_SET(o.id_,ue.organ_id_)
-        WHERE ue.user_type_ = 'SYSTEM'
-        <if test="search != null">
-            AND (ue.real_name_ LIKE CONCAT('%',#{search},'%') OR ue.phone_ LIKE CONCAT('%',#{search},'%'))
-        </if>
     </select>
 
     <select id="queryEmployByOrganIdCount" resultType="int">

+ 11 - 6
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -284,12 +284,12 @@
 		<result property="name" column="username_"/>
 		<result property="portrait" column="avatar_"/>
 	</resultMap>
-	<select id="findGroupUsers" resultMap="ImUserModel">
+	<!--<select id="findGroupUsers" resultMap="ImUserModel">
 		SELECT su.id_,su.avatar_,su.username_ FROM class_group cg
 		LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
 		LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
 		WHERE cg.music_group_id_ = #{musicGroupId}  AND cgsm.status_ != 'QUIT' GROUP BY su.id_
-	</select>
+	</select>-->
 	<select id="queryTeacherGroups" resultMap="com.ym.mec.biz.dal.dao.ClassGroupDao.imGroupModel">
 		SELECT mg.id_,mg.name_,mg.img_,GROUP_CONCAT(DISTINCT cgtm.user_id_) teacher_ids_
 		FROM music_group mg
@@ -303,16 +303,18 @@
 		GROUP BY mg.id_
 	</select>
 
-	<select id="queryTeacherIds" resultType="java.lang.Integer">
+	<!--<select id="queryTeacherIds" resultType="java.lang.Integer">
 		SELECT DISTINCT cgtm.user_id_ FROM class_group cg
 		LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.class_group_id_
 		WHERE cg.music_group_id_ = #{musicGroupId}
-	</select>
+	</select>-->
+
     <select id="countPayNum" resultType="java.util.Map" parameterType="list">
 		SELECT cg.music_group_id_ `key`,COUNT(cgsm.id_) `value` FROM class_group cg
 		LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
 		WHERE FIND_IN_SET(cg.music_group_id_,#{musicGroupIds})
-		AND cgsm.status_ != 'QUIT' AND cg.type_ != 'MIX' GROUP BY cg.music_group_id_
+		AND cgsm.status_ != 'QUIT' AND cg.type_ != 'MIX' AND cg.group_type_ = 'MUSIC'
+		GROUP BY cg.music_group_id_
 	</select>
 
     <select id="queryListByIds" resultMap="MusicGroup" parameterType="list">
@@ -341,7 +343,10 @@
   	</select>
   	
   	<select id="queryCurrentMonthCoursesNum" resultType="int">
-  		select count(cs.id_) from course_schedule cs left join class_group cg on cs.class_group_id_ = cg.id_ left join music_group mg on cg.music_group_id_ = mg.id_ where cs.type_ not in ('VIP','DEMO')
+  		SELECT count(cs.id_) from course_schedule cs
+		left join class_group cg on cs.class_group_id_ = cg.id_
+		left join music_group mg on cg.music_group_id_ = mg.id_
+		where cs.group_type_ = 'MUSIC' AND cg.group_type_ = 'MUSIC'
   		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
    		<if test="organId != null">
    			and mg.organ_id_ = #{organId}

+ 5 - 4
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -143,17 +143,18 @@
 
     <sql id="queryCondition">
         <where>
+                cg.group_type_ = 'MUSIC'
             <if test="createTime != null">
-                DATE_FORMAT(ch.create_time_,"%Y%m%d") = DATE_FORMAT(#{createTime},"%Y%m%d")
+                AND DATE_FORMAT(ch.create_time_,"%Y%m%d") = DATE_FORMAT(#{createTime},"%Y%m%d")
             </if>
             <if test="musicGroupId != null">
-                and cg.music_group_id_ = #{musicGroupId}
+                AND cg.music_group_id_ = #{musicGroupId}
             </if>
             <if test="classGroupId != null">
-                and ch.class_group_id_ = #{classGroupId}
+                AND ch.class_group_id_ = #{classGroupId}
             </if>
             <if test="userId != null">
-                and sch.user_id_ = #{userId}
+                AND sch.user_id_ = #{userId}
             </if>
         </where>
     </sql>

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

@@ -153,7 +153,7 @@
         sr.parents_phone_,sr.current_class_,sr.current_grade_
         FROM sys_user su
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.id_ =#{userId} AND su.user_type_ LIKE CONCAT('%',"STUDENT",'%') AND sr.music_group_status_ != 'QUIT' LIMIT 1
+        WHERE su.id_ =#{userId} AND su.user_type_ = 'STUDENT' LIMIT 1
     </select>
 
     <select id="findGoodsNamesByIds" resultType="string">
@@ -353,7 +353,6 @@
 
     <sql id="queryMusicGroupStudentSql">
         <where>
-                sr.music_group_status_ != 'QUIT'
             <if test="search != null and search != ''">
                 AND (su.real_name_ like CONCAT("%",#{search},"%") OR sr.parents_phone_ like CONCAT("%",#{search},"%"))
             </if>

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

@@ -276,6 +276,7 @@
     </select>
     
     <update id="updateViPSignOutStatus" parameterType="string">
-    	update teacher_attendance set sign_out_status_ = 1,sign_out_time_= now() where course_schedule_id_ in (#{courseScheduleIdList}) and sign_in_status_ = 1
+    	update teacher_attendance set sign_out_status_ = 1,sign_out_time_= now()
+    	where FIND_IN_SET(course_schedule_id_,#{courseScheduleIdList}) and sign_in_status_ = 1
     </update>
 </mapper>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -169,6 +169,9 @@
             <if test="username != null">
                 username_ = #{username},
             </if>
+            <if test="realName != null">
+                real_name_ = #{realName},
+            </if>
             <if test="userType != null">
                 user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>

+ 6 - 9
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -118,9 +118,7 @@
         LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
         <where>
-            vg.audit_status_ = 'PASS'
-            AND cg.group_type_ = 'VIP'
-            AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT'
+            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT' AND cg.group_type_ = 'VIP'
             <if test="studentId != null">
                 AND cgsm.user_id_ = #{studentId}
             </if>
@@ -139,9 +137,7 @@
         LEFT JOIN course_schedule cs ON cs.music_group_id_ = vg.id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
         <where>
-            vg.audit_status_ = 'PASS'
-            AND cg.group_type_ = 'VIP'
-            AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT'
+            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT' AND cg.group_type_ = 'VIP'
             <if test="studentId != null">
                 AND cgsm.user_id_ = #{studentId}
             </if>
@@ -467,7 +463,7 @@
             COUNT(cs.id_) as 'value'
         FROM
             course_schedule cs
-            WHERE cs.status_="NOT_START" AND cs.type_="VIP" AND cs.music_group_id_=#{vipGroupId} AND cs.group_type_='VIP'
+            WHERE cs.status_="NOT_START" AND cs.type_ = 'VIP' AND cs.music_group_id_=#{vipGroupId} AND cs.group_type_='VIP'
             GROUP BY cs.teach_mode_
     </select>
 
@@ -546,6 +542,7 @@
         <result column="give_teach_mode_" property="giveTeachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="is_salary_" property="isSalary" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="student_num_" property="attendanceNum"/>
+        <result column="school_name_" property="schoolName"/>
     </resultMap>
 
     <sql id="teachingRecordQueryCondition">
@@ -569,11 +566,11 @@
             CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
             cs.status_,
             cs.teach_mode_,
-            cs.student_num_,
+            cs.student_num_,s.name_ school_name_,
             csts.actual_salary_ IS NOT NULL is_salary_
         FROM
             course_schedule cs
-            LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
+            LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_ left join school s on cs.schoole_id_ = s.id_
         <include refid="teachingRecordQueryCondition"/>
         ORDER BY start_class_time_
         <include refid="global.limit"/>

+ 2 - 1
mec-education/src/main/resources/mapper/ClassGroupStudentMapperMapper.xml

@@ -22,7 +22,8 @@
     <select id="selectStudentPage" parameterType="com.ym.mec.education.req.ClassGroupReq"
             resultType="com.ym.mec.education.resp.ClassStudentResp">
 
-        SELECT s.real_name_ as name,s.avatar_ as avatar,m.class_group_id_ as classGroupId,s.id_ as userId,c.music_group_id_ as musicGroupId  from class_group_student_mapper m
+        SELECT s.real_name_ as name,s.avatar_ as avatar,m.class_group_id_ as classGroupId,s.id_ as userId,c.music_group_id_ as musicGroupId
+        from class_group_student_mapper m
 
         LEFT JOIN class_group c on m.class_group_id_ = c.id_
 

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

@@ -220,7 +220,7 @@ public class MusicGroupController extends BaseController {
         BigDecimal orderAmount = new BigDecimal("0");
 
         //获取课程价格
-        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
         if (studentRegistration.getTemporaryCourseFee() != null) {
             courseFee = studentRegistration.getTemporaryCourseFee();
@@ -328,7 +328,7 @@ public class MusicGroupController extends BaseController {
         BigDecimal orderAmount = new BigDecimal("0");
 
         //获取课程价格
-        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
         if (studentRegistration.getTemporaryCourseFee() != null) {
             courseFee = studentRegistration.getTemporaryCourseFee();

+ 15 - 6
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

@@ -67,9 +67,13 @@ public class MusicGroupQuitController extends BaseController {
 	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/quitMusicGroup')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "退团申请id", required = true, dataType = "Long"),
 			@ApiImplicitParam(name = "status", value = "审批状态(APPROVED, DENIED, PROCESSING)", required = true, dataType = "String"),
-			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String") })
-	public HttpResponseResult quitMusicGroup(Long id, ApprovalStatus status, String reason) throws Exception {
-		return succeed(musicGroupService.approveQuitMusicGroup(id, status, reason));
+			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "isRefundCourseFee", value = "是否退还课程费用", required = true, dataType = "Boolean"),
+			@ApiImplicitParam(name = "isRefundInstrumentFee", value = "是否退还乐器费用(租金)", required = true, dataType = "Boolean"),
+			@ApiImplicitParam(name = "isRefundTeachingAssistantsFee", value = "是否退还教辅费用", required = true, dataType = "Boolean") })
+	public HttpResponseResult quitMusicGroup(Long id, ApprovalStatus status, String reason, boolean isRefundCourseFee, boolean isRefundInstrumentFee,
+			boolean isRefundTeachingAssistantsFee) throws Exception {
+		return succeed(musicGroupService.approveQuitMusicGroup(id, status, reason, isRefundCourseFee, isRefundInstrumentFee, isRefundTeachingAssistantsFee));
 	}
 
 	@ApiOperation(value = "一键退团")
@@ -77,8 +81,13 @@ public class MusicGroupQuitController extends BaseController {
 	@PreAuthorize("@pcs.hasPermissions('musicGroupQuit/directQuitMusicGroup')")
 	@ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
 			@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataType = "Integer"),
-			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String") })
-	public HttpResponseResult directQuitMusicGroup(String musicGroupId, Integer userId, String reason) throws Exception {
-		return succeed(musicGroupService.directQuitMusicGroup(musicGroupId, userId, reason));
+			@ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String"),
+			@ApiImplicitParam(name = "isRefundCourseFee", value = "是否退还课程费用", required = true, dataType = "Boolean"),
+			@ApiImplicitParam(name = "isRefundInstrumentFee", value = "是否退还乐器费用(租金)", required = true, dataType = "Boolean"),
+			@ApiImplicitParam(name = "isRefundTeachingAssistantsFee", value = "是否退还教辅费用", required = true, dataType = "Boolean") })
+	public HttpResponseResult directQuitMusicGroup(String musicGroupId, Integer userId, String reason, boolean isRefundCourseFee,
+			boolean isRefundInstrumentFee, boolean isRefundTeachingAssistantsFee) throws Exception {
+		return succeed(musicGroupService.directQuitMusicGroup(musicGroupId, userId, reason, isRefundCourseFee, isRefundInstrumentFee,
+				isRefundTeachingAssistantsFee));
 	}
 }

+ 19 - 11
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,23 +1,31 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 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.entity.Employee;
-import com.ym.mec.biz.dal.entity.StudentAttendance;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
+import com.ym.mec.biz.dal.page.StudentSignQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
-import io.swagger.annotations.*;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 
 @Api(tags = "学生管理")
 @RequestMapping("studentManage")