线上课列表返回分类+部门

This commit is contained in:
none
2023-03-21 15:47:08 +08:00
parent 9a3b8138f5
commit 85f7afa6e8
10 changed files with 62 additions and 25 deletions

View File

@@ -44,9 +44,11 @@ public interface CourseService extends IService<Course> {
List<Course> chunks(List<Integer> ids);
Integer total();
List<Course> getOpenCoursesAndShow(Integer limit);
List<Course> openCoursesAndShow(Integer limit);
List<Course> getDepCoursesAndShow(List<Integer> depIds);
List<Course> depCoursesAndShow(List<Integer> depIds);
Map<Integer, List<Integer>> getCategoryIdsGroup(List<Integer> courseIds);
Map<Integer, List<Integer>> getDepIdsGroup(List<Integer> courseIds);
}

View File

@@ -43,4 +43,6 @@ public interface DepartmentService extends IService<Department> {
void resetSort(List<Integer> ids);
Map<Integer, List<Department>> groupByParent();
Map<Integer, String> id2name();
}

View File

@@ -40,4 +40,5 @@ public interface ResourceCategoryService extends IService<ResourceCategory> {
Map<Integer, List<ResourceCategory>> groupByParent();
Map<Integer, String> id2name();
}

View File

@@ -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<CourseMapper, Course> implements CourseService {
@Autowired
@@ -170,19 +171,41 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
}
@Override
public Integer total() {
return Math.toIntExact(count());
}
@Override
public List<Course> openCoursesAndShow(Integer limit) {
public List<Course> getOpenCoursesAndShow(Integer limit) {
return getBaseMapper().openCoursesAndShow(limit);
}
@Override
public List<Course> depCoursesAndShow(List<Integer> depIds) {
public List<Course> getDepCoursesAndShow(List<Integer> depIds) {
return list(query().getWrapper().in("id", courseDepartmentService.getCourseIdsByDepIds(depIds)).eq("is_show", 1));
}
@Override
public Map<Integer, List<Integer>> getCategoryIdsGroup(List<Integer> courseIds) {
Map<Integer, List<ResourceCourseCategory>> data = courseCategoryService
.list(courseCategoryService.query().getWrapper().in("course_id", courseIds))
.stream()
.collect(Collectors.groupingBy(ResourceCourseCategory::getCourseId));
Map<Integer, List<Integer>> result = new HashMap<>();
data.forEach((courseId, records) -> {
result.put(courseId, records.stream().map(ResourceCourseCategory::getCategoryId).toList());
});
return result;
}
@Override
public Map<Integer, List<Integer>> getDepIdsGroup(List<Integer> courseIds) {
Map<Integer, List<CourseDepartment>> data = courseDepartmentService
.list(courseDepartmentService.query().getWrapper().in("course_id", courseIds))
.stream()
.collect(Collectors.groupingBy(CourseDepartment::getCourseId));
log.info("data {}", data);
Map<Integer, List<Integer>> result = new HashMap<>();
data.forEach((courseId, records) -> {
result.put(courseId, records.stream().map(CourseDepartment::getDepId).toList());
});
return result;
}
}

View File

@@ -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<DepartmentMapper, Departm
public Map<Integer, List<Department>> groupByParent() {
return list(query().getWrapper().orderByAsc("sort")).stream().collect(Collectors.groupingBy(Department::getParentId));
}
@Override
public Map<Integer, String> id2name() {
return all().stream().collect(Collectors.toMap(Department::getId, Department::getName));
}
}

View File

@@ -204,6 +204,11 @@ public class ResourceCategoryServiceImpl extends ServiceImpl<ResourceCategoryMap
public Map<Integer, List<ResourceCategory>> groupByParent() {
return list(query().getWrapper().orderByAsc("sort")).stream().collect(Collectors.groupingBy(ResourceCategory::getParentId));
}
@Override
public Map<Integer, String> id2name() {
return all().stream().collect(Collectors.toMap(ResourceCategory::getId, ResourceCategory::getName));
}
}