|
|
@@ -12,12 +12,14 @@ import nju.seec.helper.dto.SlideDTO;
|
|
|
import nju.seec.helper.dto.SlideStateDTO;
|
|
|
import nju.seec.helper.entity.Course;
|
|
|
import nju.seec.helper.entity.Slide;
|
|
|
-import nju.seec.helper.service.AuthUtil;
|
|
|
+import nju.seec.helper.service.MessageService;
|
|
|
import nju.seec.helper.service.SlideService;
|
|
|
+import nju.seec.helper.service.util.AuthUtils;
|
|
|
import nju.seec.helper.util.CacheUtils;
|
|
|
import nju.seec.helper.util.Consts;
|
|
|
import nju.seec.helper.util.FileUtils;
|
|
|
import nju.seec.helper.util.enums.ExceptionType;
|
|
|
+import nju.seec.helper.util.enums.MessageType;
|
|
|
import nju.seec.helper.util.enums.SlideState;
|
|
|
import nju.seec.helper.util.exception.HelperException;
|
|
|
import nju.seec.helper.vo.SlideVO;
|
|
|
@@ -31,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
import java.io.InputStream;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.Set;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
|
@@ -47,12 +50,15 @@ public class SlideServiceImpl implements SlideService {
|
|
|
private final FileUtils fileUtils;
|
|
|
private final CacheUtils cacheUtils;
|
|
|
|
|
|
- public SlideServiceImpl(CourseDAO courseDAO, SlideDAO slideDAO, ChooseDAO chooseDAO, FileUtils fileUtils, CacheUtils cacheUtils) {
|
|
|
+ private final MessageService messageService;
|
|
|
+
|
|
|
+ public SlideServiceImpl(CourseDAO courseDAO, SlideDAO slideDAO, ChooseDAO chooseDAO, FileUtils fileUtils, CacheUtils cacheUtils, MessageService messageService) {
|
|
|
this.courseDAO = courseDAO;
|
|
|
this.slideDAO = slideDAO;
|
|
|
this.chooseDAO = chooseDAO;
|
|
|
this.fileUtils = fileUtils;
|
|
|
this.cacheUtils = cacheUtils;
|
|
|
+ this.messageService = messageService;
|
|
|
}
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
@@ -60,7 +66,7 @@ public class SlideServiceImpl implements SlideService {
|
|
|
@Override
|
|
|
public SlideVO createSlide(LoginUser teacher, SlideDTO slideDTO) {
|
|
|
Course course = courseDAO.findCourseById(slideDTO.getCourseId());
|
|
|
- AuthUtil.checkDataAuth(teacher.getId(), course.getTeacherId(), "您无权创建该课程的幻灯片");
|
|
|
+ AuthUtils.checkDataAuth(teacher.getId(), course.getTeacherId(), "您无权创建该课程的幻灯片");
|
|
|
|
|
|
Slide slide = new Slide()
|
|
|
.setCourseId(slideDTO.getCourseId())
|
|
|
@@ -97,7 +103,7 @@ public class SlideServiceImpl implements SlideService {
|
|
|
@Override
|
|
|
public SlideVO modifySlide(LoginUser user, ModifySlideDTO modifySlideDTO) {
|
|
|
Slide slide = slideDAO.findSlideById(modifySlideDTO.getId());
|
|
|
- AuthUtil.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权修改该幻灯片");
|
|
|
+ AuthUtils.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权修改该幻灯片");
|
|
|
|
|
|
slide.setName(modifySlideDTO.getName());
|
|
|
slide = slideDAO.save(slide);
|
|
|
@@ -108,9 +114,13 @@ public class SlideServiceImpl implements SlideService {
|
|
|
@Override
|
|
|
public void modifySlideState(LoginUser user, SlideStateDTO slideStateDTO) {
|
|
|
Slide slide = slideDAO.findSlideById(slideStateDTO.getId());
|
|
|
- AuthUtil.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权修改该幻灯片状态");
|
|
|
+ AuthUtils.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权修改该幻灯片状态");
|
|
|
|
|
|
slide.setState(slideStateDTO.getState());
|
|
|
+ if (slide.getState() == SlideState.IN_CLASS) {
|
|
|
+ Set<Integer> studentIds = chooseDAO.findStudentIdsByCourseId(slide.getCourseId());
|
|
|
+ messageService.createMessage(studentIds, MessageType.SLIDE_IN_CLASS, String.format("【%s】课程的【%s】已开课,请及时学习", slide.getCourseName(), slide.getName()), slide.getId());
|
|
|
+ }
|
|
|
slideDAO.save(slide);
|
|
|
}
|
|
|
|
|
|
@@ -118,7 +128,7 @@ public class SlideServiceImpl implements SlideService {
|
|
|
@Override
|
|
|
public void removeSlide(LoginUser user, Integer slideId) {
|
|
|
Slide slide = slideDAO.findSlideById(slideId);
|
|
|
- AuthUtil.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权删除该幻灯片");
|
|
|
+ AuthUtils.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权删除该幻灯片");
|
|
|
|
|
|
slide.setDeleteAt(System.currentTimeMillis());
|
|
|
slideDAO.save(slide);
|