mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-06-21 19:32:41 +08:00
优化课程列表的分类+部门筛选过滤
This commit is contained in:
parent
f6be76b851
commit
3388136fd7
@ -47,6 +47,7 @@ public class CourseController {
|
|||||||
Integer size = MapUtils.getInteger(params, "size", 10);
|
Integer size = MapUtils.getInteger(params, "size", 10);
|
||||||
String sortField = MapUtils.getString(params, "sort_field");
|
String sortField = MapUtils.getString(params, "sort_field");
|
||||||
String sortAlgo = MapUtils.getString(params, "sort_algo");
|
String sortAlgo = MapUtils.getString(params, "sort_algo");
|
||||||
|
|
||||||
String title = MapUtils.getString(params, "title");
|
String title = MapUtils.getString(params, "title");
|
||||||
String depIds = MapUtils.getString(params, "dep_ids");
|
String depIds = MapUtils.getString(params, "dep_ids");
|
||||||
String categoryIds = MapUtils.getString(params, "category_ids");
|
String categoryIds = MapUtils.getString(params, "category_ids");
|
||||||
@ -55,14 +56,8 @@ public class CourseController {
|
|||||||
filter.setTitle(title);
|
filter.setTitle(title);
|
||||||
filter.setSortField(sortField);
|
filter.setSortField(sortField);
|
||||||
filter.setSortAlgo(sortAlgo);
|
filter.setSortAlgo(sortAlgo);
|
||||||
if (depIds != null && depIds.length() > 0) {
|
filter.setCategoryIds(categoryIds);
|
||||||
filter.setDepIds(Arrays.stream(depIds.split(",")).map(Integer::valueOf).toArray(Integer[]::new));
|
filter.setDepIds(depIds);
|
||||||
}
|
|
||||||
if (categoryIds != null && categoryIds.length() > 0) {
|
|
||||||
filter.setCategoryIds(Arrays.stream(categoryIds.split(",")).map(Integer::valueOf).toArray(Integer[]::new));
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info("filter:" + filter);
|
|
||||||
|
|
||||||
PaginationResult<Course> result = courseService.paginate(page, size, filter);
|
PaginationResult<Course> result = courseService.paginate(page, size, filter);
|
||||||
return JsonResponse.data(result);
|
return JsonResponse.data(result);
|
||||||
|
@ -12,7 +12,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface CourseDepartmentService extends IService<CourseDepartment> {
|
public interface CourseDepartmentService extends IService<CourseDepartment> {
|
||||||
|
|
||||||
List<Integer> getCourseIdsByDepIds(Integer[] depIds);
|
List<Integer> getCourseIdsByDepIds(List<Integer> depIds);
|
||||||
|
|
||||||
List<Integer> getDepIdsByCourseId(Integer courseId);
|
List<Integer> getDepIdsByCourseId(Integer courseId);
|
||||||
|
|
||||||
|
@ -18,29 +18,13 @@ import java.util.List;
|
|||||||
public class CourseDepartmentServiceImpl extends ServiceImpl<CourseDepartmentMapper, CourseDepartment>
|
public class CourseDepartmentServiceImpl extends ServiceImpl<CourseDepartmentMapper, CourseDepartment>
|
||||||
implements CourseDepartmentService {
|
implements CourseDepartmentService {
|
||||||
@Override
|
@Override
|
||||||
public List<Integer> getCourseIdsByDepIds(Integer[] depIds) {
|
public List<Integer> getCourseIdsByDepIds(List<Integer> depIds) {
|
||||||
List<Integer> ids = new ArrayList<>();
|
return list(query().getWrapper().in("dep_id", depIds)).stream().map(CourseDepartment::getCourseId).toList();
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Integer> getDepIdsByCourseId(Integer courseId) {
|
public List<Integer> getDepIdsByCourseId(Integer courseId) {
|
||||||
List<Integer> ids = new ArrayList<>();
|
return list(query().getWrapper().eq("course_id", courseId)).stream().map(CourseDepartment::getDepId).toList();
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -20,6 +20,7 @@ import xyz.playedu.api.types.paginate.PaginationResult;
|
|||||||
import xyz.playedu.api.util.HelperUtil;
|
import xyz.playedu.api.util.HelperUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -44,15 +45,17 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
|
|||||||
if (filter.getTitle() != null && filter.getTitle().length() > 0) {
|
if (filter.getTitle() != null && filter.getTitle().length() > 0) {
|
||||||
wrapper.like("title", "%" + filter.getTitle() + "%");
|
wrapper.like("title", "%" + filter.getTitle() + "%");
|
||||||
}
|
}
|
||||||
if (filter.getDepIds() != null && filter.getDepIds().length > 0) {
|
if (filter.getDepIds() != null && filter.getDepIds().trim().length() > 0) {
|
||||||
List<Integer> courseIds = courseDepartmentService.getCourseIdsByDepIds(filter.getDepIds());
|
List<Integer> depIds = Arrays.stream(filter.getDepIds().split(",")).map(Integer::valueOf).toList();
|
||||||
|
List<Integer> courseIds = courseDepartmentService.getCourseIdsByDepIds(depIds);
|
||||||
if (courseIds == null || courseIds.size() == 0) {
|
if (courseIds == null || courseIds.size() == 0) {
|
||||||
courseIds = HelperUtil.zeroIntegerList();
|
courseIds = HelperUtil.zeroIntegerList();
|
||||||
}
|
}
|
||||||
wrapper.in("id", courseIds);
|
wrapper.in("id", courseIds);
|
||||||
}
|
}
|
||||||
if (filter.getCategoryIds() != null && filter.getCategoryIds().length > 0) {
|
if (filter.getCategoryIds() != null && filter.getCategoryIds().trim().length() > 0) {
|
||||||
List<Integer> courseIds = courseCategoryService.getCourseIdsByCategoryIds(List.of(filter.getCategoryIds()));
|
List<Integer> categoryIds = Arrays.stream(filter.getCategoryIds().split(",")).map(Integer::valueOf).toList();
|
||||||
|
List<Integer> courseIds = courseCategoryService.getCourseIdsByCategoryIds(categoryIds);
|
||||||
if (courseIds == null || courseIds.size() == 0) {
|
if (courseIds == null || courseIds.size() == 0) {
|
||||||
courseIds = HelperUtil.zeroIntegerList();
|
courseIds = HelperUtil.zeroIntegerList();
|
||||||
}
|
}
|
||||||
|
@ -11,9 +11,9 @@ public class CoursePaginateFiler {
|
|||||||
|
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
private Integer[] depIds;
|
private String depIds;
|
||||||
|
|
||||||
private Integer[] categoryIds;
|
private String categoryIds;
|
||||||
|
|
||||||
private String sortField;
|
private String sortField;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user