From 2bb9e7491b3a7b15fbc75b184fadd6a52340369a Mon Sep 17 00:00:00 2001 From: none Date: Mon, 8 May 2023 10:41:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E5=91=98=E5=85=A8=E9=83=A8=E8=AF=BE?= =?UTF-8?q?=E7=A8=8Bapi=E5=A2=9E=E5=8A=A0=E5=88=86=E7=B1=BB=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/frontend/UserController.java | 7 ++-- .../xyz/playedu/api/mapper/CourseMapper.java | 2 +- .../playedu/api/service/CourseService.java | 4 +++ .../api/service/impl/CourseServiceImpl.java | 36 ++++++++++++++++++- src/main/resources/mapper/CourseMapper.xml | 9 +++-- 5 files changed, 51 insertions(+), 7 deletions(-) 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 06fd273..17f9c52 100644 --- a/src/main/java/xyz/playedu/api/controller/frontend/UserController.java +++ b/src/main/java/xyz/playedu/api/controller/frontend/UserController.java @@ -106,6 +106,8 @@ public class UserController { return JsonResponse.error("请选择部门"); } + Integer categoryId = MapUtils.getInteger(params, "category_id"); + List userJoinDepIds = userService.getDepIdsByUserId(FCtx.getId()); if (userJoinDepIds == null) { return JsonResponse.error("当前学员未加入任何部门"); @@ -126,9 +128,10 @@ public class UserController { { add(depId); } - }); + }, + categoryId); // 全部部门课 - List openCourses = courseService.getOpenCoursesAndShow(500); + List openCourses = courseService.getOpenCoursesAndShow(500, categoryId); // 汇总到一个list中 if (depCourses != null && depCourses.size() > 0) { courses.addAll(depCourses); diff --git a/src/main/java/xyz/playedu/api/mapper/CourseMapper.java b/src/main/java/xyz/playedu/api/mapper/CourseMapper.java index 140f0e1..591ff57 100644 --- a/src/main/java/xyz/playedu/api/mapper/CourseMapper.java +++ b/src/main/java/xyz/playedu/api/mapper/CourseMapper.java @@ -36,5 +36,5 @@ public interface CourseMapper extends BaseMapper { Long paginateCount(CoursePaginateFiler filer); - List openCoursesAndShow(Integer limit); + List openCoursesAndShow(Integer limit, Integer categoryId); } diff --git a/src/main/java/xyz/playedu/api/service/CourseService.java b/src/main/java/xyz/playedu/api/service/CourseService.java index 3b2caf1..d82a7a3 100644 --- a/src/main/java/xyz/playedu/api/service/CourseService.java +++ b/src/main/java/xyz/playedu/api/service/CourseService.java @@ -77,8 +77,12 @@ public interface CourseService extends IService { List getOpenCoursesAndShow(Integer limit); + List getOpenCoursesAndShow(Integer limit, Integer categoryId); + List getDepCoursesAndShow(List depIds); + List getDepCoursesAndShow(List depIds, Integer categoryId); + Map> getCategoryIdsGroup(List courseIds); Map> getDepIdsGroup(List courseIds); 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 23225fc..c784c3c 100644 --- a/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/CourseServiceImpl.java @@ -209,7 +209,41 @@ public class CourseServiceImpl extends ServiceImpl impleme @Override public List getOpenCoursesAndShow(Integer limit) { - return getBaseMapper().openCoursesAndShow(limit); + return getBaseMapper().openCoursesAndShow(limit, 0); + } + + @Override + public List getOpenCoursesAndShow(Integer limit, Integer categoryId) { + return getBaseMapper().openCoursesAndShow(limit, categoryId); + } + + @Override + public List getDepCoursesAndShow(List depIds, Integer categoryId) { + if (depIds == null || depIds.size() == 0) { + return new ArrayList<>(); + } + List courseIds = courseDepartmentService.getCourseIdsByDepIds(depIds); + if (courseIds == null || courseIds.size() == 0) { + return new ArrayList<>(); + } + if (categoryId != null && categoryId > 0) { + List tmpCourseIds = + courseCategoryService.getCourseIdsByCategoryIds( + new ArrayList<>() { + { + add(categoryId); + } + }); + if (tmpCourseIds == null || tmpCourseIds.size() == 0) { + return new ArrayList<>(); + } + // 取交集 + courseIds.retainAll(tmpCourseIds); + } + if (courseIds.size() == 0) { + return new ArrayList<>(); + } + return list(query().getWrapper().in("id", courseIds).eq("is_show", 1)); } @Override diff --git a/src/main/resources/mapper/CourseMapper.xml b/src/main/resources/mapper/CourseMapper.xml index d99fd66..f03a8b1 100644 --- a/src/main/resources/mapper/CourseMapper.xml +++ b/src/main/resources/mapper/CourseMapper.xml @@ -171,9 +171,12 @@