Browse Source

首页数据

zouxuan 3 years ago
parent
commit
6ba38e66a0

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

@@ -677,11 +677,9 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     List<Map<Integer, String>> queryStudentMusicGroupNamesMap(@Param("studentIds") List<Integer> studentIds);
 
     /**
-     * 获取在读并且进行中的乐团编号
+     * 获取进行中在读的学员列表
      * @return
      */
-    List<String> findMusicGroupIds();
-
     List<Integer> findStudentIds();
 
     List<Integer> findNoCourseStudentIds();

+ 10 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -545,18 +545,17 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			//获取新增人数占比(已上乐团课小于等于4)
 			//获取有在读学员的乐团编号
 			//获取有在读学员的学员编号
-			List<String> musicGroupIds = studentRegistrationDao.findMusicGroupIds();
 			List<Integer> studentIdList = studentRegistrationDao.findStudentIds();
-			List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
-			//获取有乐团没排课的数据
-			List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
-			List<Integer> userIdList = new ArrayList<>();
-			if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
-				List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
-				userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
-			}
-			userIdList.addAll(noCourseStudentIdList);
-			saveData(studentDao.groupOrganId(null,userIdList),LocalDate.now().toString(),IndexDataType.CLOUD_NEW_STUDENT_NUM);
+//			List<BaseMapDto<Integer, Long>> studentMusicCourseNum = studentDao.getOrganCloudNewStudentNum(musicGroupIds,studentIdList);
+//			//获取有乐团没排课的数据
+//			List<Integer> noCourseStudentIdList = studentRegistrationDao.findNoCourseStudentIds();
+//			List<Integer> userIdList = new ArrayList<>();
+//			if(!CollectionUtils.isEmpty(studentMusicCourseNum)){
+//				List<BaseMapDto<Integer, Long>> collect = studentMusicCourseNum.stream().filter(e -> e.getValue() < 5).collect(Collectors.toList());
+//				userIdList = collect.stream().map(e -> e.getKey()).collect(Collectors.toList());
+//			}
+//			userIdList.addAll(noCourseStudentIdList);
+			saveData(studentDao.groupOrganId(null,studentIdList),LocalDate.now().toString(),IndexDataType.CLOUD_NEW_STUDENT_NUM);
 		}
 
 	}

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

@@ -1687,21 +1687,21 @@
         </if>
         GROUP BY sr.user_id_
     </select>
-    <select id="findMusicGroupIds" resultType="java.lang.String">
-        SELECT DISTINCT sr.music_group_id_ FROM student_registration sr
-        LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
-        WHERE sr.music_group_status_ = 'NORMAL' AND mg.status_ = 'PROGRESS'
-    </select>
     <select id="findStudentIds" resultType="java.lang.Integer">
         SELECT DISTINCT sr.user_id_ FROM student_registration sr
-        LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+                                             LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
         WHERE sr.music_group_status_ = 'NORMAL' AND mg.status_ = 'PROGRESS'
+          AND sr.user_id_ NOT IN (SELECT DISTINCT(cssp.`user_id_`)  FROM `course_schedule_student_payment` cssp
+                                                                             LEFT JOIN course_schedule cs on cssp.`course_schedule_id_` = cs.`id_`
+                                                                             LEFT JOIN `music_group` mg on mg.`id_` = cssp.`music_group_id_`
+                                  WHERE cs.`group_type_` = 'MUSIC' AND cs.`status_` = 'OVER' AND mg.`status_` = 'PROGRESS'
+                                  GROUP BY cssp.`user_id_` HAVING COUNT(cs.`id_`) > 4)
     </select>
     <select id="findNoCourseStudentIds" resultType="java.lang.Integer">
         SELECT DISTINCT sr.user_id_ FROM student_registration sr
                                              LEFT JOIN sys_user su ON su.id_ = sr.user_id_
-                                             LEFT JOIN organization o ON o.id_ = su.organ_id_
         WHERE sr.music_group_id_ IN (SELECT mg.id_ FROM music_group mg
-                                     WHERE mg.id_ NOT IN (SELECT DISTINCT music_group_id_ FROM course_schedule WHERE group_type_ = 'MUSIC') AND mg.status_ = 'PROGRESS') AND sr.music_group_status_ = 'NORMAL'
+                                     WHERE mg.id_ NOT IN (SELECT DISTINCT music_group_id_ FROM course_schedule WHERE group_type_ = 'MUSIC')
+                                       AND mg.status_ = 'PROGRESS') AND sr.music_group_status_ = 'NORMAL'
     </select>
 </mapper>