From 85f7afa6e848dc4d89ac76a1796917c613c8b7b8 Mon Sep 17 00:00:00 2001 From: none Date: Tue, 21 Mar 2023 15:47:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E8=AF=BE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=88=86=E7=B1=BB+=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/CourseController.java | 15 ++++--- .../backend/ResourceController.java | 1 - .../controller/frontend/UserController.java | 4 +- .../request/backend/CourseHourRequest.java | 2 - .../playedu/api/service/CourseService.java | 8 ++-- .../api/service/DepartmentService.java | 2 + .../api/service/ResourceCategoryService.java | 1 + .../api/service/impl/CourseServiceImpl.java | 39 +++++++++++++++---- .../service/impl/DepartmentServiceImpl.java | 10 +++-- .../impl/ResourceCategoryServiceImpl.java | 5 +++ 10 files changed, 62 insertions(+), 25 deletions(-) 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 d668960..3608098 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/CourseController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/CourseController.java @@ -14,10 +14,7 @@ import xyz.playedu.api.event.CourseDestroyEvent; import xyz.playedu.api.exception.NotFoundException; import xyz.playedu.api.middleware.BackendPermissionMiddleware; import xyz.playedu.api.request.backend.CourseRequest; -import xyz.playedu.api.service.CourseChapterService; -import xyz.playedu.api.service.CourseHourService; -import xyz.playedu.api.service.CourseService; -import xyz.playedu.api.service.ResourceCategoryService; +import xyz.playedu.api.service.*; import xyz.playedu.api.types.JsonResponse; import xyz.playedu.api.types.paginate.CoursePaginateFiler; import xyz.playedu.api.types.paginate.PaginationResult; @@ -47,6 +44,9 @@ public class CourseController { @Autowired private CourseHourService hourService; + @Autowired + private DepartmentService departmentService; + @Autowired private ApplicationContext ctx; @@ -75,7 +75,12 @@ public class CourseController { HashMap data = new HashMap<>(); data.put("data", result.getData()); data.put("total", result.getTotal()); - data.put("pure_total", courseService.total()); + + List courseIds = result.getData().stream().map(Course::getId).toList(); + data.put("course_category_ids", courseService.getCategoryIdsGroup(courseIds)); + data.put("course_dep_ids", courseService.getDepIdsGroup(courseIds)); + data.put("categories", categoryService.id2name()); + data.put("departments", departmentService.id2name()); return JsonResponse.data(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 8e80093..1f0fc6d 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java @@ -77,7 +77,6 @@ public class ResourceController { HashMap data = new HashMap<>(); data.put("result", result); - 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/controller/frontend/UserController.java b/src/main/java/xyz/playedu/api/controller/frontend/UserController.java index 67df0dc..9c14f5d 100644 --- a/src/main/java/xyz/playedu/api/controller/frontend/UserController.java +++ b/src/main/java/xyz/playedu/api/controller/frontend/UserController.java @@ -76,12 +76,12 @@ public class UserController { } // 读取部门课 - List depCourses = courseService.depCoursesAndShow(new ArrayList<>() {{ + List depCourses = courseService.getDepCoursesAndShow(new ArrayList<>() {{ add(depId); }}); // 公开课 - List openCourses = courseService.openCoursesAndShow(200); + List openCourses = courseService.getOpenCoursesAndShow(200); HashMap data = new HashMap<>(); data.put("open", openCourses.stream().collect(Collectors.groupingBy(Course::getIsRequired))); diff --git a/src/main/java/xyz/playedu/api/request/backend/CourseHourRequest.java b/src/main/java/xyz/playedu/api/request/backend/CourseHourRequest.java index 3ca2388..7a89a61 100644 --- a/src/main/java/xyz/playedu/api/request/backend/CourseHourRequest.java +++ b/src/main/java/xyz/playedu/api/request/backend/CourseHourRequest.java @@ -5,8 +5,6 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; -import java.util.Date; - /** * @Author 杭州白书科技有限公司 * @create 2023/2/26 18:00 diff --git a/src/main/java/xyz/playedu/api/service/CourseService.java b/src/main/java/xyz/playedu/api/service/CourseService.java index 6b2b700..8c73d2f 100644 --- a/src/main/java/xyz/playedu/api/service/CourseService.java +++ b/src/main/java/xyz/playedu/api/service/CourseService.java @@ -44,9 +44,11 @@ public interface CourseService extends IService { List chunks(List ids); - Integer total(); + List getOpenCoursesAndShow(Integer limit); - List openCoursesAndShow(Integer limit); + List getDepCoursesAndShow(List depIds); - List depCoursesAndShow(List depIds); + Map> getCategoryIdsGroup(List courseIds); + + Map> getDepIdsGroup(List courseIds); } diff --git a/src/main/java/xyz/playedu/api/service/DepartmentService.java b/src/main/java/xyz/playedu/api/service/DepartmentService.java index 162f665..7de6cfc 100644 --- a/src/main/java/xyz/playedu/api/service/DepartmentService.java +++ b/src/main/java/xyz/playedu/api/service/DepartmentService.java @@ -43,4 +43,6 @@ public interface DepartmentService extends IService { void resetSort(List ids); Map> groupByParent(); + + Map id2name(); } diff --git a/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java b/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java index 6b57a06..360449c 100644 --- a/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java +++ b/src/main/java/xyz/playedu/api/service/ResourceCategoryService.java @@ -40,4 +40,5 @@ public interface ResourceCategoryService extends IService { Map> groupByParent(); + Map id2name(); } 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 6141ce4..0bc083c 100644 --- a/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java @@ -1,6 +1,7 @@ package xyz.playedu.api.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import xyz.playedu.api.domain.ResourceCourseCategory; @@ -12,7 +13,6 @@ 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; @@ -25,6 +25,7 @@ import java.util.stream.Collectors; * @createDate 2023-02-24 14:14:01 */ @Service +@Slf4j public class CourseServiceImpl extends ServiceImpl implements CourseService { @Autowired @@ -170,19 +171,41 @@ public class CourseServiceImpl extends ServiceImpl impleme } @Override - public Integer total() { - return Math.toIntExact(count()); - } - - @Override - public List openCoursesAndShow(Integer limit) { + public List getOpenCoursesAndShow(Integer limit) { return getBaseMapper().openCoursesAndShow(limit); } @Override - public List depCoursesAndShow(List depIds) { + public List getDepCoursesAndShow(List depIds) { return list(query().getWrapper().in("id", courseDepartmentService.getCourseIdsByDepIds(depIds)).eq("is_show", 1)); } + + @Override + public Map> getCategoryIdsGroup(List courseIds) { + Map> data = courseCategoryService + .list(courseCategoryService.query().getWrapper().in("course_id", courseIds)) + .stream() + .collect(Collectors.groupingBy(ResourceCourseCategory::getCourseId)); + Map> result = new HashMap<>(); + data.forEach((courseId, records) -> { + result.put(courseId, records.stream().map(ResourceCourseCategory::getCategoryId).toList()); + }); + return result; + } + + @Override + public Map> getDepIdsGroup(List courseIds) { + Map> data = courseDepartmentService + .list(courseDepartmentService.query().getWrapper().in("course_id", courseIds)) + .stream() + .collect(Collectors.groupingBy(CourseDepartment::getCourseId)); + log.info("data {}", data); + Map> result = new HashMap<>(); + data.forEach((courseId, records) -> { + result.put(courseId, records.stream().map(CourseDepartment::getDepId).toList()); + }); + return result; + } } diff --git a/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java index 6229d0e..6f98897 100644 --- a/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/DepartmentServiceImpl.java @@ -15,10 +15,7 @@ import xyz.playedu.api.mapper.DepartmentMapper; import org.springframework.stereotype.Service; import xyz.playedu.api.service.internal.UserDepartmentService; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -221,6 +218,11 @@ public class DepartmentServiceImpl extends ServiceImpl> groupByParent() { return list(query().getWrapper().orderByAsc("sort")).stream().collect(Collectors.groupingBy(Department::getParentId)); } + + @Override + public Map id2name() { + return all().stream().collect(Collectors.toMap(Department::getId, Department::getName)); + } } diff --git a/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java index 5382430..23e49fc 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceCategoryServiceImpl.java @@ -204,6 +204,11 @@ public class ResourceCategoryServiceImpl extends ServiceImpl> groupByParent() { return list(query().getWrapper().orderByAsc("sort")).stream().collect(Collectors.groupingBy(ResourceCategory::getParentId)); } + + @Override + public Map id2name() { + return all().stream().collect(Collectors.toMap(ResourceCategory::getId, ResourceCategory::getName)); + } }