Quellcode durchsuchen

1、课外训练-教学

Joburgess vor 5 Jahren
Ursprung
Commit
94dd653bc6

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -241,10 +241,11 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @describe 获取在指定时间之后不存在网管课的学员编号列表
      * @author Joburgess
      * @date 2020/4/10
-     * @param date:
+     * @param monday:
      * @return java.util.List<java.lang.Integer>
      */
-    List<Integer> findNoPracticeStudentIdsAfterStartTime(@Param("date")String date);
+    List<Integer> findNoPracticeStudentIdsOnWeek(@Param("monday")String monday,
+                                                 @Param("sunday")String sunday);
 
     Integer findNoPracticeStudentTeacherId(@Param("studentId") Integer studentId);
 }

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

@@ -187,7 +187,7 @@ public class ExtracurricularExercisesReplyServiceImpl extends BaseServiceImpl<Lo
 		LocalDate nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
 		LocalDate monDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue());
 		LocalDate sunDayDate = nowDate.with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.SUNDAY.getValue());
-		List<Integer> noPracticeStudentIds = courseScheduleStudentPaymentDao.findNoPracticeStudentIdsAfterStartTime(monDayDate.toString());
+		List<Integer> noPracticeStudentIds = courseScheduleStudentPaymentDao.findNoPracticeStudentIdsOnWeek(monDayDate.toString(),sunDayDate.toString());
 		if(CollectionUtils.isEmpty(noPracticeStudentIds)){
 			return;
 		}

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

@@ -303,15 +303,27 @@
 		GROUP BY cssp.course_schedule_id_
 	</select>
 
-    <select id="findNoPracticeStudentIdsAfterStartTime" resultType="java.lang.Integer">
+    <select id="findNoPracticeStudentIdsOnWeek" resultType="java.lang.Integer">
 		SELECT
-			cssp.user_id_
+			DISTINCT cssp.user_id_
 		FROM
 			course_schedule_student_payment cssp
 			LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
-		WHERE cssp.group_type_='PRACTICE'
-		GROUP BY cssp.user_id_
-		HAVING MAX(cs.class_date_)&lt;#{date} ORDER BY cssp.user_id_
+			LEFT JOIN student s ON cssp.user_id_=s.user_id_
+		WHERE
+			cssp.group_type_ = 'PRACTICE'
+			AND s.service_tag_=1
+			AND cssp.user_id_ NOT IN (
+			SELECT
+				cssp1.user_id_
+			FROM
+				course_schedule_student_payment cssp1
+				LEFT JOIN course_schedule cs1 ON cssp1.course_schedule_id_ = cs1.id_
+			WHERE cssp1.group_type_ = 'PRACTICE'
+				AND cs1.class_date_ BETWEEN #{monday} AND #{sunday}
+			)
+		ORDER BY
+			cssp.user_id_
 	</select>
 	<select id="findNoPracticeStudentTeacherId" resultType="java.lang.Integer">
 		SELECT cs.actual_teacher_id_