yonge 4 anos atrás
pai
commit
6b90b387c8

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

@@ -253,5 +253,5 @@ public interface StudentManageDao {
      * 查询学生剩余课程
      * @return
      */
-    List<StudentListCourseDto> queryStudentRemianCourse();
+    List<StudentListCourseDto> queryStudentRemianCourse(@Param("userIds") Set<Integer> userIds);
 }

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

@@ -134,7 +134,9 @@ public class StudentManageServiceImpl implements StudentManageService {
 		}
 		pageInfo.setRows(dataList);
 		
-		List<StudentListCourseDto> studentListCourseDtoList = studentManageDao.queryStudentRemianCourse();
+        Set<Integer> userIds = dataList.stream().map(StudentManageListDto::getUserId).collect(Collectors.toSet());
+		
+		List<StudentListCourseDto> studentListCourseDtoList = studentManageDao.queryStudentRemianCourse(userIds);
 		Map<Integer,StudentListCourseDto> StudentListCourseDtoMap = studentListCourseDtoList.stream().collect(Collectors.toMap(StudentListCourseDto::getUserId, studentListCourseDto -> studentListCourseDto));
 		
 		StudentListCourseDto studentListCourseDto = null;
@@ -158,7 +160,6 @@ public class StudentManageServiceImpl implements StudentManageService {
 			if (count > 50000) {
 				throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
 			}
-            Set<Integer> userIds = dataList.stream().map(StudentManageListDto::getUserId).collect(Collectors.toSet());
 			//获取所在乐团
             Map<Integer, String> musicGroupNames = MapUtil.convertMybatisMap(musicGroupDao.queryUserMusicNames(userIds));
             //获取所在vip

+ 5 - 2
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -792,8 +792,11 @@
     <select id="queryStudentRemianCourse" resultMap="StudentListCourseDto">
     	SELECT cssp.`user_id_` ,count(cssp.`id_`) remainCourseNum,sum(case when cs.`group_type_` = 'PRACTICE' then 1 else 0 end) remainPracticeNum  
     	FROM `course_schedule_student_payment` cssp LEFT JOIN `course_schedule` cs on cssp.`course_schedule_id_` = cs.`id_`
-		WHERE cs.`status_` = 'NOT_START' GROUP BY cssp.`user_id_` ) b
-		on a.user_id_ = b.user_id_
+		WHERE cs.`status_` = 'NOT_START' AND cssp.`user_id_` IN
+        <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+		GROUP BY cssp.`user_id_`
     </select>
 
 </mapper>