From 2fd82951133c5e501511776dad890c81a4ec3643 Mon Sep 17 00:00:00 2001 From: none Date: Fri, 17 Mar 2023 15:46:04 +0800 Subject: [PATCH] =?UTF-8?q?fixed:=20=E8=B5=84=E6=BA=90=E7=9A=84=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=97=A0=E5=88=86=E7=B1=BB=E7=AD=9B=E9=80=89=20&&=20?= =?UTF-8?q?=E5=88=86=E7=B1=BB=E8=B5=84=E6=BA=90=E6=95=B0=E9=87=8F=E8=AE=A1?= =?UTF-8?q?=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../playedu/api/constant/BackendConstant.java | 2 + .../backend/ResourceController.java | 4 +- .../playedu/api/mapper/ResourceMapper.java | 7 +- .../api/service/impl/ResourceServiceImpl.java | 60 +------- .../paginate/ResourcePaginateFilter.java | 4 + src/main/resources/mapper/ResourceMapper.xml | 142 +++++++++++++++--- 6 files changed, 147 insertions(+), 72 deletions(-) diff --git a/src/main/java/xyz/playedu/api/constant/BackendConstant.java b/src/main/java/xyz/playedu/api/constant/BackendConstant.java index 04251f2..e0f789f 100644 --- a/src/main/java/xyz/playedu/api/constant/BackendConstant.java +++ b/src/main/java/xyz/playedu/api/constant/BackendConstant.java @@ -1,6 +1,8 @@ package xyz.playedu.api.constant; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; public class BackendConstant { public final static String SUPER_ADMIN_ROLE = "super-role"; diff --git a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java index 4e62e4a..d0588d6 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java @@ -68,8 +68,8 @@ public class ResourceController { filter.setType(type); filter.setCategoryIds(categoryIds); filter.setName(name); - // 非超管只能读取它自己上传的资源 - if (!backendBus.isSuperAdmin()) { + + if (!backendBus.isSuperAdmin()) {// 非超管只能读取它自己上传的资源 filter.setAdminId(PlayEduBContext.getAdminUserID()); } diff --git a/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java b/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java index bf18d8f..1bc8188 100644 --- a/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java +++ b/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java @@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Mapper; import xyz.playedu.api.domain.Resource; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import xyz.playedu.api.types.mapper.ResourceCategoryCountMapper; +import xyz.playedu.api.types.paginate.ResourcePaginateFilter; import java.util.List; import java.util.Map; @@ -19,7 +20,11 @@ public interface ResourceMapper extends BaseMapper { List getCategoryCount(String type); - Integer getNoneCategoryCount(String type); + Integer getNunCategoryCount(String type); + + List paginate(ResourcePaginateFilter filter); + + Long paginateCount(ResourcePaginateFilter filter); } diff --git a/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.java index 9a34707..ec2c53e 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.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; @@ -17,9 +14,7 @@ import xyz.playedu.api.service.internal.ResourceCategoryRelationService; import xyz.playedu.api.types.mapper.ResourceCategoryCountMapper; import xyz.playedu.api.types.paginate.PaginationResult; import xyz.playedu.api.types.paginate.ResourcePaginateFilter; -import xyz.playedu.api.util.HelperUtil; -import java.lang.reflect.Array; import java.util.*; import java.util.stream.Collectors; @@ -39,52 +34,13 @@ public class ResourceServiceImpl extends ServiceImpl i @Override public PaginationResult paginate(int page, int size, ResourcePaginateFilter filter) { - QueryWrapper wrapper = query().getWrapper().eq("is_hidden", 0); - - if (filter.getName() != null) { - wrapper.like("name", "%" + filter.getName() + "%"); - } - if (filter.getDisk() != null) { - wrapper.eq("disk", filter.getDisk()); - } - if (filter.getExtension() != null) { - wrapper.eq("extension", filter.getExtension()); - } - if (filter.getType() != null) { - wrapper.eq("type", filter.getType()); - } - if (filter.getAdminId() != null && !filter.getAdminId().equals(0)) { - wrapper.eq("admin_id", filter.getAdminId()); - } - if (filter.getCategoryIds() != null && filter.getCategoryIds().trim().length() > 0) { - List categoryIds = Arrays.stream(filter.getCategoryIds().split(",")).map(Integer::valueOf).toList(); - List ids = relationService.getRidsByCids(categoryIds); - if (ids == null || ids.size() == 0) { - ids = HelperUtil.zeroIntegerList(); - } - wrapper.in("id", ids); - } - - 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 adminPage = new Page<>(page, size); - adminPage = page(adminPage, wrapper); - PaginationResult pageResult = new PaginationResult<>(); - pageResult.setData(adminPage.getRecords()); - pageResult.setTotal(adminPage.getTotal()); + + filter.setPageStart((page - 1) * size); + filter.setPageSize(size); + + pageResult.setData(getBaseMapper().paginate(filter)); + pageResult.setTotal(getBaseMapper().paginateCount(filter)); return pageResult; } @@ -158,13 +114,13 @@ public class ResourceServiceImpl extends ServiceImpl i @Override public Map getCategoryCount(String type) { Map data = getBaseMapper().getCategoryCount(type).stream().collect(Collectors.toMap(ResourceCategoryCountMapper::getCid, ResourceCategoryCountMapper::getTotal)); - data.put(0, getBaseMapper().getNoneCategoryCount(type)); + data.put(0, getBaseMapper().getNunCategoryCount(type)); return data; } @Override public Integer total(String type) { - return Math.toIntExact(count(query().getWrapper().eq("type", type))); + return Math.toIntExact(count(query().getWrapper().eq("type", type).eq("is_hidden", 0))); } } diff --git a/src/main/java/xyz/playedu/api/types/paginate/ResourcePaginateFilter.java b/src/main/java/xyz/playedu/api/types/paginate/ResourcePaginateFilter.java index 9d1aa43..705d144 100644 --- a/src/main/java/xyz/playedu/api/types/paginate/ResourcePaginateFilter.java +++ b/src/main/java/xyz/playedu/api/types/paginate/ResourcePaginateFilter.java @@ -25,4 +25,8 @@ public class ResourcePaginateFilter { private Integer adminId; + private Integer pageStart; + + private Integer pageSize; + } diff --git a/src/main/resources/mapper/ResourceMapper.xml b/src/main/resources/mapper/ResourceMapper.xml index f373733..adac8a2 100644 --- a/src/main/resources/mapper/ResourceMapper.xml +++ b/src/main/resources/mapper/ResourceMapper.xml @@ -5,23 +5,24 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + - id,admin_id,type, + id + ,admin_id,type, name,extension,size, disk,file_id,path, url,created_at,parent_id, @@ -33,15 +34,122 @@ FROM `resources` INNER JOIN `resource_category` ON `resource_category`.`rid` = `resources`.`id` WHERE `resources`.`type` = #{type} + AND `resources`.`is_hidden` = 0 GROUP BY `resource_category`.`cid`; - + SELECT count(1) AS `total` FROM `resources` LEFT JOIN `resource_category` ON `resource_category`.`rid` = `resources`.`id` WHERE `resources`.`type` = #{type} - AND `resource_category`.`cid` IS NULL; + AND `resources`.`is_hidden` = 0 + AND `resource_category`.`rid` IS NULL; + + + + +