Browse Source

Merge branch 'system_fee' of http://git.dayaedu.com/yonge/mec

 Conflicts:
	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
zouxuan 4 years ago
parent
commit
c451617b42

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

@@ -57,7 +57,7 @@ public interface MusicGroupSchoolTermStudentCourseDetailDao extends BaseDAO<Long
      * @param musicGroupSchoolTermCourseDetailId
      * @return
      */
-    boolean checkNoCourse(Integer musicGroupSchoolTermCourseDetailId);
+    String getNoCourseStudentName(Integer musicGroupSchoolTermCourseDetailId);
 
     /**
      * 更新学员排课时长

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

@@ -618,11 +618,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     int countPayAndCheckNum(@Param("musicGroupId") String musicGroupId);
 
     /**
-     * 是否所有的学员都在班
+     * 获取不在班的学员列表
      * @param musicGroupId
      * @return
      */
-    boolean checkHasNotClass(@Param("musicGroupId") String musicGroupId);
+    String getNotClassName(@Param("musicGroupId") String musicGroupId);
 
     /**
      * 是否有其他会员收费团

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

@@ -2627,8 +2627,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public void confirmPreCourseSchedule(Integer musicGroupSchoolTermCourseDetailId) {
         MusicGroupSchoolTermCourseDetail termCourseDetail = musicGroupSchoolTermCourseDetailDao.get(musicGroupSchoolTermCourseDetailId);
         //校验所有学员的课时都有消耗
-        if(musicGroupSchoolTermStudentCourseDetailDao.checkNoCourse(musicGroupSchoolTermCourseDetailId)){
-            throw new BizException("操作失败:请确保所有学员都已排课");
+        String studentName = musicGroupSchoolTermStudentCourseDetailDao.getNoCourseStudentName(musicGroupSchoolTermCourseDetailId);
+        if(StringUtils.isNotEmpty(studentName)){
+            throw new BizException("操作失败:{} 学员未排课,请检查排课是否完整",studentName);
         }
         //获取所有预排课课程列表
         List<CourseSchedule> courseSchedules = courseScheduleDao.queryPreCourseListByMusicGroupId(termCourseDetail.getMusicGroupId());

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

@@ -13,6 +13,7 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.date.DateUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.stereotype.Service;
@@ -59,8 +60,9 @@ public class MusicGroupSchoolTermCourseDetailServiceImpl extends BaseServiceImpl
 			throw new BizException("操作失败:该功能只适用于系统收费团");
 		}
 		//校验当前乐团是否所有学员都在班
-		if(!studentRegistrationDao.checkHasNotClass(musicGroupId)){
-			throw new BizException("操作失败:请确保所有在读学员都在班级");
+		String notClassName = studentRegistrationDao.getNotClassName(musicGroupId);
+		if(StringUtils.isNotEmpty(notClassName)){
+			throw new BizException("操作失败:{} 学员未在任何班级",notClassName);
 		}
 		MusicGroupSchoolTermCourseDetail courseDetail = musicGroupSchoolTermCourseDetailDao.
 				findByCourseDateAndMusicGroupId(musicGroupId,null,0);

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

@@ -141,9 +141,12 @@
 		</foreach>
 		GROUP BY music_group_school_term_course_detail_id_
 	</select>
-	<select id="checkNoCourse" resultType="java.lang.Boolean">
+	<select id="getNoCourseStudentName" resultType="java.lang.String">
 		SELECT COUNT(id_) > 0 FROM music_group_school_term_student_course_detail
 		WHERE music_group_school_term_course_detail_id_ = #{musicGroupSchoolTermCourseDetailId} AND pre_member_course_minutes_ = 0
+		SELECT GROUP_CONCAT(DISTINCT su.username_) FROM music_group_school_term_student_course_detail mgs
+															LEFT JOIN sys_user su ON su.id_ = mgs.user_id_
+		WHERE music_group_school_term_course_detail_id_ = #{musicGroupSchoolTermCourseDetailId} AND pre_member_course_minutes_ = 0
 	</select>
 	<select id="findByDetailId" resultMap="MusicGroupSchoolTermStudentCourseDetail">
 		SELECT * FROM music_group_school_term_student_course_detail WHERE music_group_school_term_course_detail_id_ = #{courseDetailId}

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

@@ -1498,11 +1498,11 @@
         </if>
         AND sr.music_group_status_ != 'QUIT'
     </select>
-    <select id="checkHasNotClass" resultType="java.lang.Boolean">
-        SELECT COUNT(DISTINCT sr.user_id_) = COUNT(DISTINCT cssm.user_id_) FROM student_registration sr
-        LEFT JOIN class_group_student_mapper cssm ON sr.music_group_id_ = cssm.music_group_id_
+    <select id="getNotClassName" resultType="java.lang.String">
+        SELECT GROUP_CONCAT(DISTINCT su.username_) FROM student_registration sr
+        LEFT JOIN sys_user su ON su.id_ = sr.user_id_
         WHERE sr.music_group_id_ = #{musicGroupId} AND sr.music_group_status_ = 'NORMAL'
-        GROUP BY sr.music_group_id_
+        AND sr.user_id_ NOT IN (SELECT DISTINCT user_id_ FROM class_group_student_mapper WHERE music_group_id_ = #{musicGroupId} AND group_type_ = 'MUSIC' AND status_ != 'QUIT')
     </select>
 
     <!-- 获取报名相关数据 -->