Browse Source

新增乐团班级列表

zouxuan 4 years ago
parent
commit
2ca8abf0a8

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

@@ -792,4 +792,18 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      * @return
      */
      */
     Integer getMusicGroupHighClassNumBySubject(@Param("musicGroupId") String musicGroupId, @Param("subjectIds") String subjectIds, @Param("type") ClassGroupTypeEnum type);
     Integer getMusicGroupHighClassNumBySubject(@Param("musicGroupId") String musicGroupId, @Param("subjectIds") String subjectIds, @Param("type") ClassGroupTypeEnum type);
+
+    /**
+     * count班级数量
+     * @param params
+     * @return
+     */
+    int countClassGroup(Map<String, Object> params);
+
+    /**
+     * 获取班级列表
+     * @param params
+     * @return
+     */
+    List<ClassGroupTeachersDto> queryClassGroupPage(Map<String, Object> params);
 }
 }

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

@@ -377,7 +377,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param queryInfo
      * @param queryInfo
      * @return
      * @return
      */
      */
-    List<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo);
+    PageInfo<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo);
 
 
     /**
     /**
      * 添加IM群组
      * 添加IM群组

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

@@ -2919,8 +2919,50 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
     }
 
 
     @Override
     @Override
-    public List<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo) {
-        return null;
+    public PageInfo<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo) {
+        PageInfo<ClassGroupTeachersDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ClassGroupTeachersDto> dataList = null;
+        int count = classGroupDao.countClassGroup(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = classGroupDao.queryClassGroupPage(params);
+            String classGroupIds = dataList.stream().map(classGroup -> classGroup.getId().toString()).collect(Collectors.joining(","));
+            List<Integer> classGroupSet = dataList.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());
+
+            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperDao.findClassGroupTeachers(classGroupIds);
+            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countStudyNum(classGroupIds))), HashMap.class);
+
+            Map<Integer, Long> totalNumMap = MapUtil.convertIntegerMap(courseScheduleDao.countTotalNumByClassGroupId(classGroupSet, null));
+            Map<Integer, Long> currentNumMap = MapUtil.convertIntegerMap(courseScheduleDao.countExpendNumByClassGroupId(classGroupSet));
+            for (ClassGroupTeachersDto classGroup : dataList) {
+                List<ClassGroupTeacherMapper> classGroupTeacherMappers = new ArrayList<>();
+                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
+                    if (!classGroup.getId().equals(classGroupTeacher.getClassGroupId())) continue;
+                    classGroupTeacherMappers.add(classGroupTeacher);
+                }
+                classGroup.setClassGroupTeacherMapperList(classGroupTeacherMappers);
+                classGroup.setStudentNum(studyNums.get(classGroup.getId()));
+                int totalClassTimes = 0;
+                int currentClassTimes = 0;
+                if (totalNumMap.containsKey(classGroup.getId())) {
+                    totalClassTimes = totalNumMap.get(classGroup.getId()).intValue();
+                }
+                if (currentNumMap.containsKey(classGroup.getId())) {
+                    currentClassTimes = currentNumMap.get(classGroup.getId()).intValue();
+                }
+                classGroup.setTotalClassTimes(totalClassTimes);
+                classGroup.setCurrentClassTimes(currentClassTimes);
+            }
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
     }
     }
 
 
     @Override
     @Override

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

@@ -282,6 +282,7 @@
     <resultMap type="com.ym.mec.biz.dal.dto.ClassGroupTeachersDto" id="ClassGroupTeachers">
     <resultMap type="com.ym.mec.biz.dal.dto.ClassGroupTeachersDto" id="ClassGroupTeachers">
         <result column="id_" property="id"/>
         <result column="id_" property="id"/>
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="music_group_id_" property="musicGroupId"/>
+        <result column="music_group_name_" property="musicGroupName"/>
         <result column="subject_id_list_" property="subjectIdList"/>
         <result column="subject_id_list_" property="subjectIdList"/>
         <result column="memo_" property="memo"/>
         <result column="memo_" property="memo"/>
         <result column="name_" property="name"/>
         <result column="name_" property="name"/>
@@ -1402,4 +1403,28 @@
         AND type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND del_flag_ = '0'
         AND type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND del_flag_ = '0'
         AND INTE_ARRAY(subject_id_list_,#{subjectIds})
         AND INTE_ARRAY(subject_id_list_,#{subjectIds})
     </select>
     </select>
+
+    <sql id="queryClassGroupPageSql">
+        <where>
+            cg.group_type_ = 'MUSIC' AND cg.del_flag_ = 0
+            <if test="type != null and type != ''">
+                AND type_ = #{type}
+            </if>
+            <if test="search != null and search != ''">
+                AND (mg.name_ LIKE CONCAT('%','','%') OR cg.music_group_id_ LIKE CONCAT('%','','%'))
+            </if>
+        </where>
+    </sql>
+    <select id="countClassGroup" resultType="int">
+        SELECT COUNT(cg.id_) FROM class_group cg
+        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
+        <include refid="queryClassGroupPageSql"/>
+    </select>
+    <select id="queryClassGroupPage" resultMap="ClassGroupTeachers">
+        SELECT cg.*,mg.name_ music_group_name_ FROM class_group cg
+        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
+        <include refid="queryClassGroupPageSql"/>
+        ORDER BY cg.id_ DESC
+        <include refid="global.limit"/>
+    </select>
 </mapper>
 </mapper>