|
|
@@ -3,9 +3,11 @@ package cn.seecoder.seecoderportalserver.service;
|
|
|
import cn.seecoder.seecoderportalcommon.vo.CourseState;
|
|
|
import cn.seecoder.seecoderportalcommon.vo.CourseVO;
|
|
|
import cn.seecoder.seecoderportalserver.domain.Course;
|
|
|
+import cn.seecoder.seecoderportalserver.domain.CourseSelection;
|
|
|
import cn.seecoder.seecoderportalserver.domain.User;
|
|
|
import cn.seecoder.seecoderportalserver.mapper.CourseMapper;
|
|
|
import cn.seecoder.seecoderportalserver.repository.CourseRepository;
|
|
|
+import cn.seecoder.seecoderportalserver.repository.CourseSelectionRepository;
|
|
|
import cn.seecoder.seecoderportalserver.repository.UserRepository;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
@@ -24,18 +26,20 @@ public class CourseService {
|
|
|
private final CourseRepository courseRepository;
|
|
|
private final CourseMapper courseMapper;
|
|
|
private final UserRepository userRepository;
|
|
|
+ private final CourseSelectionRepository courseSelectionRepository;
|
|
|
|
|
|
- public CourseService(CourseRepository courseRepository, CourseMapper courseMapper, UserRepository userRepository) {
|
|
|
+ public CourseService(CourseRepository courseRepository, CourseMapper courseMapper, UserRepository userRepository, CourseSelectionRepository courseSelectionRepository) {
|
|
|
this.courseRepository = courseRepository;
|
|
|
this.courseMapper = courseMapper;
|
|
|
this.userRepository = userRepository;
|
|
|
+ this.courseSelectionRepository = courseSelectionRepository;
|
|
|
}
|
|
|
|
|
|
- public CourseVO getCourse(Long courseId){
|
|
|
+ public CourseVO getCourse(Long courseId) {
|
|
|
Optional<Course> course = courseRepository.findById(courseId);
|
|
|
- if(course.isPresent()){
|
|
|
+ if (course.isPresent()) {
|
|
|
return courseMapper.courseToCourseVO(course.get());
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
@@ -43,7 +47,7 @@ public class CourseService {
|
|
|
public CourseVO createCourse(CourseVO courseVO) {
|
|
|
Optional<User> teacher = userRepository.findById(courseVO.getTeacher().getId());
|
|
|
// 确认授课老师ID存在
|
|
|
- if(!teacher.isPresent()){
|
|
|
+ if (!teacher.isPresent()) {
|
|
|
return null;
|
|
|
}
|
|
|
// todo: evalId, coderId, helperId
|
|
|
@@ -53,36 +57,42 @@ public class CourseService {
|
|
|
return courseMapper.courseToCourseVO(result);
|
|
|
}
|
|
|
|
|
|
- public CourseVO updateCourse(CourseVO courseVO){
|
|
|
+ public CourseVO updateCourse(CourseVO courseVO) {
|
|
|
Course course = courseMapper.courseVOToCourse(courseVO);
|
|
|
Course result = courseRepository.save(course);
|
|
|
return courseMapper.courseToCourseVO(result);
|
|
|
}
|
|
|
|
|
|
- public String deleteCourse(Long courseId){
|
|
|
+ public String deleteCourse(Long courseId) {
|
|
|
Optional<Course> course = courseRepository.findById(courseId);
|
|
|
- if(course.isPresent()){
|
|
|
+ if (course.isPresent()) {
|
|
|
courseRepository.deleteById(courseId);
|
|
|
return "课程删除成功";
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
return "该课程不存在";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public List<CourseVO> getAllCourses(){
|
|
|
+ public List<CourseVO> getAllCourses() {
|
|
|
List<Course> courses = courseRepository.findAll();
|
|
|
List<CourseVO> courseVOs = courses.stream().map(courseMapper::courseToCourseVO).collect(Collectors.toList());
|
|
|
return courseVOs;
|
|
|
}
|
|
|
|
|
|
- public List<CourseVO> getTeacherCourses(Long teacherId){
|
|
|
+ public List<CourseVO> getTeacherCourses(Long teacherId) {
|
|
|
List<Course> courses = courseRepository.findCoursesByTeacherId(teacherId);
|
|
|
List<CourseVO> courseVOs = courses.stream().map(courseMapper::courseToCourseVO).collect(Collectors.toList());
|
|
|
return courseVOs;
|
|
|
}
|
|
|
|
|
|
- // todo
|
|
|
- public List<CourseVO> getStudentCourses(Long studentId){
|
|
|
- return null;
|
|
|
+ public List<CourseVO> getStudentCourses(Long studentId) {
|
|
|
+ List<CourseSelection> courseSelections = courseSelectionRepository.findCourseSelectionsByUserId(studentId);
|
|
|
+ List<CourseVO> courseVOs = courseSelections.stream()
|
|
|
+ .map(courseSelection -> courseMapper
|
|
|
+ .courseToCourseVO(courseRepository
|
|
|
+ .findById(courseSelection.getCourseId())
|
|
|
+ .get()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ return courseVOs;
|
|
|
}
|
|
|
}
|