package com.nju.edu.eval.service.serviceImpl; import com.nju.edu.eval.data.dao.CourseDao; import com.nju.edu.eval.data.dao.UserDao; import com.nju.edu.eval.data.entity.Course; import com.nju.edu.eval.data.entity.User; import com.nju.edu.eval.exception.MyServiceException; import com.nju.edu.eval.model.vo.course.CourseVO; import com.nju.edu.eval.service.CourseService; import com.nju.edu.eval.service.convertor.CourseConvertor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; /** * @author weijin */ @Service public class CourseServiceImpl implements CourseService { private final CourseDao courseDao; private final UserDao userDao; @Autowired public CourseServiceImpl(CourseDao courseDao, UserDao userDao) { this.courseDao = courseDao; this.userDao = userDao; } @Override public CourseVO createCourse(CourseVO courseVO, Integer teacherId) { Course course = new Course(courseVO.getName(), courseVO.getCode(), teacherId, courseVO.getIsPublic()?1:0); courseDao.save(course); courseVO.setId(course.getId()); return courseVO; } @Override public boolean updateCourse(CourseVO courseVO, Integer teacherId) { Course course = courseDao.findById(courseVO.getId()).orElse(null); if (course == null) { throw new MyServiceException("A0201", "无对应的课程"); } else if (!teacherId.equals(course.getTeacherId())) { throw new MyServiceException("A0301", "访问未授权"); } else { Course course1 = CourseConvertor.convertToEntity(courseVO); course1.setTeacherId(course.getTeacherId()); courseDao.save(course1); return true; } } @Override public List getCourseByTeacher(Integer teacherId) { User user = userDao.findById(teacherId).orElse(null); if (user == null) { throw new MyServiceException("A0201", "用户账号不存在"); } else { return courseDao.findAllByTeacherId(teacherId).stream() .map(CourseConvertor::convertToVO).collect(Collectors.toList()); } } }