Ver código fonte

feat:完成门户删除课程

BaiQi 1 ano atrás
pai
commit
5382def080

+ 13 - 0
src/main/java/com/njuzr/eaibackend/controller/CourseController.java

@@ -202,6 +202,19 @@ public class CourseController {
         return MyResponse.success("删除课程成功");
         return MyResponse.success("删除课程成功");
     }
     }
 
 
+    /**
+     * 教师删除课程
+     */
+    @PreAuthorize("hasRole('TEACHER') or hasRole('ADMIN')")
+    @DeleteMapping("/deleteCourse/portal")
+    public MyResponse deleteCourseByPortal(
+            @AuthenticationPrincipal MyUserDetails user,
+            @RequestParam Long courseId
+    ) {
+        courseService.deleteById(user, courseId);
+        return MyResponse.success("删除课程成功");
+    }
+
     /**
     /**
      * 选课,通过studentId和courseId,完成选课。其中studentId从Token中获取。
      * 选课,通过studentId和courseId,完成选课。其中studentId从Token中获取。
      * @param studentId
      * @param studentId

+ 19 - 8
src/main/java/com/njuzr/eaibackend/service/impl/CourseServiceImpl.java

@@ -189,7 +189,9 @@ public class CourseServiceImpl implements CourseService {
             throw MyException.create(HttpStatus.BAD_REQUEST, "课程不存在");
             throw MyException.create(HttpStatus.BAD_REQUEST, "课程不存在");
         }
         }
 
 
-        if (user.getRole() != Role.ADMIN && !course.getTeacherIds().contains(String.valueOf(user.getId()))) {
+        if (user.getRole() != Role.ADMIN
+                && !(course.getTeacherIds().contains(String.valueOf(user.getId())) ||
+                course.getTeacherPid().equals(user.getPid()))) {
             throw MyException.create(HttpStatus.BAD_REQUEST, "无权限删除");
             throw MyException.create(HttpStatus.BAD_REQUEST, "无权限删除");
         }
         }
 
 
@@ -300,7 +302,9 @@ public class CourseServiceImpl implements CourseService {
     private Course convertToPO(CourseDTO courseDTO) {
     private Course convertToPO(CourseDTO courseDTO) {
         Course course = new Course();
         Course course = new Course();
         BeanUtils.copyProperties(courseDTO, course);
         BeanUtils.copyProperties(courseDTO, course);
-        course.setTeacherIds(ConvertUtil.listToString(courseDTO.getTeacherIds()));
+        if(courseDTO.getTeacherIds() != null){
+            course.setTeacherIds(ConvertUtil.listToString(courseDTO.getTeacherIds()));
+        }
         if (courseDTO.getCourseImages() != null)
         if (courseDTO.getCourseImages() != null)
             course.setCourseImages(ConvertUtil.listToString(courseDTO.getCourseImages()));
             course.setCourseImages(ConvertUtil.listToString(courseDTO.getCourseImages()));
         return course;
         return course;
@@ -324,15 +328,22 @@ public class CourseServiceImpl implements CourseService {
     private CourseVO convertToVO(Course course) {
     private CourseVO convertToVO(Course course) {
         CourseVO res = new CourseVO();
         CourseVO res = new CourseVO();
         BeanUtils.copyProperties(course, res);
         BeanUtils.copyProperties(course, res);
-        res.setTeacherIds(ConvertUtil.stringToList(course.getTeacherIds(), Long::valueOf));
         // 组装教师名字
         // 组装教师名字
         List<String> teacherNames = new ArrayList<>();
         List<String> teacherNames = new ArrayList<>();
-        for (Long teacherId : res.getTeacherIds()) {
-            teacherNames.add(userMapper.selectNameById(teacherId));
+        // 1.getTeacherIds
+        if(course.getTeacherIds() != null){
+            res.setTeacherIds(ConvertUtil.stringToList(course.getTeacherIds(), Long::valueOf));
+            for (Long teacherId : res.getTeacherIds()) {
+                teacherNames.add(userMapper.selectNameById(teacherId));
+            }
+            res.setTeacherNames(teacherNames);
+            if (course.getCourseImages() != null) {
+                res.setCourseImages(ConvertUtil.stringToList(course.getCourseImages(), String::valueOf));
+            }
         }
         }
-        res.setTeacherNames(teacherNames);
-        if (course.getCourseImages() != null) {
-            res.setCourseImages(ConvertUtil.stringToList(course.getCourseImages(), String::valueOf));
+        // 2. getTeacherPid
+        if(course.getTeacherPid() != null){
+            teacherNames.add(userMapper.selectNameByPid(Long.valueOf(course.getTeacherPid())));
         }
         }
         return res;
         return res;
     }
     }