Browse Source

系统收费

zouxuan 4 years ago
parent
commit
dbd495d2fa

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

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

+ 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 - 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')
     </select>
     <select id="checkHasMemberGroup" resultType="java.lang.Boolean">
         SELECT COUNT(sr.id_) > 0 FROM student_registration sr