From 47cd9ecc0eff38ffe6b3b794b2bf197e958f4403 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 14 五月 2025 15:50:57 +0800 Subject: [PATCH] bug:学员有状态不能修改问题 --- src/main/java/com/mindskip/xzs/controller/student/DashboardController.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 111 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java b/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java index faf08df..0cbb263 100644 --- a/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java +++ b/src/main/java/com/mindskip/xzs/controller/student/DashboardController.java @@ -2,23 +2,29 @@ import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; -import com.mindskip.xzs.domain.TaskExam; -import com.mindskip.xzs.domain.TaskExamCustomerAnswer; -import com.mindskip.xzs.domain.TextContent; -import com.mindskip.xzs.domain.User; +import com.mindskip.xzs.domain.*; import com.mindskip.xzs.domain.enums.ExamPaperTypeEnum; import com.mindskip.xzs.domain.task.TaskItemAnswerObject; import com.mindskip.xzs.domain.task.TaskItemObject; +import com.mindskip.xzs.domain.vo.ExamTemplatesUserCountVO; +import com.mindskip.xzs.domain.vo.ExamTemplatesVO; +import com.mindskip.xzs.repository.ExamPaperAnswerMapper; +import com.mindskip.xzs.repository.ExamTemplatesMapper; +import com.mindskip.xzs.repository.ExamTemplatesUserCountMapper; +import com.mindskip.xzs.repository.ExamTemplatesUserMapper; import com.mindskip.xzs.service.*; import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.JsonUtil; import com.mindskip.xzs.viewmodel.student.dashboard.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -33,15 +39,45 @@ private final TaskExamService taskExamService; private final TaskExamCustomerAnswerService taskExamCustomerAnswerService; private final TextContentService textContentService; + private final ExamPaperUserService examPaperUserService; + private final ExamPaperAnswerMapper answerMapper; + private final ExamTemplatesMapper templatesMapper; + private final ExamTemplatesUserCountMapper templatesUserCountMapper; + private final ExamTemplatesUserMapper examTemplatesUserMapper; @Autowired - public DashboardController(UserService userService, ExamPaperService examPaperService, QuestionService questionService, TaskExamService taskExamService, TaskExamCustomerAnswerService taskExamCustomerAnswerService, TextContentService textContentService) { + public DashboardController(UserService userService, ExamPaperService examPaperService, + QuestionService questionService, TaskExamService taskExamService, + TaskExamCustomerAnswerService taskExamCustomerAnswerService, + TextContentService textContentService, ExamPaperUserService examPaperUserService, + ExamPaperAnswerMapper answerMapper, ExamTemplatesMapper templatesMapper, ExamTemplatesUserCountMapper templatesUserCountMapper, ExamTemplatesUserMapper examTemplatesUserMapper) { this.userService = userService; this.examPaperService = examPaperService; this.questionService = questionService; this.taskExamService = taskExamService; this.taskExamCustomerAnswerService = taskExamCustomerAnswerService; this.textContentService = textContentService; + this.examPaperUserService = examPaperUserService; + this.answerMapper = answerMapper; + this.templatesMapper = templatesMapper; + this.templatesUserCountMapper = templatesUserCountMapper; + this.examTemplatesUserMapper = examTemplatesUserMapper; + } + + @RequestMapping(value = "/qualification/{paperId}", method = RequestMethod.GET) + public RestResponse qualification(@PathVariable("paperId") String paperId) { + User user = getCurrentUser(); + ExamTemplatesUserCount count = new ExamTemplatesUserCount(); + List<ExamTemplatesUserCount> examTemplatesUserCountList = new ArrayList<>(); + List<PaperInfo> paperInfos = new ArrayList<>(); + count.setUserId(user.getId()); + count.setExamPaperId(Integer.parseInt(paperId)); + examTemplatesUserCountList.add(count); + List<ExamPaperAnswer> list1 = answerMapper.getByExamPaperIdAndUserId(examTemplatesUserCountList); + if(list1.size()>0){ + return RestResponse.fail(500,"褰撳墠璇曞嵎宸插畬鎴愯�冭瘯锛�"); + } + return RestResponse.ok(); } @RequestMapping(value = "/index", method = RequestMethod.POST) @@ -54,16 +90,70 @@ Integer[] type = {ExamPaperTypeEnum.Fixed.getCode(),ExamPaperTypeEnum.Random.getCode()}; fixedPaperFilter.setExamPaperType(type); fixedPaperFilter.setUserId(user.getId()); - indexVM.setFixedPaper(examPaperService.indexPaper(fixedPaperFilter)); + //璇曞嵎 + List<PaperInfo> list = examPaperService.indexPaper(fixedPaperFilter); + ExamTemplatesUserCount count = new ExamTemplatesUserCount(); + List<ExamTemplatesUserCount> examTemplatesUserCountList = new ArrayList<>(); + List<PaperInfo> paperInfos = new ArrayList<>(); + for (PaperInfo info : list) { + count.setUserId(user.getId()); + count.setExamPaperId(info.getId()); + examTemplatesUserCountList.add(count); + List<ExamPaperAnswer> list1 = answerMapper.getByExamPaperIdAndUserId(examTemplatesUserCountList); + examTemplatesUserCountList.clear(); + if(list1.size()>0){ + continue; + } + info.setStatus("0"); + paperInfos.add(info); + } + + ExamTemplatesVO vo = new ExamTemplatesVO(); + vo.setStatus("0"); + vo.setUserId(user.getId()); + vo.setNow(LocalDateTime.now()); + List<ExamTemplates> gets = templatesMapper.gets(vo); + ExamTemplatesUserCountVO templatesUserCountVO = new ExamTemplatesUserCountVO(); + templatesUserCountVO.setUserId(user.getId()); + + for (ExamTemplates get : gets) { + templatesUserCountVO.setId(get.getId()); + Integer number = templatesUserCountMapper.getCountByUserIdAndTemplatesId(templatesUserCountVO); + if(number==0){ + PaperInfo info = new PaperInfo(); + info.setId(get.getId()); + info.setName(get.getName()); + info.setStatus("1"); + info.setCreateTime(get.getCtime()); + paperInfos.add(info); + } + } + paperInfos = paperInfos.stream().sorted(Comparator.comparing(PaperInfo::getCreateTime).reversed()).collect(Collectors.toList()); + indexVM.setFixedPaper(paperInfos); PaperFilter timeLimitPaperFilter = new PaperFilter(); timeLimitPaperFilter.setDateTime(new Date()); timeLimitPaperFilter.setGradeLevel(user.getUserLevel()); Integer[] time = {ExamPaperTypeEnum.TimeLimit.getCode()}; timeLimitPaperFilter.setExamPaperType(time); + timeLimitPaperFilter.setUserId(user.getId()); + ExamTemplatesUserCount count1 = new ExamTemplatesUserCount(); + List<ExamTemplatesUserCount> examTemplatesUserCountList1 = new ArrayList<>(); + List<PaperInfo> paperInfos1 = new ArrayList<>(); List<PaperInfo> limitPaper = examPaperService.indexPaper(timeLimitPaperFilter); - List<PaperInfoVM> paperInfoVMS = limitPaper.stream().map(d -> { + for (PaperInfo info : limitPaper) { + count1.setUserId(user.getId()); + count1.setExamPaperId(info.getId()); + examTemplatesUserCountList1.add(count1); + List<ExamPaperAnswer> list1 = answerMapper.getByExamPaperIdAndUserId(examTemplatesUserCountList1); + examTemplatesUserCountList1.clear(); + if(list1.size()>0){ + continue; + } + paperInfos1.add(info); + } + List<PaperInfoVM> paperInfoVMS = paperInfos1.stream().map(d -> { PaperInfoVM vm = modelMapper.map(d, PaperInfoVM.class); vm.setStartTime(DateTimeUtil.dateFormat(d.getLimitStartTime())); vm.setEndTime(DateTimeUtil.dateFormat(d.getLimitEndTime())); @@ -77,7 +167,20 @@ @RequestMapping(value = "/task", method = RequestMethod.POST) public RestResponse<List<TaskItemVm>> task() { User user = getCurrentUser(); - List<TaskExam> taskExams = taskExamService.getByGradeLevel(user.getUserLevel()); + Integer[] ids = examPaperUserService.getByUserId(user.getId()) + .stream().map(ExamPaperUser::getExamPaperId).toArray(Integer[]::new); + List<TaskExam> taskExams = new ArrayList<>(); + if(ids.length!=0){ + List<ExamPaper> list = examPaperService.gets(ids).stream() + .filter(e -> e.getPaperType() == 6).collect(Collectors.toList()); + if(list.size() != 0){ + Integer[] taskIds = list.stream().map(ExamPaper::getTaskExamId).toArray(Integer[]::new); + taskExams = taskExamService.gets(taskIds); + } + + } + +// List<TaskExam> taskExams = taskExamService.getByGradeLevel(user.getUserLevel()); if (taskExams.size() == 0) { return RestResponse.ok(new ArrayList<>()); } -- Gitblit v1.8.0