From b4bcb74e468675390d3f1b1118f984dfa354cc08 Mon Sep 17 00:00:00 2001 From: none Date: Mon, 8 May 2023 11:13:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E8=AF=BE-=E5=AD=A6=E5=91=98a?= =?UTF-8?q?pi=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/CourseUserController.java | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/xyz/playedu/api/controller/backend/CourseUserController.java b/src/main/java/xyz/playedu/api/controller/backend/CourseUserController.java index 289db8e..7ac92cc 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseUserController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseUserController.java @@ -22,19 +22,22 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import xyz.playedu.api.constant.BPermissionConstant; +import xyz.playedu.api.domain.User; import xyz.playedu.api.domain.UserCourseRecord; import xyz.playedu.api.event.UserCourseRecordDestroyEvent; import xyz.playedu.api.middleware.BackendPermissionMiddleware; import xyz.playedu.api.request.backend.CourseUserDestroyRequest; +import xyz.playedu.api.service.CourseService; import xyz.playedu.api.service.UserCourseRecordService; import xyz.playedu.api.service.UserService; import xyz.playedu.api.types.JsonResponse; import xyz.playedu.api.types.paginate.PaginationResult; -import xyz.playedu.api.types.paginate.UserCourseRecordPaginateFilter; +import xyz.playedu.api.types.paginate.UserPaginateFilter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.stream.Collectors; /** * @Author 杭州白书科技有限公司 @@ -45,6 +48,8 @@ import java.util.List; @RequestMapping("/backend/v1/course/{courseId}/user") public class CourseUserController { + @Autowired private CourseService courseService; + @Autowired private UserCourseRecordService userCourseRecordService; @Autowired private UserService userService; @@ -64,24 +69,34 @@ public class CourseUserController { String email = MapUtils.getString(params, "email"); String idCard = MapUtils.getString(params, "id_card"); - UserCourseRecordPaginateFilter filter = new UserCourseRecordPaginateFilter(); - filter.setCourseId(courseId); + UserPaginateFilter filter = new UserPaginateFilter(); filter.setName(name); filter.setEmail(email); - filter.setIdCard(idCard); filter.setSortAlgo(sortAlgo); filter.setSortField(sortField); + filter.setIdCard(idCard); - PaginationResult result = - userCourseRecordService.paginate(page, size, filter); + // 所属部门 + List depIds = courseService.getDepIdsByCourseId(courseId); + if (depIds != null && depIds.size() > 0) { + filter.setDepIds( + depIds.stream().map(String::valueOf).collect(Collectors.joining(",", "", ""))); + } + + PaginationResult result = userService.paginate(page, size, filter); HashMap data = new HashMap<>(); data.put("data", result.getData()); data.put("total", result.getTotal()); data.put( - "users", - userService.chunks( - result.getData().stream().map(UserCourseRecord::getUserId).toList())); + "user_course_records", + userCourseRecordService.chunk( + result.getData().stream().map(User::getId).toList(), + new ArrayList<>() { + { + add(courseId); + } + })); return JsonResponse.data(data); }