|
|
@@ -0,0 +1,59 @@
|
|
|
+package cn.seecoder.seecoderportalserver.service;
|
|
|
+
|
|
|
+import cn.seecoder.seecoderportalcommon.vo.CourseSelectionVO;
|
|
|
+import cn.seecoder.seecoderportalserver.domain.Course;
|
|
|
+import cn.seecoder.seecoderportalserver.domain.CourseSelection;
|
|
|
+import cn.seecoder.seecoderportalserver.domain.CourseSelectionKey;
|
|
|
+import cn.seecoder.seecoderportalserver.domain.User;
|
|
|
+import cn.seecoder.seecoderportalserver.mapper.CourseSelectionMapper;
|
|
|
+import cn.seecoder.seecoderportalserver.repository.CourseRepository;
|
|
|
+import cn.seecoder.seecoderportalserver.repository.CourseSelectionRepository;
|
|
|
+import cn.seecoder.seecoderportalserver.repository.UserRepository;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.Optional;
|
|
|
+
|
|
|
+@Service
|
|
|
+@Transactional(rollbackFor = RuntimeException.class)
|
|
|
+public class CourseSelectionService {
|
|
|
+ private final CourseSelectionRepository courseSelectionRepository;
|
|
|
+ private final CourseSelectionMapper courseSelectionMapper;
|
|
|
+ private final UserRepository userRepository;
|
|
|
+ private final CourseRepository courseRepository;
|
|
|
+
|
|
|
+ public CourseSelectionService(CourseSelectionRepository courseSelectionRepository, CourseSelectionMapper courseSelectionMapper, UserRepository userRepository, CourseRepository courseRepository) {
|
|
|
+ this.courseSelectionRepository = courseSelectionRepository;
|
|
|
+ this.courseSelectionMapper = courseSelectionMapper;
|
|
|
+ this.userRepository = userRepository;
|
|
|
+ this.courseRepository = courseRepository;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String confirmCourseSelection(CourseSelectionVO courseSelectionVO) {
|
|
|
+ Optional<User> user = userRepository.findById(courseSelectionVO.getUserId());
|
|
|
+ if (!user.isPresent()) return "用户不存在";
|
|
|
+ Optional<Course> course = courseRepository.findById(courseSelectionVO.getCourseId());
|
|
|
+ if (!course.isPresent()) return "课程不存在";
|
|
|
+ CourseSelection courseSelection = courseSelectionMapper.toCourseSelection(courseSelectionVO);
|
|
|
+ courseSelection.setState(true);
|
|
|
+ courseSelectionRepository.save(courseSelection);
|
|
|
+ return "选课成功";
|
|
|
+ }
|
|
|
+
|
|
|
+ public String cancelCourseSelection(CourseSelectionVO courseSelectionVO) {
|
|
|
+ Optional<User> user = userRepository.findById(courseSelectionVO.getUserId());
|
|
|
+ if (!user.isPresent()) return "用户不存在";
|
|
|
+ Optional<Course> course = courseRepository.findById(courseSelectionVO.getCourseId());
|
|
|
+ if (!course.isPresent()) return "课程不存在";
|
|
|
+ CourseSelectionKey courseSelectionKey = courseSelectionMapper.toCourseSelectionKey(courseSelectionVO);
|
|
|
+ Optional<CourseSelection> record = courseSelectionRepository.findById(courseSelectionKey);
|
|
|
+ if(record.isPresent()){
|
|
|
+ CourseSelection courseSelection = record.get();
|
|
|
+ courseSelection.setState(false);
|
|
|
+ courseSelectionRepository.save(courseSelection);
|
|
|
+ return "选课记录已删除";
|
|
|
+ }else{
|
|
|
+ return "选课记录不存在";
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|