Explorar o código

fix: 教务端学生签到记录查询排除退课学员

Joburgess %!s(int64=4) %!d(string=hai) anos
pai
achega
17d0a624a7

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -929,6 +929,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 if(courseStudentAttendanceMap.containsKey(dataList.get(i).getId())){
 					List<StudentAttendance> courseStudentAttendances = courseStudentAttendanceMap.get(dataList.get(i).getId());
 					dataList.get(i).setLeaveStudentNum((int) courseStudentAttendances.stream().filter(s->StudentAttendanceStatusEnum.LEAVE.equals(s.getStatus())).count());
+					dataList.get(i).setLeaveStudentNum((int) courseStudentAttendances.stream().filter(s->StudentAttendanceStatusEnum.NORMAL.equals(s.getStatus())).count());
 				}
             }
         }

+ 5 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -273,14 +273,16 @@
 	</select>
     <select id="countCourseStudentNum" resultType="java.util.Map">
 		SELECT
-			course_schedule_id_ AS 'key',
-			COUNT( DISTINCT user_id_ ) AS 'value'
+			sa.course_schedule_id_ AS 'key',
+			COUNT( DISTINCT sa.user_id_ ) AS 'value'
 		FROM
-			course_schedule_student_payment
+			course_schedule_student_payment sa
+			LEFT JOIN class_group_student_mapper cgsm ON sa.class_group_id_=cgsm.class_group_id_ AND sa.user_id_=cgsm.user_id_
 		WHERE course_schedule_id_ IN
 			<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
 				#{courseId}
 			</foreach>
+			AND cgsm.status_ NOT IN ('QUIT', 'QUIT_SCHOOL')
 		GROUP BY
 			course_schedule_id_
 	</select>