From 3ff3973d6c592714763aa5dce75e88448dfde634 Mon Sep 17 00:00:00 2001 From: none Date: Sun, 23 Apr 2023 00:39:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=AD=A6=E5=91=98=E5=AD=A6?= =?UTF-8?q?=E4=B9=A0=E8=BF=9B=E5=BA=A6api=E5=A2=9E=E5=8A=A0=E6=9B=B4?= =?UTF-8?q?=E5=A4=9A=E8=BF=87=E6=BB=A4=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/DepartmentController.java | 52 +++++++++++++++---- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java index c66a3ab..16c7b2b 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java @@ -190,6 +190,9 @@ public class DepartmentController { String idCard = MapUtils.getString(params, "id_card"); String depIds = String.valueOf(id); + String courseIdsStr = MapUtils.getString(params, "course_ids"); + String showMode = MapUtils.getString(params, "show_mode"); + UserPaginateFilter filter = new UserPaginateFilter() { { @@ -204,21 +207,48 @@ public class DepartmentController { PaginationResult users = userService.paginate(page, size, filter); - // 部门关联线上课 - List courses = - courseService.getDepCoursesAndShow( - new ArrayList<>() { - { - add(id); - } - }); + List courses; + if (courseIdsStr != null && courseIdsStr.trim().length() > 0) { + // 指定了需要显示的线上课 + courses = + courseService.chunks( + Arrays.stream(courseIdsStr.split(",")).map(Integer::valueOf).toList()); + } else { + if ("only_open".equals(showMode)) { + // 公开(无关联部门)线上课 + courses = courseService.getOpenCoursesAndShow(10000); + } else if ("only_dep".equals(showMode)) { + // 部门关联线上课 + courses = + courseService.getDepCoursesAndShow( + new ArrayList<>() { + { + add(id); + } + }); + } else { + // 部门关联线上课 + courses = + courseService.getDepCoursesAndShow( + new ArrayList<>() { + { + add(id); + } + }); + List openCourses = courseService.getOpenCoursesAndShow(10000); + ; + if (openCourses != null) { + courses.addAll(openCourses); + } + } + } + + List courseIds = courses.stream().map(Course::getId).toList(); // 学员的课程学习进度 Map> userCourseRecords = userCourseRecordService - .chunk( - users.getData().stream().map(User::getId).toList(), - courses.stream().map(Course::getId).toList()) + .chunk(users.getData().stream().map(User::getId).toList(), courseIds) .stream() .collect(Collectors.groupingBy(UserCourseRecord::getUserId)); Map> userCourseRecordsMap = new HashMap<>();