From 3b67766ab2a88e9b8aabeaed8d4fdb465a000944 Mon Sep 17 00:00:00 2001 From: none Date: Wed, 15 Mar 2023 11:31:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=94=E5=9B=9E=E8=B5=84=E6=BA=90=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E7=9A=84=E8=B5=84=E6=BA=90=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/CourseController.java | 10 +++++++++- .../controller/backend/ResourceController.java | 2 ++ .../xyz/playedu/api/mapper/CourseMapper.java | 5 +++++ .../xyz/playedu/api/mapper/ResourceMapper.java | 17 ++++++++++++----- .../xyz/playedu/api/service/CourseService.java | 5 +++++ .../playedu/api/service/ResourceService.java | 4 ++++ .../api/service/impl/CourseServiceImpl.java | 17 +++++++++++++---- .../api/service/impl/ResourceServiceImpl.java | 17 +++++++++++++---- .../types/mapper/CourseCategoryCountMapper.java | 16 ++++++++++++++++ .../mapper/ResourceCategoryCountMapper.java | 16 ++++++++++++++++ src/main/resources/mapper/CourseMapper.xml | 10 ++++++++-- src/main/resources/mapper/ResourceMapper.xml | 17 +++++++++++++---- 12 files changed, 116 insertions(+), 20 deletions(-) create mode 100644 src/main/java/xyz/playedu/api/types/mapper/CourseCategoryCountMapper.java create mode 100644 src/main/java/xyz/playedu/api/types/mapper/ResourceCategoryCountMapper.java diff --git a/src/main/java/xyz/playedu/api/controller/backend/CourseController.java b/src/main/java/xyz/playedu/api/controller/backend/CourseController.java index a70a807..ef3b88f 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseController.java @@ -1,5 +1,6 @@ package xyz.playedu.api.controller.backend; +import cn.hutool.core.lang.hash.Hash; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -69,7 +70,14 @@ public class CourseController { filter.setDepIds(depIds); PaginationResult result = courseService.paginate(page, size, filter); - return JsonResponse.data(result); + + HashMap data = new HashMap<>(); + data.put("data", result.getData()); + data.put("total", result.getTotal()); + data.put("category_count", courseService.getCategoryCount()); + data.put("pure_total", courseService.total()); + + return JsonResponse.data(data); } @BackendPermissionMiddleware(slug = BPermissionConstant.COURSE) 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 917123f..4e62e4a 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java @@ -77,6 +77,8 @@ public class ResourceController { HashMap data = new HashMap<>(); data.put("result", result); + data.put("category_count", resourceService.getCategoryCount(type)); + data.put("pure_total", resourceService.total(type)); if (type.equals(BackendConstant.RESOURCE_TYPE_VIDEO)) { List resourceVideos = resourceVideoService.chunksByRids(result.getData().stream().map(Resource::getId).toList()); diff --git a/src/main/java/xyz/playedu/api/mapper/CourseMapper.java b/src/main/java/xyz/playedu/api/mapper/CourseMapper.java index 5d3ec60..6395dbc 100644 --- a/src/main/java/xyz/playedu/api/mapper/CourseMapper.java +++ b/src/main/java/xyz/playedu/api/mapper/CourseMapper.java @@ -3,6 +3,9 @@ package xyz.playedu.api.mapper; import org.apache.ibatis.annotations.Mapper; import xyz.playedu.api.domain.Course; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import xyz.playedu.api.types.mapper.CourseCategoryCountMapper; + +import java.util.List; /** * @author tengteng @@ -13,6 +16,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; @Mapper public interface CourseMapper extends BaseMapper { + List getCategoryCount(); + } diff --git a/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java b/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java index b922d39..39323a1 100644 --- a/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java +++ b/src/main/java/xyz/playedu/api/mapper/ResourceMapper.java @@ -3,18 +3,25 @@ package xyz.playedu.api.mapper; 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 java.util.List; +import java.util.Map; /** -* @author tengteng -* @description 针对表【resources】的数据库操作Mapper -* @createDate 2023-03-13 10:25:30 -* @Entity xyz.playedu.api.domain.Resource -*/ + * @author tengteng + * @description 针对表【resources】的数据库操作Mapper + * @createDate 2023-03-13 10:25:30 + * @Entity xyz.playedu.api.domain.Resource + */ @Mapper public interface ResourceMapper extends BaseMapper { + List getCategoryCount(String type); + } + diff --git a/src/main/java/xyz/playedu/api/service/CourseService.java b/src/main/java/xyz/playedu/api/service/CourseService.java index a638619..eb0ddc1 100644 --- a/src/main/java/xyz/playedu/api/service/CourseService.java +++ b/src/main/java/xyz/playedu/api/service/CourseService.java @@ -7,6 +7,7 @@ import xyz.playedu.api.types.paginate.CoursePaginateFiler; import xyz.playedu.api.types.paginate.PaginationResult; import java.util.List; +import java.util.Map; /** * @author tengteng @@ -42,4 +43,8 @@ public interface CourseService extends IService { List chunks(List ids, List fields); List chunks(List ids); + + Map getCategoryCount(); + + Integer total(); } diff --git a/src/main/java/xyz/playedu/api/service/ResourceService.java b/src/main/java/xyz/playedu/api/service/ResourceService.java index 4fb315a..7d2f824 100644 --- a/src/main/java/xyz/playedu/api/service/ResourceService.java +++ b/src/main/java/xyz/playedu/api/service/ResourceService.java @@ -7,6 +7,7 @@ import xyz.playedu.api.types.paginate.PaginationResult; import xyz.playedu.api.types.paginate.ResourcePaginateFilter; import java.util.List; +import java.util.Map; /** * @author tengteng @@ -29,4 +30,7 @@ public interface ResourceService extends IService { List chunks(List ids, List fields); + Map getCategoryCount(String type); + + Integer total(String type); } diff --git a/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java index ac7f8e0..c4bc6c6 100644 --- a/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java @@ -15,14 +15,13 @@ import xyz.playedu.api.service.CourseService; import xyz.playedu.api.mapper.CourseMapper; import org.springframework.stereotype.Service; import xyz.playedu.api.service.internal.ResourceCourseCategoryService; +import xyz.playedu.api.types.mapper.CourseCategoryCountMapper; import xyz.playedu.api.types.paginate.CoursePaginateFiler; import xyz.playedu.api.types.paginate.PaginationResult; import xyz.playedu.api.util.HelperUtil; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author tengteng @@ -208,6 +207,16 @@ public class CourseServiceImpl extends ServiceImpl impleme public List chunks(List ids) { return list(query().getWrapper().in("id", ids)); } + + @Override + public Map getCategoryCount() { + return getBaseMapper().getCategoryCount().stream().collect(Collectors.toMap(CourseCategoryCountMapper::getCid, CourseCategoryCountMapper::getTotal)); + } + + @Override + public Integer total() { + return Math.toIntExact(count()); + } } 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 64a330a..6d9dfa6 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceServiceImpl.java @@ -14,15 +14,14 @@ import xyz.playedu.api.mapper.ResourceMapper; import org.springframework.stereotype.Service; import xyz.playedu.api.service.ResourceVideoService; 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.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author tengteng @@ -155,6 +154,16 @@ public class ResourceServiceImpl extends ServiceImpl i public List chunks(List ids, List fields) { return list(query().getWrapper().in("id", ids).select(fields)); } + + @Override + public Map getCategoryCount(String type) { + return getBaseMapper().getCategoryCount(type).stream().collect(Collectors.toMap(ResourceCategoryCountMapper::getCid, ResourceCategoryCountMapper::getTotal)); + } + + @Override + public Integer total(String type) { + return Math.toIntExact(count(query().getWrapper().eq("type", type))); + } } diff --git a/src/main/java/xyz/playedu/api/types/mapper/CourseCategoryCountMapper.java b/src/main/java/xyz/playedu/api/types/mapper/CourseCategoryCountMapper.java new file mode 100644 index 0000000..6701f89 --- /dev/null +++ b/src/main/java/xyz/playedu/api/types/mapper/CourseCategoryCountMapper.java @@ -0,0 +1,16 @@ +package xyz.playedu.api.types.mapper; + +import lombok.Data; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/15 11:18 + */ +@Data +public class CourseCategoryCountMapper { + + private Integer cid; + + private Integer total; + +} diff --git a/src/main/java/xyz/playedu/api/types/mapper/ResourceCategoryCountMapper.java b/src/main/java/xyz/playedu/api/types/mapper/ResourceCategoryCountMapper.java new file mode 100644 index 0000000..1892df0 --- /dev/null +++ b/src/main/java/xyz/playedu/api/types/mapper/ResourceCategoryCountMapper.java @@ -0,0 +1,16 @@ +package xyz.playedu.api.types.mapper; + +import lombok.Data; + +/** + * @Author 杭州白书科技有限公司 + * @create 2023/3/15 11:11 + */ +@Data +public class ResourceCategoryCountMapper { + + private Integer cid; + + private Integer total; + +} diff --git a/src/main/resources/mapper/CourseMapper.xml b/src/main/resources/mapper/CourseMapper.xml index d266f73..67bfd1e 100644 --- a/src/main/resources/mapper/CourseMapper.xml +++ b/src/main/resources/mapper/CourseMapper.xml @@ -17,8 +17,14 @@ - id,title,thumb, - charge,class_hour,is_show, + id,title,thumb, + charge,class_hour,is_show, created_at,updated_at,deleted_at + + diff --git a/src/main/resources/mapper/ResourceMapper.xml b/src/main/resources/mapper/ResourceMapper.xml index 39e29f3..58da2aa 100644 --- a/src/main/resources/mapper/ResourceMapper.xml +++ b/src/main/resources/mapper/ResourceMapper.xml @@ -21,10 +21,19 @@ - id,admin_id,type, - name,extension,size, - disk,file_id,path, - url,created_at,parent_id, + id,admin_id,type, + name,extension,size, + disk,file_id,path, + url,created_at,parent_id, is_hidden + + +