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/ExamPaperController.java | 69 +++++++++++++++++++++++++++++++--- 1 files changed, 62 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java index 9ec1659..fd52320 100644 --- a/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java +++ b/src/main/java/com/mindskip/xzs/controller/student/ExamPaperController.java @@ -3,11 +3,17 @@ import com.mindskip.xzs.base.BaseApiController; import com.mindskip.xzs.base.RestResponse; import com.mindskip.xzs.domain.ExamPaper; +import com.mindskip.xzs.domain.ExamPaperDepartment; +import com.mindskip.xzs.domain.ExamPaperUser; +import com.mindskip.xzs.domain.User; import com.mindskip.xzs.service.ExamPaperAnswerService; +import com.mindskip.xzs.service.ExamPaperDepartmentService; import com.mindskip.xzs.service.ExamPaperService; +import com.mindskip.xzs.service.ExamPaperUserService; import com.mindskip.xzs.utility.DateTimeUtil; import com.mindskip.xzs.utility.PageInfoHelper; import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVM; +import com.mindskip.xzs.viewmodel.admin.exam.ExamPaperEditRequestVO; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageResponseVM; import com.mindskip.xzs.viewmodel.student.exam.ExamPaperPageVM; import com.github.pagehelper.PageInfo; @@ -16,6 +22,9 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; @RestController("StudentExamPaperController") @RequestMapping(value = "/api/student/exam/paper") @@ -24,30 +33,76 @@ private final ExamPaperService examPaperService; private final ExamPaperAnswerService examPaperAnswerService; private final ApplicationEventPublisher eventPublisher; + private final ExamPaperUserService examPaperUserService; + private final ExamPaperDepartmentService examPaperDepartmentService; @Autowired - public ExamPaperController(ExamPaperService examPaperService, ExamPaperAnswerService examPaperAnswerService, ApplicationEventPublisher eventPublisher) { + public ExamPaperController(ExamPaperService examPaperService, ExamPaperAnswerService examPaperAnswerService, ApplicationEventPublisher eventPublisher, ExamPaperUserService examPaperUserService, ExamPaperDepartmentService examPaperDepartmentService) { this.examPaperService = examPaperService; this.examPaperAnswerService = examPaperAnswerService; this.eventPublisher = eventPublisher; + this.examPaperUserService = examPaperUserService; + this.examPaperDepartmentService = examPaperDepartmentService; } + /** + * 寮�濮嬭�冭瘯 + * + * @param id + * @return + */ @RequestMapping(value = "/select/{id}", method = RequestMethod.POST) - public RestResponse<ExamPaperEditRequestVM> select(@PathVariable Integer id) { - ExamPaperEditRequestVM vm = examPaperService.examPaperToVM(id); - return RestResponse.ok(vm); + public RestResponse<ExamPaperEditRequestVO> select(@PathVariable Integer id) { + return RestResponse.ok(examPaperService.examPaperToVM(id)); } @RequestMapping(value = "/pageList", method = RequestMethod.POST) public RestResponse<PageInfo<ExamPaperPageResponseVM>> pageList(@RequestBody @Valid ExamPaperPageVM model) { PageInfo<ExamPaper> pageInfo = examPaperService.studentPage(model); + User user = getCurrentUser(); PageInfo<ExamPaperPageResponseVM> page = PageInfoHelper.copyMap(pageInfo, e -> { - ExamPaperPageResponseVM vm = modelMapper.map(e, ExamPaperPageResponseVM.class); - vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); - return vm; + Integer[] ids = examPaperDepartmentService.getByExamPaperId(e.getId()) + .stream().map(ExamPaperDepartment::getDepartmentId).toArray(Integer[]::new); + Integer[] userExamPaperIds = examPaperUserService.getByExamPaperId(e.getId()) + .stream().map(ExamPaperUser::getUserId).toArray(Integer[]::new); + if (Arrays.asList(ids).contains(user.getUserLevel())) { + ExamPaperPageResponseVM vm = modelMapper.map(e, ExamPaperPageResponseVM.class); + vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); + return vm; + } + if (Arrays.asList(userExamPaperIds).contains(user.getId())) { + ExamPaperPageResponseVM vm = modelMapper.map(e, ExamPaperPageResponseVM.class); + vm.setCreateTime(DateTimeUtil.dateFormat(e.getCreateTime())); + return vm; + } + return null; }); + Integer[] userIds = examPaperUserService.getByUserId(user.getId()) + .stream().map(ExamPaperUser::getExamPaperId).toArray(Integer[]::new); + + if (userIds.length > 0) { + List<ExamPaper> papers = examPaperService.gets(userIds); + pageInfo.getList().addAll(papers); + } + page.setList(page.getList().stream().filter(e -> e != null).collect(Collectors.toList())); return RestResponse.ok(page); } + + @RequestMapping(value = "/edit", method = RequestMethod.POST) + public RestResponse<ExamPaperEditRequestVO> edit(@RequestBody @Valid ExamPaperEditRequestVM model) throws Exception { + ExamPaperUser examPaperUser = new ExamPaperUser(); + User user = getCurrentUser(); + model.setDepartmentIds(new Integer[0]); + model.setPaperType(7); + ExamPaper examPaper = examPaperService.savePaperFromVM(model, getCurrentUser()); + + examPaperUser.setExamPaperId(examPaper.getId()); + examPaperUser.setUserId(user.getId()); + examPaperUser.setDeleted("0"); + examPaperUserService.add(examPaperUser); + + return RestResponse.ok(examPaperService.examPaperToVM(examPaper.getId())); + } } -- Gitblit v1.8.0