|
@@ -53,6 +53,10 @@ public class AssignmentServiceImpl implements AssignmentService {
|
|
|
private final ClassService classService;
|
|
private final ClassService classService;
|
|
|
private final OssUtil ossUtil;
|
|
private final OssUtil ossUtil;
|
|
|
|
|
|
|
|
|
|
+ private final AssignmentClassMapper assignmentClassMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final ClassMapper classMapper;
|
|
|
|
|
+
|
|
|
private final FileUtil fileUtil = new FileUtil();
|
|
private final FileUtil fileUtil = new FileUtil();
|
|
|
|
|
|
|
|
private final TextAnalysisService textAnalysisService;
|
|
private final TextAnalysisService textAnalysisService;
|
|
@@ -65,7 +69,9 @@ public class AssignmentServiceImpl implements AssignmentService {
|
|
|
CourseServiceImpl courseServiceImpl,
|
|
CourseServiceImpl courseServiceImpl,
|
|
|
CourseStudentMapper courseStudentMapper,
|
|
CourseStudentMapper courseStudentMapper,
|
|
|
ClassService classService,
|
|
ClassService classService,
|
|
|
- TextAnalysisService textAnalysisService) {
|
|
|
|
|
|
|
+ TextAnalysisService textAnalysisService,
|
|
|
|
|
+ AssignmentClassMapper assignmentClassMapper,
|
|
|
|
|
+ ClassMapper classMapper) {
|
|
|
this.assignmentMapper = assignmentMapper;
|
|
this.assignmentMapper = assignmentMapper;
|
|
|
this.courseMapper = courseMapper;
|
|
this.courseMapper = courseMapper;
|
|
|
this.studentAssignmentMapper = studentAssignmentMapper;
|
|
this.studentAssignmentMapper = studentAssignmentMapper;
|
|
@@ -73,9 +79,12 @@ public class AssignmentServiceImpl implements AssignmentService {
|
|
|
this.ossUtil = ossUtil;
|
|
this.ossUtil = ossUtil;
|
|
|
this.textAnalysisService = textAnalysisService;
|
|
this.textAnalysisService = textAnalysisService;
|
|
|
this.classService = classService;
|
|
this.classService = classService;
|
|
|
|
|
+ this.assignmentClassMapper = assignmentClassMapper;
|
|
|
|
|
+ this.classMapper = classMapper;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
|
+ @Transactional
|
|
|
public AssignmentVO createAssignment(MyUserDetails user, Long courseId, AssignmentDTO assignmentDTO) {
|
|
public AssignmentVO createAssignment(MyUserDetails user, Long courseId, AssignmentDTO assignmentDTO) {
|
|
|
Course course = courseMapper.selectById(courseId);
|
|
Course course = courseMapper.selectById(courseId);
|
|
|
if (course == null)
|
|
if (course == null)
|
|
@@ -110,6 +119,11 @@ public class AssignmentServiceImpl implements AssignmentService {
|
|
|
log.error(e.getMessage());
|
|
log.error(e.getMessage());
|
|
|
throw MyException.create(HttpStatus.INTERNAL_SERVER_ERROR, "创建作业失败");
|
|
throw MyException.create(HttpStatus.INTERNAL_SERVER_ERROR, "创建作业失败");
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if (assignmentDTO.getClassIds() != null && !assignmentDTO.getClassIds().isEmpty()) {
|
|
|
|
|
+ assignmentClassMapper.insertBatch(target.getAssignmentId(), assignmentDTO.getClassIds());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return convertToVO(target);
|
|
return convertToVO(target);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -626,4 +640,28 @@ public class AssignmentServiceImpl implements AssignmentService {
|
|
|
})
|
|
})
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<AssignmentVO> findAssignmentsByClassId(Long classId) {
|
|
|
|
|
+ Class cls = classMapper.selectById(classId);
|
|
|
|
|
+ if (cls == null) {
|
|
|
|
|
+ throw MyException.create(HttpStatus.NOT_FOUND, "班级不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ QueryWrapper<Assignment> wrapper = new QueryWrapper<>();
|
|
|
|
|
+ wrapper.eq("course_id", cls.getCourseId());
|
|
|
|
|
+ List<Assignment> allAssignments = assignmentMapper.selectList(wrapper);
|
|
|
|
|
+
|
|
|
|
|
+ List<Assignment> result = new ArrayList<>();
|
|
|
|
|
+ for (Assignment assignment : allAssignments) {
|
|
|
|
|
+ List<Long> relatedClassIds = assignmentClassMapper.selectClassIdsByAssignmentId(assignment.getAssignmentId());
|
|
|
|
|
+ if (relatedClassIds.isEmpty()) {
|
|
|
|
|
+ result.add(assignment);
|
|
|
|
|
+ } else if (relatedClassIds.contains(classId)) {
|
|
|
|
|
+ result.add(assignment);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return result.stream().map(this::convertToVO).collect(Collectors.toList());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|