Преглед изворни кода

feat: 增加修改幻灯片状态接口

ChenSiTong пре 6 година
родитељ
комит
7876f4383f

+ 2 - 2
src/main/java/nju/seec/helper/controller/CodeController.java

@@ -32,7 +32,7 @@ public class CodeController {
      */
     @PostMapping("/email")
     public EmptyResponse sendEmailCode(String email) {
-        if (!Pattern.matches(Consts.SCHOOL_EMAIL_REGEX, email)) {
+        if (email == null || !Pattern.matches(Consts.SCHOOL_EMAIL_REGEX, email)) {
             throw HelperException.of(HelperException.ExceptionType.PARAM_ERROR, "该邮箱不是南大校邮");
         }
         codeService.sendEmailCode(email);
@@ -47,7 +47,7 @@ public class CodeController {
      */
     @PostMapping("/phone")
     public EmptyResponse sendPhoneCode(String phone) {
-        if (!Pattern.matches(Consts.PHONE_REGEX, phone)) {
+        if (phone == null || !Pattern.matches(Consts.PHONE_REGEX, phone)) {
             throw HelperException.of(HelperException.ExceptionType.PARAM_ERROR, "手机号格式错误");
         }
         codeService.sendPhoneCode(phone);

+ 12 - 0
src/main/java/nju/seec/helper/controller/SlideController.java

@@ -7,6 +7,7 @@ import nju.seec.helper.controller.response.ResourceResponse;
 import nju.seec.helper.dto.LoginUser;
 import nju.seec.helper.dto.SlideDTO;
 import nju.seec.helper.dto.modify.ModifySlideDTO;
+import nju.seec.helper.dto.modify.ModifySlideStateDTO;
 import nju.seec.helper.service.SlideService;
 import nju.seec.helper.util.enums.UserType;
 import nju.seec.helper.vo.SlideVO;
@@ -53,6 +54,17 @@ public class SlideController {
         return ResourceResponse.of(slideVO);
     }
 
+    /**
+     * 教师修改幻灯片状态
+     */
+    @Auth(roles = UserType.TEACHER, message = "修改幻灯片状态")
+    @PutMapping("/state")
+    public EmptyResponse modifySlideState(LoginUser user,
+                                          @Valid @RequestBody ModifySlideStateDTO modifySlideStateDTO) {
+        slideService.modifySlideState(user, modifySlideStateDTO);
+        return EmptyResponse.getInstance();
+    }
+
     /**
      * 教师删除幻灯片
      */

+ 0 - 3
src/main/java/nju/seec/helper/dto/modify/ModifySlideDTO.java

@@ -1,7 +1,6 @@
 package nju.seec.helper.dto.modify;
 
 import lombok.Data;
-import nju.seec.helper.util.enums.SlideState;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
@@ -15,6 +14,4 @@ public class ModifySlideDTO {
     private Integer id;
     @NotBlank
     private String name;
-    @NotNull
-    private SlideState state;
 }

+ 17 - 0
src/main/java/nju/seec/helper/dto/modify/ModifySlideStateDTO.java

@@ -0,0 +1,17 @@
+package nju.seec.helper.dto.modify;
+
+import lombok.Data;
+import nju.seec.helper.util.enums.SlideState;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author cst
+ */
+@Data
+public class ModifySlideStateDTO {
+    @NotNull
+    private Integer id;
+    @NotNull
+    private SlideState state;
+}

+ 9 - 0
src/main/java/nju/seec/helper/service/SlideService.java

@@ -3,6 +3,7 @@ package nju.seec.helper.service;
 import nju.seec.helper.dto.LoginUser;
 import nju.seec.helper.dto.SlideDTO;
 import nju.seec.helper.dto.modify.ModifySlideDTO;
+import nju.seec.helper.dto.modify.ModifySlideStateDTO;
 import nju.seec.helper.vo.SlideVO;
 import org.springframework.data.domain.Pageable;
 
@@ -30,6 +31,14 @@ public interface SlideService {
      */
     SlideVO modifySlide(LoginUser user, ModifySlideDTO modifySlideDTO);
 
+    /**
+     * 修改幻灯片状态
+     *
+     * @param user
+     * @param modifySlideStateDTO
+     */
+    void modifySlideState(LoginUser user, ModifySlideStateDTO modifySlideStateDTO);
+
     /**
      * 删除幻灯片(伪删除)
      *

+ 12 - 2
src/main/java/nju/seec/helper/service/impl/SlideServiceImpl.java

@@ -9,6 +9,7 @@ import nju.seec.helper.dao.SlideDAO;
 import nju.seec.helper.dto.LoginUser;
 import nju.seec.helper.dto.SlideDTO;
 import nju.seec.helper.dto.modify.ModifySlideDTO;
+import nju.seec.helper.dto.modify.ModifySlideStateDTO;
 import nju.seec.helper.entity.Course;
 import nju.seec.helper.entity.Slide;
 import nju.seec.helper.service.AuthUtil;
@@ -96,12 +97,21 @@ public class SlideServiceImpl implements SlideService {
         Slide slide = slideDAO.findSlideById(modifySlideDTO.getId());
         AuthUtil.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权修改该幻灯片");
 
-        slide.setName(modifySlideDTO.getName())
-                .setState(modifySlideDTO.getState());
+        slide.setName(modifySlideDTO.getName());
         slide = slideDAO.save(slide);
         return new SlideVO(slide);
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void modifySlideState(LoginUser user, ModifySlideStateDTO modifySlideStateDTO) {
+        Slide slide = slideDAO.findSlideById(modifySlideStateDTO.getId());
+        AuthUtil.checkDataAuth(user.getId(), slide.getTeacherId(), "您无权修改该幻灯片状态");
+
+        slide.setState(modifySlideStateDTO.getState());
+        slideDAO.save(slide);
+    }
+
     @Override
     public void removeSlide(LoginUser user, Integer slideId) {
         Slide slide = slideDAO.findSlideById(slideId);