优化课程列表的分类+部门筛选过滤

This commit is contained in:
none
2023-03-09 10:37:40 +08:00
parent f6be76b851
commit 3388136fd7
5 changed files with 16 additions and 34 deletions

View File

@@ -12,7 +12,7 @@ import java.util.List;
*/
public interface CourseDepartmentService extends IService<CourseDepartment> {
List<Integer> getCourseIdsByDepIds(Integer[] depIds);
List<Integer> getCourseIdsByDepIds(List<Integer> depIds);
List<Integer> getDepIdsByCourseId(Integer courseId);

View File

@@ -18,29 +18,13 @@ import java.util.List;
public class CourseDepartmentServiceImpl extends ServiceImpl<CourseDepartmentMapper, CourseDepartment>
implements CourseDepartmentService {
@Override
public List<Integer> getCourseIdsByDepIds(Integer[] depIds) {
List<Integer> ids = new ArrayList<>();
List<CourseDepartment> courseDepartments = list(query().getWrapper().in("dep_id", depIds));
if (courseDepartments.size() == 0) {
return ids;
}
for (CourseDepartment courseDepartment : courseDepartments) {
ids.add(courseDepartment.getCourseId());
}
return ids;
public List<Integer> getCourseIdsByDepIds(List<Integer> depIds) {
return list(query().getWrapper().in("dep_id", depIds)).stream().map(CourseDepartment::getCourseId).toList();
}
@Override
public List<Integer> getDepIdsByCourseId(Integer courseId) {
List<Integer> ids = new ArrayList<>();
List<CourseDepartment> courseDepartments = list(query().getWrapper().eq("course_id", courseId));
if (courseDepartments.size() == 0) {
return ids;
}
for (CourseDepartment courseDepartment : courseDepartments) {
ids.add(courseDepartment.getDepId());
}
return ids;
return list(query().getWrapper().eq("course_id", courseId)).stream().map(CourseDepartment::getDepId).toList();
}
@Override

View File

@@ -20,6 +20,7 @@ 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;
@@ -44,15 +45,17 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
if (filter.getTitle() != null && filter.getTitle().length() > 0) {
wrapper.like("title", "%" + filter.getTitle() + "%");
}
if (filter.getDepIds() != null && filter.getDepIds().length > 0) {
List<Integer> courseIds = courseDepartmentService.getCourseIdsByDepIds(filter.getDepIds());
if (filter.getDepIds() != null && filter.getDepIds().trim().length() > 0) {
List<Integer> depIds = Arrays.stream(filter.getDepIds().split(",")).map(Integer::valueOf).toList();
List<Integer> courseIds = courseDepartmentService.getCourseIdsByDepIds(depIds);
if (courseIds == null || courseIds.size() == 0) {
courseIds = HelperUtil.zeroIntegerList();
}
wrapper.in("id", courseIds);
}
if (filter.getCategoryIds() != null && filter.getCategoryIds().length > 0) {
List<Integer> courseIds = courseCategoryService.getCourseIdsByCategoryIds(List.of(filter.getCategoryIds()));
if (filter.getCategoryIds() != null && filter.getCategoryIds().trim().length() > 0) {
List<Integer> categoryIds = Arrays.stream(filter.getCategoryIds().split(",")).map(Integer::valueOf).toList();
List<Integer> courseIds = courseCategoryService.getCourseIdsByCategoryIds(categoryIds);
if (courseIds == null || courseIds.size() == 0) {
courseIds = HelperUtil.zeroIntegerList();
}