瀏覽代碼

ignore_files

Joburgess 5 年之前
父節點
當前提交
034c0d3ac1

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GroupDao.java

@@ -26,12 +26,12 @@ public interface GroupDao {
     List<Group> searchGroups(Map<String, Object> params);
 
     /**
-     * @describe 根据团体编号获取团体
+     * @describe 根据班级编号获取团体
      * @author Joburgess
      * @date 2019/12/30
-     * @param groups: 团体列表
+     * @param classGroupIds: 团体列表
      * @return java.util.List<com.ym.mec.biz.dal.entity.Group>
      */
-    List<Group> findByGroupIds(@Param("groups") List<Group> groups);
+    List<Group> findByClassGroupIds(@Param("classGroupIds") List<Integer> classGroupIds);
 
 }

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

@@ -2533,18 +2533,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             results = classGroupDao.superFindClassGroups(params);
-            List<Group> groups=new ArrayList<>();
             List<Integer> classGroupIds=new ArrayList<>();
-            groups.add(null);
             for (SuperClassGroupDto result : results) {
-                Group group=new Group(result.getMusicGroupId(),result.getGroupType());
-                groups.add(group);
                 classGroupIds.add(result.getId());
             }
             List<ClassGroupTeacherMapDto> classGroupTeacherMaps = classGroupTeacherMapperDao.findByClassGroupIds(classGroupIds);
             Map<Integer, Map<TeachTypeEnum, List<ClassGroupTeacherMapDto>>> classTeacherTypeMaps = classGroupTeacherMaps.stream()
                     .collect(Collectors.groupingBy(ClassGroupTeacherMapDto::getClassGroupId, Collectors.groupingBy(ClassGroupTeacherMapDto::getTeacherRole)));
-            groups = groupDao.findByGroupIds(groups);
+            List<Group> groups = groupDao.findByClassGroupIds(classGroupIds);
             Map<String, Map<GroupType, List<Group>>> groupsGroupByGroup = groups.stream().collect(Collectors.groupingBy(Group::getId, Collectors.groupingBy(Group::getGroupType)));
             results.forEach(result -> {
                 Map<GroupType, List<Group>> groupsTypeMap = groupsGroupByGroup.get(result.getMusicGroupId());

+ 6 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -30,6 +30,7 @@ import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.json.JsonUtil;
 import feign.codec.DecodeException;
+import io.swagger.models.auth.In;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -839,21 +840,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             List<Map<Integer, Integer>> courseStudentNumMaps = courseScheduleStudentPaymentDao.countCourseStudentNum(allCourseScheduleIds);
             Map<Long, Long> courseStudentNumMap = MapUtil.convertIntegerMap(courseStudentNumMaps);
 
-            List<Group> groupsT=new ArrayList<>();
-            groupsT.add(null);
             List<Integer> teacherIds=new ArrayList<>();
             for (CourseScheduleDto courseScheduleEndDto : dataList) {
-                Group group=new Group(courseScheduleEndDto.getMusicGroupId(),courseScheduleEndDto.getGroupType());
-                groupsT.add(group);
                 teacherIds.add(courseScheduleEndDto.getActualTeacherId());
             }
-            groupsT = groupDao.findByGroupIds(groupsT);
-            Map<String, Group> idGroupMap = groupsT.stream().collect(Collectors.toMap(Group::getId, group -> group));
+
+			List<Integer> classGroupIds = dataList.stream().map(CourseScheduleDto::getClassGroupId).collect(Collectors.toList());
+			List<Group> groupsT = groupDao.findByClassGroupIds(classGroupIds);
+            Map<Integer, Group> idGroupMap = groupsT.stream().collect(Collectors.toMap(Group::getClassGroupId, group -> group));
 
             for (int i=0;i<dataList.size();i++) {
                 Long studentNum=courseStudentNumMap.get(dataList.get(i).getId());
                 dataList.get(i).setTotalStudentNum(Objects.isNull(studentNum)?0:studentNum.intValue());
-                Group group = idGroupMap.get(dataList.get(i).getMusicGroupId());
+                Group group = idGroupMap.get(dataList.get(i).getClassGroupId());
                 if(Objects.nonNull(group)){
                     dataList.get(i).setGroupName(group.getGroupName());
                 }

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

@@ -496,6 +496,7 @@
         cs.teach_mode_,
         cs.music_group_id_,
         cs.group_type_,
+        cs.class_group_id_,
         cg.student_num_ total_student_num_,
         su.real_name_ teacher_name_,
         IF(ta.sign_in_status_ IS NULL,3,ta.sign_in_status_) sign_in_status_,

+ 35 - 35
mec-biz/src/main/resources/config/mybatis/GroupMapper.xml

@@ -119,45 +119,45 @@
         </if>
     </select>
     <select id="findByGroupIds" resultMap="Group">
-      ( SELECT o.id_ organ_id_,o.name_ organ_name_,g.id_, g.name_ group_name_, 'MUSIC' group_type_
+        SELECT cg.music_group_id_ group_id_,cg.group_type_,cg.id_ class_group_id_,g.name_ group_name_,g.organ_id_,o.name_ organ_name_,cg.name_ class_group_name_
         FROM music_group g
-        LEFT JOIN organization o ON g.organ_id_ = o.id_
-        WHERE g.id_ IN
-        <foreach collection="groups" item="group" open="(" close=")" separator=",">
-            <if test="group != null and group.groupType == @com.ym.mec.biz.dal.enums.GroupType@MUSIC">
-                #{group.id}
-            </if>
-            <if test="group == null">
-                #{group}
-            </if>
+        LEFT JOIN class_group cg ON cg.music_group_id_=g.id_
+        LEFT JOIN organization o ON o.id_=g.organ_id_
+        WHERE cg.group_type_='MUSIC'
+        AND cg.id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" separator="," open="(" close=")">
+            #{classGroupId}
         </foreach>
-      )
-      UNION
-      ( SELECT o.id_ organ_id_,o.name_ organ_name_,g.id_, g.name_ group_name_, 'VIP' group_type_
-      FROM vip_group g LEFT JOIN organization o ON g.organ_id_ = o.id_
-      WHERE g.id_ IN
-        <foreach collection="groups" item="group" open="(" close=")" separator=",">
-            <if test="group != null and group.groupType == @com.ym.mec.biz.dal.enums.GroupType@VIP">
-                #{group.id}
-            </if>
-            <if test="group == null">
-                #{group}
-            </if>
+        UNION ALL
+        SELECT cg.music_group_id_ group_id_,cg.group_type_,cg.id_ class_group_id_,cg.name_ group_name_,g.organ_id_,o.name_ organ_name_,cg.name_ class_group_name_
+        FROM vip_group g
+        LEFT JOIN class_group cg ON cg.music_group_id_=g.id_
+        LEFT JOIN organization o ON o.id_=g.organ_id_
+        WHERE cg.group_type_='VIP'
+        AND cg.id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" separator="," open="(" close=")">
+            #{classGroupId}
         </foreach>
-      )
-        UNION
-        ( SELECT o.id_ organ_id_,o.name_ organ_name_,g.id_, g.name_ group_name_, 'PRACTICE' group_type_
-        FROM practice_group g LEFT JOIN organization o ON g.organ_id_ = o.id_
-        WHERE g.id_ IN
-        <foreach collection="groups" item="group" open="(" close=")" separator=",">
-            <if test="group != null and group.groupType == @com.ym.mec.biz.dal.enums.GroupType@PRACTICE">
-                #{group.id}
-            </if>
-            <if test="group == null">
-                #{group}
-            </if>
+        UNION ALL
+        SELECT cg.music_group_id_ group_id_,cg.group_type_,cg.id_ class_group_id_,cg.name_ group_name_,g.organ_id_,o.name_ organ_name_,cg.name_ class_group_name_
+        FROM	practice_group g
+        LEFT JOIN class_group cg ON cg.music_group_id_=g.id_
+        LEFT JOIN organization o ON o.id_=g.organ_id_
+        WHERE cg.group_type_='PRACTICE'
+        AND cg.id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" separator="," open="(" close=")">
+            #{classGroupId}
+        </foreach>
+        UNION ALL
+        SELECT cg.music_group_id_ group_id_,cg.group_type_,cg.id_ class_group_id_,cg.name_ group_name_,g.organ_id_,o.name_ organ_name_,cg.name_ class_group_name_
+        FROM courses_group g
+        LEFT JOIN class_group cg ON cg.music_group_id_=g.id_
+        LEFT JOIN organization o ON o.id_=g.organ_id_
+        WHERE cg.group_type_='COMM'
+        AND cg.id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" separator="," open="(" close=")">
+            #{classGroupId}
         </foreach>
-        )
     </select>
 
 </mapper>