mirror of
https://github.com/PlayEdu/PlayEdu
synced 2025-07-22 08:59:34 +08:00
线上课列表返回分类+部门
This commit is contained in:
parent
9a3b8138f5
commit
85f7afa6e8
@ -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<String, Object> data = new HashMap<>();
|
||||
data.put("data", result.getData());
|
||||
data.put("total", result.getTotal());
|
||||
data.put("pure_total", courseService.total());
|
||||
|
||||
List<Integer> 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);
|
||||
}
|
||||
|
@ -77,7 +77,6 @@ public class ResourceController {
|
||||
|
||||
HashMap<String, Object> data = new HashMap<>();
|
||||
data.put("result", result);
|
||||
data.put("pure_total", resourceService.total(type));
|
||||
|
||||
if (type.equals(BackendConstant.RESOURCE_TYPE_VIDEO)) {
|
||||
List<ResourceVideo> resourceVideos = resourceVideoService.chunksByRids(result.getData().stream().map(Resource::getId).toList());
|
||||
|
@ -76,12 +76,12 @@ public class UserController {
|
||||
}
|
||||
|
||||
// 读取部门课
|
||||
List<Course> depCourses = courseService.depCoursesAndShow(new ArrayList<>() {{
|
||||
List<Course> depCourses = courseService.getDepCoursesAndShow(new ArrayList<>() {{
|
||||
add(depId);
|
||||
}});
|
||||
|
||||
// 公开课
|
||||
List<Course> openCourses = courseService.openCoursesAndShow(200);
|
||||
List<Course> openCourses = courseService.getOpenCoursesAndShow(200);
|
||||
|
||||
HashMap<String, Object> data = new HashMap<>();
|
||||
data.put("open", openCourses.stream().collect(Collectors.groupingBy(Course::getIsRequired)));
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -43,4 +43,6 @@ public interface DepartmentService extends IService<Department> {
|
||||
void resetSort(List<Integer> ids);
|
||||
|
||||
Map<Integer, List<Department>> groupByParent();
|
||||
|
||||
Map<Integer, String> id2name();
|
||||
}
|
||||
|
@ -40,4 +40,5 @@ public interface ResourceCategoryService extends IService<ResourceCategory> {
|
||||
|
||||
Map<Integer, List<ResourceCategory>> groupByParent();
|
||||
|
||||
Map<Integer, String> id2name();
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user