Browse Source

sql优化

zouxuan 1 year ago
parent
commit
f9f569bffe

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -566,6 +566,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             List<Map<Integer, String>> studentGroupNamesMapList = studentRegistrationDao.queryStudentMusicGroupNamesMap(studentIds);
             Map<Integer, String> studentGroupNamesMap = MapUtil.convertIntegerMap(studentGroupNamesMapList);
             Set<Integer> hasVipCourseStudentIds = courseScheduleStudentPaymentDao.getHasVipCourseStudentIds(studentIds);
+            Map<Integer, String> subjectMap = subjectService.getMap("subject", "id", "name", false, 1, Integer.class, String.class);
 
             for (EduOrganStudentListDto eduOrganStudentListDto : dataList) {
                 if(studentGroupNamesMap.containsKey(eduOrganStudentListDto.getStudentId())){
@@ -579,6 +580,7 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
                 }
                 eduOrganStudentListDto.setCloudStudyUseTime(eduOrganStudentListDto.getCloudStudyUseTime()/60);
                 eduOrganStudentListDto.setCloudStudyUseAvgTime(eduOrganStudentListDto.getCloudStudyUseAvgTime()/60);
+                eduOrganStudentListDto.setSubjectName(subjectMap.get(eduOrganStudentListDto.getStudentId()));
             }
         }
         pageInfo.setRows(dataList);
@@ -660,12 +662,14 @@ public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implem
             if(!CollectionUtils.isEmpty(studentNotStartPracticeCourseNumMapList)){
                 studentNotStartPracticeCourseNumMap = MapUtil.convertIntegerMap(studentNotStartPracticeCourseNumMapList);
             }
+            Map<Integer, String> subjectMap = subjectService.getMap("subject", "id", "name", false, 1, Integer.class, String.class);
             //获取分部年级列表
             Map<Integer, String> gradeList = organizationService.getGradeList(1);
             for (EduOrganStudentListDto eduOrganStudentListDto : dataList1) {
                 EduOrganStudentListExportDto data = new EduOrganStudentListExportDto();
                 BeanUtils.copyProperties(eduOrganStudentListDto, data);
                 data.setOrganName(organMap.get(data.getOrganId()));
+                data.setSubjectName(subjectMap.get(data.getStudentId()));
                 if (StringUtils.isNotEmpty(eduOrganStudentListDto.getCurrentGradeNum())) {
                     data.setCurrentGradeNum(eduOrganStudentListDto.getCurrentGradeNum());
                     String grade = gradeList.get(Integer.parseInt(eduOrganStudentListDto.getCurrentGradeNum()));

+ 7 - 8
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -791,7 +791,7 @@
 
     <sql id="queryCloudStudyStudentDataCondition">
         <where>
-            su.del_flag_=0 AND t.user_id_ NOT IN (SELECT user_id_ FROM student WHERE subject_id_list_ REGEXP '21|25|26|27|28|29') and su.tenant_id_ = #{tenantId}
+            su.del_flag_=0 AND stu.subject_id_list_ NOT IN ('21','25','26','27','28','29') and su.tenant_id_ = #{tenantId}
             <if test="organId!=null">
                 AND su.organ_id_=#{organId}
             </if>
@@ -806,7 +806,7 @@
             stu.user_id_ studentId,
             su.organ_id_ organId,
             su.username_ studentName,
-            sub.name_	subjectName,
+            stu.subject_id_list_ subjectId,
             stu.cloud_study_sequence_days_ cloudStudyRunningDays,
             COUNT(DISTINCT smcr.behavior_id_) cloudStudyUseNum,
             SUM(CASE WHEN smcr.play_time_ IS NULL THEN 0 ELSE play_time_ END) cloudStudyUseTime,
@@ -821,8 +821,8 @@
                 student_registration sr
                 LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
                 WHERE
-                mg.status_ = 'PROGRESS'
-                AND sr.music_group_status_ = 'NORMAL'
+                mg.status_ = 'PROGRESS' and sr.tenant_id_ = #{tenantId}
+        AND sr.music_group_status_ = 'NORMAL'
                 ) UNION ALL
                 (
                 SELECT
@@ -831,12 +831,11 @@
                 course_schedule_student_payment cssp
                 LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
                 WHERE
-                cssp.group_type_ IN ( 'VIP', 'PRACTICE' )
+                cssp.group_type_ IN ( 'VIP', 'PRACTICE' ) and cssp.tenant_id_ = #{tenantId}
                 AND cs.status_ = 'NOT_START'
                 )) t1) t
             LEFT JOIN student stu ON t.user_id_=stu.user_id_
             LEFT JOIN sys_user su ON stu.user_id_=su.id_
-            LEFT JOIN `subject` sub ON stu.subject_id_list_ = sub.id_
             LEFT JOIN sys_music_compare_record smcr ON stu.user_id_ = smcr.user_id_
             <if test="cloudTeacherTrainStartDate != null">
                 AND date(smcr.create_time_) &gt;= #{cloudTeacherTrainStartDate}
@@ -870,7 +869,7 @@
         student_registration sr
         LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
         WHERE
-        mg.status_ = 'PROGRESS'
+        mg.status_ = 'PROGRESS' and sr.tenant_id_ = #{tenantId}
         AND sr.music_group_status_ = 'NORMAL'
         ) UNION ALL
         (
@@ -880,7 +879,7 @@
         course_schedule_student_payment cssp
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
         WHERE
-        cssp.group_type_ IN ( 'VIP', 'PRACTICE' )
+        cssp.group_type_ IN ( 'VIP', 'PRACTICE' ) and cssp.tenant_id_ = #{tenantId}
         AND cs.status_ = 'NOT_START'
         )) t
         LEFT JOIN sys_user su ON t.user_id_ = su.id_