فهرست منبع

feat:服务指标调整

Joburgess 4 سال پیش
والد
کامیت
ec649a88fd

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -101,6 +101,8 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
                                                            @Param("nextMonday") String nextMonday,
                                                            @Param("studentIds") List<Integer> studentIds);
 
+    List<StudentServeCourseDto> getNoCourseBeServeStudentInfo(@Param("noCourseStudentIds") List<Integer> noCourseStudentIds);
+
     /**
      * @param monday:
      * @return java.util.List<com.ym.mec.biz.dal.dto.StudentServeDto>

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -342,6 +342,14 @@ public class StudentServeServiceImpl implements StudentServeService {
         }
         Map<Integer, List<StudentServeCourseDto>> studentCourseMap = studentFutureCourseInfo.stream().collect(Collectors.groupingBy(StudentServeCourseDto::getStudentId));
 
+        Set<Integer> haveCourseBeServeStudentIds = studentCourseMap.keySet();
+        List<Integer> allServeStudentIds = studentDao.getServeStudentIds();
+        Set<Integer> noCourseServeStudentIds = allServeStudentIds.stream().filter(id -> !haveCourseBeServeStudentIds.contains(id)).collect(Collectors.toSet());
+        List<StudentServeCourseDto> noCourseBeServeStudentInfo = new ArrayList<>();
+        if(!CollectionUtils.isEmpty(noCourseServeStudentIds)){
+            noCourseBeServeStudentInfo = studentDao.getNoCourseBeServeStudentInfo(new ArrayList<>(noCourseServeStudentIds));
+        }
+
         List<StudentExtracurricularExercisesSituation> results=new ArrayList<>();
 
         for (Map.Entry<Integer, List<StudentServeCourseDto>> studentCourseMapEntry : studentCourseMap.entrySet()) {
@@ -496,6 +504,40 @@ public class StudentServeServiceImpl implements StudentServeService {
             }
         }
 
+        Map<Integer, Set<String>> noCourseStudentMusicIdsMap = noCourseBeServeStudentInfo.stream().collect(Collectors.groupingBy(StudentServeCourseDto::getStudentId, Collectors.mapping(StudentServeCourseDto::getMusicGroupId, Collectors.toSet())));
+        Map<Integer, List<StudentServeCourseDto>> noCourseStudentCourseMap = noCourseBeServeStudentInfo.stream().collect(Collectors.groupingBy(StudentServeCourseDto::getStudentId));
+        for (Map.Entry<Integer, Set<String>> noCourseStudentMusicIdsMapEntry : noCourseStudentMusicIdsMap.entrySet()) {
+            Map<Integer, Integer> teacherNumMap = new HashMap<>();
+            for (String groupId : noCourseStudentMusicIdsMapEntry.getValue()) {
+                Integer teacherId = null;
+                List<BaseMapDto<Integer, Integer>> studentTeacherIdList = courseScheduleStudentPaymentDao.getStudentClassGroupBishopTeacherMap(null, groupId);
+                if(!CollectionUtils.isEmpty(studentTeacherIdList)){
+                    teacherId = studentTeacherIdList.get(0).getValue();
+                }
+                teacherId = Objects.isNull(teacherId)?noCourseStudentCourseMap.get(noCourseStudentMusicIdsMapEntry.getKey()).get(0).getLeadTeacherId():teacherId;
+                if(Objects.isNull(teacherId)){
+                    continue;
+                }
+
+                if(!teacherNumMap.containsKey(teacherId)){
+                    teacherNumMap.put(teacherId, 1);
+                }else{
+                    teacherNumMap.put(teacherId, teacherNumMap.get(teacherId)+1);
+                }
+
+            }
+
+            for (Map.Entry<Integer, Integer> teacherNumMapEntry : teacherNumMap.entrySet()) {
+                StudentExtracurricularExercisesSituation studentExtracurricularExercisesSituation=new StudentExtracurricularExercisesSituation(noCourseStudentMusicIdsMapEntry.getKey(),
+                        teacherNumMapEntry.getKey(),
+                        nowDate.get(DateUtil.weekFields.weekOfYear()),
+                        DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"), DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"),
+                        "EXERCISE", null);
+                studentExtracurricularExercisesSituation.setExpectExercisesNum(teacherNumMapEntry.getValue());
+                results.add(studentExtracurricularExercisesSituation);
+            }
+        }
+
         if(!CollectionUtils.isEmpty(results)){
 
             if(CollectionUtils.isEmpty(studentIds)){

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -515,6 +515,29 @@
         ORDER BY cssp.user_id_,course_start_time_
     </select>
 
+    <select id="getNoCourseBeServeStudentInfo" resultMap="StudentServeCourseDto">
+        SELECT
+            sr.user_id_ student_id_,
+            stu.teacher_id_ lead_teacher_id_,
+            'MUSIC' group_type_,
+            sr.music_group_id_
+        FROM
+            student_registration sr
+            LEFT JOIN student stu ON sr.user_id_ = stu.user_id_
+            LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+        WHERE
+            mg.del_flag_ = 0
+            AND mg.organ_id_ IS NOT NULL
+            AND mg.status_ = 'PROGRESS'
+            AND sr.music_group_status_ = 'NORMAL'
+            <if test="noCourseStudentIds!=null and noCourseStudentIds.size()>0">
+                AND sr.user_id_ IN
+                <foreach collection="noCourseStudentIds" item="noCourseStudentId" open="(" close=")" separator=",">
+                    #{noCourseStudentId}
+                </foreach>
+            </if>
+    </select>
+
     <select id="getStudentNames" resultType="string">
         SELECT username_ FROM sys_user WHERE id_ IN
         <foreach collection="studentIds" item="studentId" separator="," open="(" close=")">