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 6534441..0f04cbd 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/UserController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/UserController.java @@ -66,7 +66,7 @@ public class UserController { String createdAt = MapUtils.getString(params, "created_at"); String depIds = MapUtils.getString(params, "dep_ids"); - UserPaginateFilter filter = new UserPaginateFilter(){{ + UserPaginateFilter filter = new UserPaginateFilter() {{ setName(name); setNickname(nickname); setEmail(email); @@ -75,12 +75,15 @@ public class UserController { setIsLock(isLock); setIsVerify(isVerify); setIsSetPassword(isSetPassword); - setCreatedAt(createdAt); setDepIds(depIds); setSortAlgo(sortAlgo); setSortField(sortField); }}; + if (createdAt != null && createdAt.trim().length() > 0) { + filter.setCreatedAt(createdAt.split(",")); + } + PaginationResult result = userService.paginate(page, size, filter); return JsonResponse.data(result); } diff --git a/src/main/java/xyz/playedu/api/mapper/UserMapper.java b/src/main/java/xyz/playedu/api/mapper/UserMapper.java index c91b41a..1495cdb 100644 --- a/src/main/java/xyz/playedu/api/mapper/UserMapper.java +++ b/src/main/java/xyz/playedu/api/mapper/UserMapper.java @@ -3,16 +3,23 @@ package xyz.playedu.api.mapper; import org.apache.ibatis.annotations.Mapper; import xyz.playedu.api.domain.User; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import xyz.playedu.api.types.paginate.UserPaginateFilter; + +import java.util.List; /** -* @author tengteng -* @description 针对表【users】的数据库操作Mapper -* @createDate 2023-02-23 14:04:49 -* @Entity xyz.playedu.api.domain.User -*/ + * @author tengteng + * @description 针对表【users】的数据库操作Mapper + * @createDate 2023-02-23 14:04:49 + * @Entity xyz.playedu.api.domain.User + */ @Mapper public interface UserMapper extends BaseMapper { + List paginate(UserPaginateFilter filter); + + Long paginateCount(UserPaginateFilter filter); + } 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 0fbfd72..6c8b417 100644 --- a/src/main/java/xyz/playedu/api/service/impl/UserServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/UserServiceImpl.java @@ -1,8 +1,5 @@ package xyz.playedu.api.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -19,8 +16,6 @@ import xyz.playedu.api.types.paginate.PaginationResult; 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,65 +38,12 @@ public class UserServiceImpl extends ServiceImpl implements Us @Override public PaginationResult paginate(int page, int size, UserPaginateFilter filter) { - QueryWrapper wrapper = query().getWrapper().eq("1", "1"); - - if (filter.getEmail() != null && filter.getEmail().trim().length() > 0) { - wrapper.eq("email", filter.getEmail()); - } - if (filter.getName() != null && filter.getName().trim().length() > 0) { - wrapper.eq("name", filter.getName()); - } - if (filter.getNickname() != null && filter.getNickname().length() > 0) { - wrapper.eq("nickname", filter.getNickname()); - } - if (filter.getIdCard() != null && filter.getIdCard().trim().length() > 0) { - wrapper.eq("id_card", filter.getIdCard()); - } - if (filter.getIsActive() != null) { - wrapper.eq("is_active", filter.getIsActive()); - } - if (filter.getIsLock() != null) { - wrapper.eq("is_lock", filter.getIsLock()); - } - if (filter.getIsVerify() != null) { - wrapper.eq("is_verify", filter.getIsVerify()); - } - if (filter.getIsSetPassword() != null) { - wrapper.eq("is_set_password", filter.getIsSetPassword()); - } - 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().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); - } - - String sortFiled = filter.getSortField(); - if (sortFiled == null || sortFiled.trim().length() == 0) { - sortFiled = "id"; - } - String sortAlgo = filter.getSortAlgo(); - if (sortAlgo == null || sortAlgo.trim().length() == 0) { - sortAlgo = "desc"; - } - if ("desc".equals(sortAlgo)) { - wrapper.orderByDesc(sortFiled); - } else { - wrapper.orderByAsc(sortFiled); - } - - IPage userPage = new Page<>(page, size); - userPage = page(userPage, wrapper); + filter.setPageStart((page - 1) * size); + filter.setPageSize(size); PaginationResult pageResult = new PaginationResult<>(); - pageResult.setData(userPage.getRecords()); - pageResult.setTotal(userPage.getTotal()); + pageResult.setData(getBaseMapper().paginate(filter)); + pageResult.setTotal(getBaseMapper().paginateCount(filter)); return pageResult; } 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 7a57000..5fe0400 100644 --- a/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java +++ b/src/main/java/xyz/playedu/api/types/paginate/UserPaginateFilter.java @@ -25,7 +25,7 @@ public class UserPaginateFilter { private Integer isSetPassword; // 创建时间范围过滤 - private String createdAt; + private String[] createdAt; private String depIds; @@ -33,4 +33,7 @@ public class UserPaginateFilter { private String sortField; private String sortAlgo; + private Integer pageStart; + private Integer pageSize; + } diff --git a/src/main/resources/mapper/ResourceMapper.xml b/src/main/resources/mapper/ResourceMapper.xml index adac8a2..bf4e49f 100644 --- a/src/main/resources/mapper/ResourceMapper.xml +++ b/src/main/resources/mapper/ResourceMapper.xml @@ -90,7 +90,7 @@ ORDER BY `resources`.`size` ASC - ORDER BY `resources`.`size` ASC + ORDER BY `resources`.`created_at` ASC ORDER BY `resources`.`id` ASC @@ -103,7 +103,7 @@ ORDER BY `resources`.`size` DESC - ORDER BY `resources`.`size` DESC + ORDER BY `resources`.`created_at` DESC ORDER BY `resources`.`id` DESC diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml index edde930..8c41a9c 100644 --- a/src/main/resources/mapper/UserMapper.xml +++ b/src/main/resources/mapper/UserMapper.xml @@ -27,12 +27,154 @@ - id,email,nickname, - name,avatar,password, - salt,id_card,credit1, - create_ip,create_city,is_active, - is_lock,is_verify,verify_at, - is_set_password,login_at,created_at, + id,email,nickname, + name,avatar,password, + salt,id_card,credit1, + create_ip,create_city,is_active, + is_lock,is_verify,verify_at, + is_set_password,login_at,created_at, updated_at + + +