From aeac9c42bbae217ddbb69d54ea407556c461cd79 Mon Sep 17 00:00:00 2001 From: Mlxa0324 Date: Sun, 12 Feb 2023 00:40:55 +0800 Subject: [PATCH] =?UTF-8?q?fixed=20=E6=B7=BB=E5=8A=A0=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E8=87=B4=E5=AD=A6=E7=94=9F=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cherOpenCourseMergeSchoolClassService.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java index a33d24a3..ebaed500 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/TeacherOpenCourseMergeSchoolClassService.java @@ -28,14 +28,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.validation.constraints.NotNull; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; import static com.ibeetl.admin.core.util.user.CacheUserUtil.getUser; import static com.ibeetl.jlw.enums.OpenCourseMergeJoinTypeEnum.class_join; +import static com.ibeetl.jlw.enums.OpenCourseMergeJoinTypeEnum.student_join; import static com.ibeetl.jlw.web.query.TeacherOpenCourseMergeSchoolClassQuery.jsonToPO; import static java.util.stream.Collectors.joining; @@ -235,9 +233,6 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService o.getSchoolClassId().toString()).distinct().collect(joining(",")); - TeacherOpenCourseMergeStudentQuery studentQuery = new TeacherOpenCourseMergeStudentQuery(); - studentQuery.setTeacherOpenCourseSchoolClassMergeStudentAddTime(now); - studentQuery.setTeacherOpenCourseId(teacherOpenCourseId); // 查询开课和班级已经关联的数据 final TeacherOpenCourseMergeSchoolClassQuery paras = new TeacherOpenCourseMergeSchoolClassQuery(); @@ -264,14 +259,29 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService studentList = studentService.getValuesByQuery(sq); // 或者学生的Ids - // 查询班级方式加入的学生 + // 查询所有方式加入的学生,程序判断交集。添加学生方式 进来的学生,不会被添加班级的方式中被删除 TeacherOpenCourseMergeStudentQuery existsStudentQuery = new TeacherOpenCourseMergeStudentQuery(); existsStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentStatus(1); existsStudentQuery.setTeacherOpenCourseId(teacherOpenCourseId); - existsStudentQuery.setTeacherOpenCourseSchoolClassMergeStudentJoinType(class_join); List studentDelList = teacherOpenCourseMergeStudentService.getValuesByQueryNotWithPermission(existsStudentQuery); + HashSet existsSet = new HashSet<>(); + + // 移除添加学生方式进来的学生,优先级比较高吧 + studentDelList.removeIf(teacherOpenCourseMergeStudent -> { + final Long studentId = teacherOpenCourseMergeStudent.getStudentId(); + + if (existsSet.contains(studentId)) { + return true; + } + if (student_join.equals(teacherOpenCourseMergeStudent.getTeacherOpenCourseSchoolClassMergeStudentJoinType()) + && studentId != null) { + existsSet.add(studentId); + } + return false; + }); + // 获取关联表要删除的主键Ids String idsDelAdString = CollectionUtil.emptyIfNull(studentDelList).stream().map( o -> o.getTeacherOpenCourseSchoolClassMergeStudentId().toString()).collect(joining(",")); @@ -301,6 +311,6 @@ public class TeacherOpenCourseMergeSchoolClassService extends CoreBaseService