BaiQi пре 1 година
родитељ
комит
f114d7ee88

+ 15 - 6
src/main/java/com/njuzr/eaibackend/service/impl/AssignmentServiceImpl.java

@@ -27,9 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @author: Leonezhurui
@@ -73,12 +71,23 @@ public class AssignmentServiceImpl implements AssignmentService {
         if (course == null)
             throw MyException.create(HttpStatus.BAD_REQUEST, "课程不存在");
 
-        if (user.getRole() != Role.ADMIN && !course.getTeacherIds().contains(String.valueOf(user.getId())))
-            throw MyException.create(HttpStatus.BAD_REQUEST, "无权限创建");
+
+        if (user.getRole() != Role.ADMIN) {
+            List<String> teacherIds = Collections.singletonList(Optional.ofNullable(course.getTeacherIds())
+                    .orElse(Collections.emptyList().toString()));
+            String userIdStr = String.valueOf(user.getId());
+            boolean hasTeacherId = teacherIds.contains(userIdStr);
+            boolean pidMatches = Objects.equals(course.getTeacherPid(), user.getPid());
+            if (!hasTeacherId && !pidMatches) {
+                throw MyException.create(HttpStatus.BAD_REQUEST, "无权限创建");
+            }
+        }
 
         Assignment target = convertToPO(assignmentDTO);
         target.setCourseId(courseId);
-        target.setTeacherId(user.getId());
+//        target.setTeacherId(user.getId());
+        // TODO:权宜之计
+        target.setTeacherId(Long.valueOf(user.getPid()));
         target.setCreateTime(new Date());
 
         try {

+ 11 - 7
src/main/java/com/njuzr/eaibackend/service/impl/CourseServiceImpl.java

@@ -27,9 +27,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @author: Leonezhurui
@@ -193,10 +191,15 @@ public class CourseServiceImpl implements CourseService {
             throw MyException.create(HttpStatus.BAD_REQUEST, "课程不存在");
         }
 
-        if (user.getRole() != Role.ADMIN
-                && !(course.getTeacherIds().contains(String.valueOf(user.getId())) ||
-                course.getTeacherPid().equals(user.getPid()))) {
-            throw MyException.create(HttpStatus.BAD_REQUEST, "无权限删除");
+        if (user.getRole() != Role.ADMIN) {
+            List<String> teacherIds = Collections.singletonList(Optional.ofNullable(course.getTeacherIds())
+                    .orElse(Collections.emptyList().toString()));
+            String userIdStr = String.valueOf(user.getId());
+            boolean hasTeacherId = teacherIds.contains(userIdStr);
+            boolean pidMatches = Objects.equals(course.getTeacherPid(), user.getPid());
+            if (!hasTeacherId && !pidMatches) {
+                throw MyException.create(HttpStatus.BAD_REQUEST, "无权限创建");
+            }
         }
 
         try {
@@ -348,6 +351,7 @@ public class CourseServiceImpl implements CourseService {
         }
         // 2. getTeacherPid
         if(StringUtils.isNotBlank(course.getTeacherPid())){
+            res.setTeacherPid(Long.valueOf(course.getTeacherPid()));
             teacherNames.add(userMapper.selectNameByPid(Long.valueOf(course.getTeacherPid())));
         }
         res.setTeacherNames(teacherNames);

+ 2 - 0
src/main/java/com/njuzr/eaibackend/vo/CourseVO.java

@@ -25,6 +25,8 @@ public class CourseVO { // 不需要把选课码放出来
 
     private List<Long> teacherIds; // 序列化好的字符串
 
+    private Long teacherPid;
+
     private List<String> teacherNames;
 
     private List<String> courseImages; // 序列化好的字符串