部门学员学习进度api增加更多过滤参数

This commit is contained in:
none 2023-04-23 00:39:25 +08:00
parent 11fc4e4c3f
commit 3ff3973d6c

View File

@ -190,6 +190,9 @@ public class DepartmentController {
String idCard = MapUtils.getString(params, "id_card"); String idCard = MapUtils.getString(params, "id_card");
String depIds = String.valueOf(id); String depIds = String.valueOf(id);
String courseIdsStr = MapUtils.getString(params, "course_ids");
String showMode = MapUtils.getString(params, "show_mode");
UserPaginateFilter filter = UserPaginateFilter filter =
new UserPaginateFilter() { new UserPaginateFilter() {
{ {
@ -204,21 +207,48 @@ public class DepartmentController {
PaginationResult<User> users = userService.paginate(page, size, filter); PaginationResult<User> users = userService.paginate(page, size, filter);
// 部门关联线上课 List<Course> courses;
List<Course> courses = if (courseIdsStr != null && courseIdsStr.trim().length() > 0) {
courseService.getDepCoursesAndShow( // 指定了需要显示的线上课
new ArrayList<>() { courses =
{ courseService.chunks(
add(id); 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<Course> openCourses = courseService.getOpenCoursesAndShow(10000);
;
if (openCourses != null) {
courses.addAll(openCourses);
}
}
}
List<Integer> courseIds = courses.stream().map(Course::getId).toList();
// 学员的课程学习进度 // 学员的课程学习进度
Map<Integer, List<UserCourseRecord>> userCourseRecords = Map<Integer, List<UserCourseRecord>> userCourseRecords =
userCourseRecordService userCourseRecordService
.chunk( .chunk(users.getData().stream().map(User::getId).toList(), courseIds)
users.getData().stream().map(User::getId).toList(),
courses.stream().map(Course::getId).toList())
.stream() .stream()
.collect(Collectors.groupingBy(UserCourseRecord::getUserId)); .collect(Collectors.groupingBy(UserCourseRecord::getUserId));
Map<Integer, Map<Integer, UserCourseRecord>> userCourseRecordsMap = new HashMap<>(); Map<Integer, Map<Integer, UserCourseRecord>> userCourseRecordsMap = new HashMap<>();