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 600eaee..c2e9cb5 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseUserController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseUserController.java @@ -16,6 +16,7 @@ package xyz.playedu.api.controller.backend; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -49,6 +50,7 @@ import java.util.stream.Collectors; * @create 2023/3/24 16:08 */ @RestController +@Slf4j @RequestMapping("/backend/v1/course/{courseId}/user") public class CourseUserController { @@ -86,8 +88,7 @@ public class CourseUserController { // 所属部门 List depIds = courseService.getDepIdsByCourseId(courseId); if (depIds != null && depIds.size() > 0) { - filter.setDepIds( - depIds.stream().map(String::valueOf).collect(Collectors.joining(",", "", ""))); + filter.setDepIds(depIds); } PaginationResult result = userService.paginate(page, size, filter); 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 16c7b2b..e08c54a 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/DepartmentController.java @@ -188,7 +188,12 @@ public class DepartmentController { String name = MapUtils.getString(params, "name"); String email = MapUtils.getString(params, "email"); String idCard = MapUtils.getString(params, "id_card"); - String depIds = String.valueOf(id); + List depIds = + new ArrayList<>() { + { + add(id); + } + }; String courseIdsStr = MapUtils.getString(params, "course_ids"); String showMode = MapUtils.getString(params, "show_mode"); diff --git a/src/main/java/xyz/playedu/api/controller/backend/UserController.java b/src/main/java/xyz/playedu/api/controller/backend/UserController.java index 5de663f..a05335b 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/UserController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/UserController.java @@ -99,8 +99,17 @@ public class UserController { Integer isVerify = MapUtils.getInteger(params, "is_verify"); Integer isSetPassword = MapUtils.getInteger(params, "is_set_password"); String createdAt = MapUtils.getString(params, "created_at"); - String depIds = MapUtils.getString(params, "dep_ids"); + String depIdsStr = MapUtils.getString(params, "dep_ids"); + List depIds = null; + if (depIdsStr != null && depIdsStr.trim().length() > 0) { + if ("0".equals(depIdsStr)) { + depIds = new ArrayList<>(); + } else { + depIds = Arrays.stream(depIdsStr.split(",")).map(Integer::valueOf).toList(); + } + } + List finalDepIds = depIds; UserPaginateFilter filter = new UserPaginateFilter() { { @@ -111,7 +120,7 @@ public class UserController { setIsLock(isLock); setIsVerify(isVerify); setIsSetPassword(isSetPassword); - setDepIds(depIds); + setDepIds(finalDepIds); setSortAlgo(sortAlgo); setSortField(sortField); } diff --git a/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java b/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java index 990785c..d548249 100644 --- a/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java +++ b/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java @@ -17,6 +17,8 @@ package xyz.playedu.api.types.paginate; import lombok.Data; +import java.util.List; + /** * @Author 杭州白书科技有限公司 * @@ -36,7 +38,7 @@ public class UserPaginateFilter { // 创建时间范围过滤 private String[] createdAt; - private String depIds; + private List depIds; // 排序控制 private String sortField; diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index cc0474b..f72f9ae 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -36,24 +36,23 @@ SELECT `users`.* FROM `users` - - - - LEFT JOIN `user_department` ON `user_department`.`user_id` = `users`.`id` - - - INNER JOIN `user_department` ON `user_department`.`user_id` = `users`.`id` - - - - + - - AND `user_department`.`user_id` IS NULL + + AND `users`.`id` IN ( + SELECT `users`.`id` from `users` LEFT JOIN `user_department` ON `user_department`.`user_id` = + `users`.`id` + WHERE `user_department`.`user_id` IS NULL + ) - AND `user_department`.`dep_id` IN (#{depIds}) + AND `users`.`id` IN ( + SELECT `users`.`id` from `users` LEFT JOIN `user_department` ON `user_department`.`user_id` = + `users`.`id` + WHERE `user_department`.`dep_id` IN ( + #{depId}) + ) @@ -130,7 +128,7 @@ AND `users`.`is_set_password` = #{isSetPassword} - + AND `users`.`created_at` BETWEEN #{createdAtItem}