diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolExamController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolExamController.java index f732bcb3..bb3acf93 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolExamController.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolExamController.java @@ -1381,7 +1381,8 @@ public class AiolExamController extends JeecgController queryMyHomeworkList(HttpServletRequest request,@RequestParam(name = "type" , defaultValue = "4" , required = false) Integer type) { + public Result queryMyHomeworkList(HttpServletRequest request, @RequestParam(name = "type", defaultValue = "4", required = false) Integer type) { // 尝试获取token,判断用户id String token = request.getHeader(CommonConstant.X_ACCESS_TOKEN); List homeworkDTOList = new ArrayList<>(); @@ -136,17 +136,14 @@ public class AiolHomeworkController extends JeecgController queryWrapper = new QueryWrapper<>(); - if(type != 4){ - queryWrapper.eq("status", type); - } if (!list.isEmpty()) { queryWrapper.in("id", list); - }else return Result.ok(); + } else return Result.ok(); // 查询作业列表并去重 List homeworkList = aiolHomeworkService.list(queryWrapper) .stream() @@ -189,12 +186,22 @@ public class AiolHomeworkController extends JeecgController SysUser )); // 替换作业中的创建人ID为用户名 - homeworkList.forEach(homework -> { + for (AiolHomework homework : homeworkList) { MyHomeworkDTO myHomeworkDTO = new MyHomeworkDTO(); myHomeworkDTO.setAiolHomework(homework); // 获取当前用户的提交记录,如果没有则返回空列表 List userSubmits = userSubmitMap.getOrDefault(homework.getId(), Collections.emptyMap()) .getOrDefault(currentUserId, Collections.emptyList()); + if (type == 1 || type == 2) { + if (userSubmits.isEmpty() || !userSubmits.get(0).getStatus().equals(type)) { + continue; + } + } else if (type == 0) { + if (!userSubmits.isEmpty() && !userSubmits.get(0).getStatus().equals(type)) { + continue; + } + } + myHomeworkDTO.setAiolHomeworkSubmits(userSubmits); myHomeworkDTO.setSubmitCount(submitCountMap.getOrDefault(homework.getId(), 0L)); String creatorId = homework.getCreateBy(); @@ -203,9 +210,9 @@ public class AiolHomeworkController extends JeecgController queryWrapper = new QueryWrapper<>(); queryWrapper.eq("course_id", courseId) - .orderByDesc("create_time"); - + .orderByDesc("create_time"); + List homeworkList = aiolHomeworkService.list(queryWrapper); - + // 转换为包含详情的DTO列表 List resultList = homeworkList.stream() .map(this::convertToHomeworkWithDetails) .collect(Collectors.toList()); - + return Result.OK(resultList); - + } catch (Exception e) { log.error("查询教师作业列表失败: error={}", e.getMessage(), e); return Result.error("查询教师作业列表失败: " + e.getMessage()); @@ -398,7 +404,7 @@ public class AiolHomeworkController extends JeecgController submitWrapper = new QueryWrapper<>(); submitWrapper.eq("homework_id", homeworkId); List submitList = homeworkSubmitService.list(submitWrapper); - + if (!submitList.isEmpty()) { List submitIds = submitList.stream() .map(AiolHomeworkSubmit::getId) @@ -406,16 +412,16 @@ public class AiolHomeworkController extends JeecgController studentIds = new ArrayList<>(); - + if (classId != null && !classId.trim().isEmpty()) { // 如果传递了班级ID,查询指定班级的学生 String[] classIds = classId.split(","); @@ -451,7 +457,7 @@ public class AiolHomeworkController extends JeecgController classStudentWrapper = new QueryWrapper<>(); classStudentWrapper.eq("class_id", singleClassId); List classStudents = aiolClassStudentMapper.selectList(classStudentWrapper); - + for (AiolClassStudent classStudent : classStudents) { String studentId = classStudent.getStudentId(); if (!studentIds.contains(studentId)) { @@ -465,7 +471,7 @@ public class AiolHomeworkController extends JeecgController courseSignupWrapper = new QueryWrapper<>(); courseSignupWrapper.eq("course_id", courseId); List courseSignups = aiolCourseSignupMapper.selectList(courseSignupWrapper); - + for (AiolCourseSignup courseSignup : courseSignups) { String studentId = courseSignup.getUserId(); if (!studentIds.contains(studentId)) { @@ -473,28 +479,28 @@ public class AiolHomeworkController extends JeecgController delWrapper = new QueryWrapper<>(); delWrapper.eq("target_type", EntityLinkConst.TargetType.HOMEWORK) - .eq("target_id", homeworkId) - .eq("source_type", EntityLinkConst.SourceType.COURSE_SECTION); + .eq("target_id", homeworkId) + .eq("source_type", EntityLinkConst.SourceType.COURSE_SECTION); entityLinkBizService.remove(delWrapper); if (sectionId != null && !sectionId.trim().isEmpty()) { entityLinkBizService.save( - EntityLinkConst.SourceType.COURSE_SECTION, - sectionId.trim(), - EntityLinkConst.TargetType.HOMEWORK, - homeworkId + EntityLinkConst.SourceType.COURSE_SECTION, + sectionId.trim(), + EntityLinkConst.TargetType.HOMEWORK, + homeworkId ); } } catch (Exception e) { @@ -555,7 +561,9 @@ public class AiolHomeworkController extends JeecgController csWrapper = new QueryWrapper<>(); csWrapper.eq("class_id", singleClassId.trim()); List classStudents = aiolClassStudentMapper.selectList(csWrapper); @@ -611,44 +619,44 @@ public class AiolHomeworkController extends JeecgController classNames = new ArrayList<>(); @@ -681,29 +690,29 @@ public class AiolHomeworkController extends JeecgController sectionIds = entityLinkBizService.listSourceIds( - EntityLinkConst.TargetType.HOMEWORK, - homework.getId(), - EntityLinkConst.SourceType.COURSE_SECTION + EntityLinkConst.TargetType.HOMEWORK, + homework.getId(), + EntityLinkConst.SourceType.COURSE_SECTION ); - + if (!sectionIds.isEmpty()) { String sectionId = sectionIds.get(0); // 取第一个章节ID dto.setSectionId(sectionId); - + AiolCourseSection section = aiolCourseSectionService.getById(sectionId); if (section != null && section.getName() != null) { dto.setSectionTitle(section.getName()); } } - + } catch (Exception e) { log.error("转换作业详情失败: homeworkId={}, error={}", homework.getId(), e.getMessage(), e); // 即使转换失败,也返回基本的作业信息 } - + return dto; } }