From 93af1c6ffb9ae0e894689ad3a37b548e57d54cff Mon Sep 17 00:00:00 2001 From: linzhijie <19970921lzj> Date: 星期四, 11 三月 2021 19:10:07 +0800 Subject: [PATCH] 有注释的测评系统业务代码 --- src/main/java/com/ots/project/exam/restcontroller/ExamPaperController.java | 34 +++++++++++++++++++++++++++++----- 1 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ots/project/exam/restcontroller/ExamPaperController.java b/src/main/java/com/ots/project/exam/restcontroller/ExamPaperController.java index 1e71480..98d7ef2 100644 --- a/src/main/java/com/ots/project/exam/restcontroller/ExamPaperController.java +++ b/src/main/java/com/ots/project/exam/restcontroller/ExamPaperController.java @@ -1,4 +1,6 @@ package com.ots.project.exam.restcontroller; + + import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; import com.ots.common.constant.Constants; @@ -35,6 +37,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; + import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -43,26 +46,35 @@ import java.util.Map; import java.util.Objects; import java.util.Set; + @RestController("StudentExamPaperController") @RequestMapping(value = "/api/exam/paper") @AllArgsConstructor @Slf4j public class ExamPaperController extends BaseApiController { + @Autowired private IExamPaperService examPaperService; + @Autowired private TExamPaperServiceImpl itExamPaperService; + @Autowired private ITExamReportService examReportService; + @Autowired MemberService memberService; + private static final Logger logger = LoggerFactory.getLogger(Threads.class); + @RequestMapping(value = "/select/{tokenId}/{langType}", method = RequestMethod.POST) public RestResponse<ExamPaperEditRequestVM> select(@PathVariable String tokenId, @PathVariable String langType) { RelatedParty relatedParty = memberService.queryProdidByToken(tokenId); ExamPaperEditRequestVM vm = examPaperService.examPaperToVM(relatedParty, tokenId, langType); return RestResponse.ok(vm); } + + @RequestMapping(value = "/selectTokenId/{selectTokenId}", method = RequestMethod.POST) public RestResponse<ExamResultRequestVM> selectTokenId(@PathVariable String selectTokenId) { try { @@ -71,26 +83,33 @@ tExamReport.setTokenId(selectTokenId); List<TExamReport> tExamReportList = examReportService.selectTExamReportList(tExamReport); ExamResultRequestVM examResultRequestVM = new ExamResultRequestVM(); + TExamPaper tExamPaper = itExamPaperService.selectTExamPaperById(memberService.queryProdidByToken(selectTokenId).getProdId()); + examResultRequestVM.setDoUrl(tExamPaper.getQuestionTemplateId()); examResultRequestVM.setReportTemplateId(tExamPaper.getReportTemplateId()); + RelatedParty relatedParty = memberService.queryProdidByToken(selectTokenId); examResultRequestVM.setStatus(relatedParty.getStatus()); + TExamReport tExamReportResult = null; if (tExamReportList.size() > 0) { tExamReportResult = tExamReportList.get(0); - + // 鐩墠鍙煡璇竴涓骇鍝佸寘缁欑敤鎴� tExamReportTemp = tExamReportResult; examResultRequestVM.setDoTime(tExamReportTemp.getDoTime()); examResultRequestVM.setFinish(tExamReportTemp.getFinish()); - + // 鑾峰彇鏈�鍚庝竴涓墿浣欐椂闂淬�傛瘮濡傜幇鍦ㄦ湁2娈碉紝鑾峰彇绗�2娈� Integer remainTimeResult = getRemainTimeResult(tExamReportTemp); examResultRequestVM.setRemainTime(remainTimeResult); } else { return RestResponse.ok(examResultRequestVM); } + LinkedHashMap<String, String> answerMap = JSON.parseObject(tExamReportTemp.getChoice(), LinkedHashMap.class); + examResultRequestVM.setExamItemOrderAndContentList(new ArrayList<>()); + if (!Objects.isNull(answerMap)) { answerMap.forEach((k, v) -> { ExamItemOrderAndContent examItemOrderAndContent = new ExamItemOrderAndContent(); @@ -99,7 +118,8 @@ examResultRequestVM.getExamItemOrderAndContentList().add(examItemOrderAndContent); }); } - + + // 杩斿洖缁欏墠鍙版寚瀵艰 getSignalObject(examResultRequestVM, tExamPaper, tExamReportResult); return RestResponse.ok(examResultRequestVM); } catch (Exception e) { @@ -107,6 +127,7 @@ return RestResponse.fail(new UserException("jsp.exam.product.noProduct", new String[]{})); } } + private Integer getRemainTimeResult(TExamReport tExamReportTemp) { Map<Integer, Integer> remainPartTimeMap = JsonUtil.parseObject(tExamReportTemp.getRemainPartTime(), HashMap.class); if (Objects.isNull(remainPartTimeMap)) { @@ -117,18 +138,20 @@ Arrays.sort(remainPartTimeKeys); return remainPartTimeMap.get(remainPartTimeKeys[remainPartTimeKeys.length - 1]); } + private void getSignalObject(ExamResultRequestVM examResultRequestVM, TExamPaper tExamPaper, TExamReport tExamReportResult) { List<ExamPaperTitleItem> examPaperTitleItemList = JsonUtil.parseArray(tExamPaper.getContent(), ExamPaperTitleItem.class); List<QuestionPart> parts = examPaperTitleItemList.get(0).getParts(); if (CollUtil.isEmpty(parts)) { return; } - QuestionPart questionPart = parts.get(0); + QuestionPart questionPart = parts.get(0); // 鍏堝啓姝� List<SignalObject> signals = questionPart.getSignals(); List<ReportAPIResult> reportAPIResultList = JsonUtil.parseArray(tExamReportResult.getInterfaceContent(), ReportAPIResult.class); if (Objects.isNull(reportAPIResultList)) { return; } + for (SignalObject signalObject : signals) { if (Objects.equals(reportAPIResultList.get(0).getSignal(), signalObject.getSignal())) { signalObject.setSignalDescription(ExamUtil.getLangString(tExamReportResult.getLangType(), signalObject.getSignalDescription())); @@ -141,7 +164,8 @@ } } } - + + // 璁板綍鐧婚檰鏃ュ織 @RequestMapping(value = "/recordLogininfor/{selectTokenId}", method = RequestMethod.POST) public RestResponse<ExamResultRequestVM> recordLogininfor(@PathVariable String selectTokenId) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(memberService.queryProdidByToken(selectTokenId).getMemberId().toString(), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); -- Gitblit v1.9.1