Explorar o código

基础技能课,和线上基础技能课人数不能小于3大于6人

周箭河 %!s(int64=4) %!d(string=hai) anos
pai
achega
099e470c9f

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

@@ -736,6 +736,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取班级列表
+     *
      * @param practiceGroupId
      * @param groupType
      * @return
@@ -744,10 +745,19 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 根据班级编号冻结所选班级
-     * @author zouxuan
+     *
      * @param classGroupIds
      * @param lockFlag
      * @return
+     * @author zouxuan
      */
     int batchUpdateLockByClassGroupIds(@Param("classGroupIds") List<Integer> classGroupIds, @Param("lockFlag") int lockFlag);
+
+
+    /**
+     * 获取乐团某声部基础技能班或基础技能提高班数量
+     *
+     * @return
+     */
+    int getMusicGroupHighClassNumBySubject(@Param("musicGroupId") String musicGroupId, @Param("subjectIds") String subjectIds);
 }

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

@@ -380,8 +380,16 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
     /**
      * 获取乐团未交费的学生
+     *
      * @param musicGroupId
      * @return
      */
     List<StudentRegistration> getNoPaymentStudent(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 获取乐团声部学生数量
+     *
+     * @return
+     */
+    int getMusicGroupSubjectNum(@Param("musicGroupId") String musicGroupId, @Param("subjectIds") String subjectIds);
 }

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

@@ -216,6 +216,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (classGroup.getGroupType() == null) {
             throw new BizException("课程组类型不能为空");
         }
+
+        //基础技能班和线上基础技能班,可分班原则为声部人数/6向上取整
+//        if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)||classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
+//            int classGroupNum = classGroupDao.getMusicGroupHighClassNumBySubject(classGroup.getMusicGroupId(), classGroup.getSubjectIdList());
+//            int musicGroupSubjectNum = studentRegistrationDao.getMusicGroupSubjectNum(classGroup.getMusicGroupId(), classGroup.getSubjectIdList());
+//        }
+
         String userIds = classGroup.getUserIds();
 
         Set<String> userIdStrSet = new HashSet<String>();

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -393,14 +393,13 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findAllByClassGroup(classGroupId);
 
-        if (classGroupStudents.size() <= 0 && (classGroup.getType().equals(ClassGroupTypeEnum.HIGH) ||
-                classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE))) {
-            String errTips = classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) ? "线上基础技能班" : "基础技能班";
+        //线上基础技能班,原始分班人数不能小于3人大于6人
+        if (classGroupStudents.size() <= 0 && classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)) {
             if (studentIds.size() < 3) {
-                throw new BizException(errTips + "人数不能小于3人");
+                throw new BizException("线上基础技能班人数不能小于3人");
             }
             if (studentIds.size() > 6) {
-                throw new BizException(errTips + "人数不能大于6人");
+                throw new BizException("线上基础技能班人数不能大于6人");
             }
         }
 

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -1325,4 +1325,11 @@
             AND cg.group_type_ = #{groupType}
         </if>
     </select>
+
+    <!-- 获取乐团某声部基础技能班或基础技能提高班数量 -->
+    <select id="getMusicGroupHighClassNumBySubject" resultType="int">
+        SELECT COUNT(*) FROM class_group WHERE music_group_id_=#{musicGroupId}
+        AND type_ IN ('HIGH','HIGH_ONLINE') AND del_flag_ = '0'
+        AND INTE_ARRAY(subject_id_list_,#{subjectIds})
+    </select>
 </mapper>

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

@@ -702,4 +702,10 @@
     <select id="getNoPaymentStudent" resultMap="StudentRegistration">
         SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND payment_status_ IN (0,1)
     </select>
+
+    <!-- 获取乐团声部学生数量 -->
+    <select id="getMusicGroupSubjectNum" resultType="int">
+        SELECT COUNT(*) FROM student_registration WHERE music_group_id_=#{musicGroupId}
+        AND INTE_ARRAY(subject_id_,#{subjectIds}) AND music_group_status_ = 'NORMAL'
+    </select>
 </mapper>