diff --git a/README.md b/README.md index a4de831..765efc2 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ docker run -p 9000:9000 -p 50000:50000 -d --name playedu-minio \ ``` docker run -p 9000:9000 -p 50000:50000 -d --name playedu-minio \ - -e "MINIO_ACCESS_KEY=自定义用户名" \ - -e "MINIO_SECRET_KEY=自定义密码" \ + -e "MINIO_ACCESS_KEY=自定义AccessKey" \ + -e "MINIO_SECRET_KEY=自定义SecretKey" \ -v /mnt/data:/data \ -v /mnt/config:/root/.minio \ minio/minio server --console-address ":50000" /data 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 6ca99e6..54d00cb 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java @@ -39,12 +39,21 @@ public class ResourceController { 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", "id"); + String sortAlgo = MapUtils.getString(params, "sort_algo", "desc"); String name = MapUtils.getString(params, "name"); + String categoryIdsStr = MapUtils.getString(params, "category_ids"); ResourcePaginateFilter filter = new ResourcePaginateFilter(); + filter.setSortAlgo(sortAlgo); + filter.setSortField(sortField); if (name != null && name.length() > 0) { filter.setName(name); } + if (categoryIdsStr != null && categoryIdsStr.length() != 0) { + Integer[] categoryIds = Arrays.stream(categoryIdsStr.split(",")).map(Integer::valueOf).toArray(Integer[]::new); + filter.setCategoryIds(categoryIds); + } PaginationResult result = resourceService.paginate(page, size, filter); @@ -87,16 +96,7 @@ public class ResourceController { } } - Resource res = resourceService.create( - categoryId, - req.getName(), - extension, - req.getSize(), - disk, - req.getFileId(), - req.getPath(), - req.getUrl() - ); + Resource res = resourceService.create(categoryId, req.getName(), extension, req.getSize(), disk, req.getFileId(), req.getPath(), req.getUrl()); if (isVideoType) { resourceVideoService.create(res.getId(), duration); 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 36530b1..ed76e9c 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.java @@ -11,6 +11,8 @@ import org.springframework.stereotype.Service; import xyz.playedu.api.types.paginate.PaginationResult; import xyz.playedu.api.types.paginate.ResourcePaginateFilter; +import java.lang.reflect.Array; +import java.util.Arrays; import java.util.Date; /** @@ -24,16 +26,25 @@ public class ResourceServiceImpl extends ServiceImpl i @Override public PaginationResult paginate(int page, int size, ResourcePaginateFilter filter) { QueryWrapper wrapper = query().getWrapper().eq("1", "1"); - if (filter != null) { - 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.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.getCategoryIds() != null && filter.getCategoryIds().length > 0) { + wrapper.in("category_id", Arrays.asList(filter.getCategoryIds())); + } + + // 排序 + if (filter.getSortAlgo().equals("desc")) { + wrapper.orderByDesc(filter.getSortField()); + } else { + wrapper.orderByAsc(filter.getSortField()); } IPage adminPage = new Page<>(page, size); 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 47a6543..d74053c 100644 --- a/src/main/java/xyz/playedu/api/types/paginate/ResourcePaginateFilter.java +++ b/src/main/java/xyz/playedu/api/types/paginate/ResourcePaginateFilter.java @@ -15,4 +15,10 @@ public class ResourcePaginateFilter { private String disk; + private String sortField; + + private String sortAlgo; + + private Integer[] categoryIds; + }