From b77232220820caa2fcaf7be2b31a1173533e4b70 Mon Sep 17 00:00:00 2001 From: none Date: Thu, 9 Mar 2023 10:50:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96user=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/UserController.java | 61 ++++++------------- .../api/service/impl/UserServiceImpl.java | 40 +++++------- .../internal/UserDepartmentServiceImpl.java | 20 +++--- .../internal/UserDepartmentService.java | 2 +- .../types/paginate/UserPaginateFilter.java | 4 +- 5 files changed, 45 insertions(+), 82 deletions(-) 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 c800f78..6534441 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/UserController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/UserController.java @@ -9,7 +9,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.constant.SystemConstant; -import xyz.playedu.api.domain.Department; import xyz.playedu.api.domain.User; import xyz.playedu.api.domain.UserDepartment; import xyz.playedu.api.event.UserDestroyEvent; @@ -53,6 +52,9 @@ public class UserController { public JsonResponse index(@RequestParam HashMap params) { Integer page = MapUtils.getInteger(params, "page", 1); Integer size = MapUtils.getInteger(params, "size", 10); + String sortField = MapUtils.getString(params, "sort_field"); + String sortAlgo = MapUtils.getString(params, "sort_algo"); + String name = MapUtils.getString(params, "name"); String email = MapUtils.getString(params, "email"); String nickname = MapUtils.getString(params, "nickname"); @@ -61,48 +63,23 @@ public class UserController { Integer isLock = MapUtils.getInteger(params, "is_lock"); Integer isVerify = MapUtils.getInteger(params, "is_verify"); Integer isSetPassword = MapUtils.getInteger(params, "is_set_password"); - String createdAtStr = MapUtils.getString(params, "created_at"); - String depIdsStr = MapUtils.getString(params, "dep_ids"); + String createdAt = MapUtils.getString(params, "created_at"); + String depIds = MapUtils.getString(params, "dep_ids"); - String sortField = MapUtils.getString(params, "sort_field"); - String sortAlgo = MapUtils.getString(params, "sort_algo"); - - UserPaginateFilter filter = new UserPaginateFilter(); - filter.setSortAlgo(sortAlgo); - filter.setSortField(sortField); - - if (name != null && name.length() > 0) { - filter.setName(name); - } - if (nickname != null && nickname.length() > 0) { - filter.setNickname(nickname); - } - if (email != null && email.length() > 0) { - filter.setEmail(email); - } - if (idCard != null && idCard.length() > 0) { - filter.setIdCard(idCard); - } - if (isActive != null) { - filter.setIsActive(isActive); - } - if (isLock != null) { - filter.setIsLock(isLock); - } - if (isVerify != null) { - filter.setIsVerify(isVerify); - } - if (isSetPassword != null) { - filter.setIsSetPassword(isSetPassword); - } - if (createdAtStr != null && createdAtStr.length() > 0) { - Date[] createdAt = Arrays.stream(createdAtStr.split(",")).map(Date::new).toArray(Date[]::new); - filter.setCreatedAt(createdAt); - } - if (depIdsStr != null && depIdsStr.length() > 0) { - Integer[] depIds = Arrays.stream(depIdsStr.split(",")).map(Integer::valueOf).toArray(Integer[]::new); - filter.setDepIds(depIds); - } + UserPaginateFilter filter = new UserPaginateFilter(){{ + setName(name); + setNickname(nickname); + setEmail(email); + setIdCard(idCard); + setIsActive(isActive); + setIsLock(isLock); + setIsVerify(isVerify); + setIsSetPassword(isSetPassword); + setCreatedAt(createdAt); + setDepIds(depIds); + setSortAlgo(sortAlgo); + setSortField(sortField); + }}; PaginationResult result = userService.paginate(page, size, filter); return JsonResponse.data(result); diff --git a/src/main/java/xyz/playedu/api/service/impl/UserServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/UserServiceImpl.java index 031387a..ae79551 100644 --- a/src/main/java/xyz/playedu/api/service/impl/UserServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/UserServiceImpl.java @@ -19,6 +19,7 @@ import xyz.playedu.api.types.paginate.UserPaginateFilter; import xyz.playedu.api.util.HelperUtil; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.List; @@ -43,16 +44,16 @@ public class UserServiceImpl extends ServiceImpl implements Us public PaginationResult paginate(int page, int size, UserPaginateFilter filter) { QueryWrapper wrapper = query().getWrapper().eq("1", "1"); - if (filter.getEmail() != null) { + if (filter.getEmail() != null && filter.getEmail().trim().length() > 0) { wrapper.eq("email", filter.getEmail()); } - if (filter.getName() != null) { + if (filter.getName() != null && filter.getName().trim().length() > 0) { wrapper.eq("name", filter.getName()); } - if (filter.getNickname() != null) { + if (filter.getNickname() != null && filter.getNickname().length() > 0) { wrapper.eq("nickname", filter.getNickname()); } - if (filter.getIdCard() != null) { + if (filter.getIdCard() != null && filter.getIdCard().trim().length() > 0) { wrapper.eq("id_card", filter.getIdCard()); } if (filter.getIsActive() != null) { @@ -67,13 +68,15 @@ public class UserServiceImpl extends ServiceImpl implements Us if (filter.getIsSetPassword() != null) { wrapper.eq("is_set_password", filter.getIsSetPassword()); } - if (filter.getCreatedAt() != null && filter.getCreatedAt().length == 2) { - wrapper.between("created_at", filter.getCreatedAt()[0], filter.getCreatedAt()[1]); + if (filter.getCreatedAt() != null && filter.getCreatedAt().trim().length() > 0) { + Date[] createdAt = Arrays.stream(filter.getCreatedAt().split(",")).map(Date::new).toArray(Date[]::new); + wrapper.between("created_at", createdAt[0], createdAt[1]); } - if (filter.getDepIds() != null && filter.getDepIds().length > 0) { - List userIds = userDepartmentService.getUserIdsByDepIds(filter.getDepIds()); - if (userIds.size() == 0) { - userIds.add(0); + if (filter.getDepIds() != null && filter.getDepIds().trim().length() > 0) { + List depIds = Arrays.stream(filter.getDepIds().split(",")).map(Integer::valueOf).toList(); + List userIds = userDepartmentService.getUserIdsByDepIds(depIds); + if (userIds == null || userIds.size() == 0) { + userIds = HelperUtil.zeroIntegerList(); } wrapper.in("id", userIds); } @@ -104,18 +107,12 @@ public class UserServiceImpl extends ServiceImpl implements Us @Override public List existsEmailsByEmails(List emails) { - List users = list(query().getWrapper().in("email", emails).select("id", "email")); - List existsEmails = new ArrayList<>(); - for (User user : users) { - existsEmails.add(user.getEmail()); - } - return existsEmails; + return list(query().getWrapper().in("email", emails).select("id", "email")).stream().map(User::getEmail).toList(); } @Override public void removeRelateDepartmentsByUserId(Integer userId) { - QueryWrapper wrapper = userDepartmentService.query().getWrapper().eq("user_id", userId); - userDepartmentService.remove(wrapper); + userDepartmentService.remove(userDepartmentService.query().getWrapper().eq("user_id", userId)); } @Override @@ -204,12 +201,7 @@ public class UserServiceImpl extends ServiceImpl implements Us @Override public List getDepIdsByUserId(Integer userId) { - List ids = new ArrayList<>(); - List userDepartments = userDepartmentService.list(userDepartmentService.query().getWrapper().eq("user_id", userId)); - for (UserDepartment userDepartment : userDepartments) { - ids.add(userDepartment.getDepId()); - } - return ids; + return userDepartmentService.list(userDepartmentService.query().getWrapper().eq("user_id", userId)).stream().map(UserDepartment::getDepId).toList(); } } diff --git a/src/main/java/xyz/playedu/api/service/impl/internal/UserDepartmentServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/internal/UserDepartmentServiceImpl.java index cb31955..884a658 100644 --- a/src/main/java/xyz/playedu/api/service/impl/internal/UserDepartmentServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/internal/UserDepartmentServiceImpl.java @@ -20,15 +20,8 @@ import java.util.List; public class UserDepartmentServiceImpl extends ServiceImpl implements UserDepartmentService { @Override - public List getUserIdsByDepIds(Integer[] depIds) { - List ids = new ArrayList<>(); - List userDepartments = list(query().getWrapper().in("dep_id", Arrays.asList(depIds))); - if (userDepartments.size() > 0) { - for (UserDepartment userDepartment : userDepartments) { - ids.add(userDepartment.getUserId()); - } - } - return ids; + public List getUserIdsByDepIds(List depIds) { + return list(query().getWrapper().in("dep_id", depIds)).stream().map(UserDepartment::getUserId).toList(); } @Override @@ -38,10 +31,11 @@ public class UserDepartmentServiceImpl extends ServiceImpl userDepartments = new ArrayList<>(); for (int i = 0; i < depIds.length; i++) { - UserDepartment userDepartment = new UserDepartment(); - userDepartment.setUserId(userId); - userDepartment.setDepId(depIds[i]); - userDepartments.add(userDepartment); + Integer depId = depIds[i]; + userDepartments.add(new UserDepartment() {{ + setUserId(userId); + setDepId(depId); + }}); } saveBatch(userDepartments); } diff --git a/src/main/java/xyz/playedu/api/service/internal/UserDepartmentService.java b/src/main/java/xyz/playedu/api/service/internal/UserDepartmentService.java index 87afd77..e899329 100644 --- a/src/main/java/xyz/playedu/api/service/internal/UserDepartmentService.java +++ b/src/main/java/xyz/playedu/api/service/internal/UserDepartmentService.java @@ -11,7 +11,7 @@ import java.util.List; * @createDate 2023-02-23 15:08:38 */ public interface UserDepartmentService extends IService { - List getUserIdsByDepIds(Integer[] depIds); + List getUserIdsByDepIds(List depIds); void storeDepIds(Integer userId, Integer[] depIds); 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 93c6c24..7a57000 100644 --- a/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java +++ b/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java @@ -25,9 +25,9 @@ public class UserPaginateFilter { private Integer isSetPassword; // 创建时间范围过滤 - private Date[] createdAt; + private String createdAt; - private Integer[] depIds; + private String depIds; // 排序控制 private String sortField;