From 5e873863bc7324894c89b0a0fc77a6202c91cd64 Mon Sep 17 00:00:00 2001 From: wzp <516075396@qq.com> Date: 星期二, 06 四月 2021 10:35:42 +0800 Subject: [PATCH] 20210406 --- src/main/java/com/ots/project/exam/service/impl/ExamPaperServiceImpl.java | 267 +++++++++++++++++------------------------------------ 1 files changed, 85 insertions(+), 182 deletions(-) diff --git a/src/main/java/com/ots/project/exam/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/ots/project/exam/service/impl/ExamPaperServiceImpl.java index 52264c2..9030e1a 100644 --- a/src/main/java/com/ots/project/exam/service/impl/ExamPaperServiceImpl.java +++ b/src/main/java/com/ots/project/exam/service/impl/ExamPaperServiceImpl.java @@ -1,6 +1,4 @@ package com.ots.project.exam.service.impl; - - import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; @@ -38,7 +36,6 @@ import org.modelmapper.ModelMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -47,93 +44,68 @@ import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; - - @Service public class ExamPaperServiceImpl implements IExamPaperService { - protected final static ModelMapper modelMapper = ModelMapperSingle.Instance(); - @Autowired private ExamPaperMapper examPaperMapper; - @Autowired private ITTextContentService textContentService; - @Autowired private TQuestionMapper questionMapper; - @Autowired private ITQuestionService questionService; - @Autowired private ITExamReportService examReportService; - @Autowired private IExamUtilService examUtilService; - @Autowired private ITExamPaperService itExamPaperService; - - @Override public List<PaperInfo> indexPaper(PaperFilter paperFilter) { return examPaperMapper.indexPaper(paperFilter); } - - @Override public PageInfo<ExamPaper> page(ExamPaperPageRequestVM requestVM) { return null; } - @Override public PageInfo<ExamPaper> taskExamPage(ExamPaperPageRequestVM requestVM) { return null; } - @Override public PageInfo<ExamPaper> studentPage(ExamPaperPageVM requestVM) { return null; } - @Override public ExamPaper savePaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, ExamUser user) { return null; } - - // 鍒嗗彂棰樼洰鍒板墠鍙扮殑鏂规硶 + @Override public ExamPaperEditRequestVM examPaperToVM(Integer id, String tokenId, String langType) { TExamPaper tExamPaper = itExamPaperService.selectTExamPaperById(id.longValue()); - tExamPaper.setLangType(langType); - ExamPaperEditRequestVM vm = modelMapper.map(tExamPaper, ExamPaperEditRequestVM.class); - // 瑙f瀽鍑洪鐩� + List<ExamPaperTitleItemVM> examPaperTitleItemVMS = resolveToQuestion(tExamPaper, vm); - // 璁剧疆澶ч鐨勪笅鏍噏uestionOrder,宸ヤ綔绫诲瀷闂嵎鍜屾祴璇曢棶鍗烽兘瑕� + setQuestionOrder(examPaperTitleItemVMS); - // 宸ヤ綔闂嵎棰樼洰闅忔満锛岃缃畆eport缁欏墠鍙颁篃鏄湪杩欓噷 + setRandomQuestionOrderAndReport(tokenId, vm, examPaperTitleItemVMS); - - // 浼犲垎娈电殑鏁版嵁缁欏墠鍙� + vm.setParts(examPaperTitleItemVMS.get(0).getParts()); - - // 澶氳瑷�鐨勭炕璇� + multilingualTranslation(langType, vm); - - // 璁剧疆questionReport杩斿洖缁欏墠鍙� + return vm; } - @Override public ExamPaperEditRequestVM examPaperToVM(RelatedParty relatedParty, String token_id, String langType) { ExamPaperEditRequestVM vm = examPaperToVM(relatedParty.getProdId().intValue(), token_id, langType); setExtraReturnValue(relatedParty, vm); return vm; } - private void setExtraReturnValue(RelatedParty relatedParty, ExamPaperEditRequestVM vm) { vm.setQuestionTemplateId(relatedParty.getQuestionTemplateId()); vm.setReportTemplateId(relatedParty.getReportTemplateId()); @@ -146,15 +118,13 @@ vm.setMemberName(relatedParty.getMemberName()); } } - private void setRandomQuestionOrderAndReport(String tokenId, ExamPaperEditRequestVM vm, List<ExamPaperTitleItemVM> examPaperTitleItemVMS) { List<Integer> intList = new ArrayList<>(); - // examPaperTitleItemVMS 涓轰竴涓ぇ棰橈紝涓�涓ぇ娈� + vm.setTitleItems(randomQuestion(examPaperTitleItemVMS, intList, tokenId,vm)); - // 棰樼洰鐨勯『搴� + vm.setQuestionOrder(intList); } - private void setQuestionOrder(List<ExamPaperTitleItemVM> examPaperTitleItemVMS) { int questionOrederNum = 0; int questionItemQONum = 0; @@ -165,41 +135,35 @@ } } } - - // 瑙f瀽寰楀埌棰樼洰 + private List<ExamPaperTitleItemVM> resolveToQuestion(TExamPaper examPaper, ExamPaperEditRequestVM vm) { vm.setLevel(examPaper.getGradeLevel().intValue()); TTextContent frameTextContent = textContentService.selectTTextContentById(examPaper.getFrameTextContentId().longValue()); List<ExamPaperTitleItemObject> examPaperTitleItemObjects = JsonUtil.toJsonListObject(frameTextContent.getContent(), ExamPaperTitleItemObject.class); - - // titleQuestionIds 鐨勫ぇ棰樼洰 + TExamPaper tExamPaper = new TExamPaper(); BeanUtils.copyProperties(examPaper, tExamPaper); examUtilService.setTitleName(tExamPaper, examPaperTitleItemObjects); - List<Integer> questionIds = examPaperTitleItemObjects.stream() .flatMap(t -> t.getQuestionItems().stream() .map(q -> q.getId())) .collect(Collectors.toList()); List<TQuestion> questions = questionMapper.selectByIds(questionIds); - // vm.setScore(ExamUtil.originalScoreToVM(examPaper.getScore())); + return examPaperTitleItemObjects.stream().map(t -> { ExamPaperTitleItemVM tTitleVM = modelMapper.map(t, ExamPaperTitleItemVM.class); - // 璁剧疆姘镐箙缂栧彿 + tTitleVM.setPermanentId(t.getPermanentId()); - - // 灏忛 + List<QuestionEditRequestVM> questionItemsVM = t.getQuestionItems().stream().map(i -> { try { TQuestion question = questions.stream().filter(q -> q.getId().equals(i.getId().longValue())).findFirst().get(); QuestionEditRequestVM questionEditRequestVM = questionService.getQuestionEditRequestVM(question); questionEditRequestVM.setItemOrder(i.getItemOrder()); - - // 姘镐箙缂栧彿 + if (Objects.isNull(question.getPermanentId())) { question.setPermanentId(i.getPermanentId()); } - questionEditRequestVM.setPermanentId(question.getPermanentId()); questionEditRequestVM.setPartOrder(i.getPartOrder()); questionEditRequestVM.setParentQuestionId(i.getParentQuestionId()); @@ -216,8 +180,7 @@ return tTitleVM; }).collect(Collectors.toList()); } - - // 澶氳瑷�缈昏瘧 + private void multilingualTranslation(String langType, ExamPaperEditRequestVM vm) { vm.setName(ExamUtil.getLangString(langType, vm.getName())); vm.setGuide(ExamUtil.getLangString(langType, vm.getGuide())); @@ -232,42 +195,37 @@ } } } - - // 缈昏瘧鍒嗘 + if (CollUtil.isEmpty(vm.getParts())) { return; } - vm.getParts().stream().forEach(questionPart -> { questionPart.getSignals().stream().forEach(signalObject -> { signalObject.setSignalDescription(ExamUtil.getLangString(langType, signalObject.getSignalDescription())); }); }); } - private List<ExamPaperTitleItemVM> randomQuestion(List<ExamPaperTitleItemVM> examPaperTitleItemVMS, List<Integer> intList, String tokenId, ExamPaperEditRequestVM vm) { - // 鍒ゆ柇鏄惁鏄┖ + if (Objects.isNull(examPaperTitleItemVMS) || examPaperTitleItemVMS.isEmpty()) { return examPaperTitleItemVMS; } - - // 浜烘牸绫诲瀷闂嵎锛屾櫤鍔� + if (Objects.equals(vm.getQuestionTemplateId(), "personality")) { return getExamOnePaperTitleItemVMS(examPaperTitleItemVMS, intList, tokenId); } else if (Objects.equals(vm.getQuestionTemplateId(), "intelligence")) { return getExamPaperIntelligenceQeustionVMS(examPaperTitleItemVMS, intList, tokenId, vm); } else { - // 宸ヤ綔绫诲瀷闂嵎 + return getExamJobPaperTitleItemVMS(examPaperTitleItemVMS, intList, tokenId); } } - private List<ExamPaperTitleItemVM> getExamOnePaperTitleItemVMS(List<ExamPaperTitleItemVM> examPaperTitleItemVMS, List<Integer> intList, String tokenId) { - // 浜烘牸闂嵎鍜屾櫤鍔涢棶鍗烽殢鏈� + TExamReport tExamReportQuery = new TExamReport(); tExamReportQuery.setTokenId(tokenId); List<QuestionEditRequestVM> questionItems = examPaperTitleItemVMS.get(0).getQuestionItems(); - // 鏂板闅忔満鎵撲贡搴忓垪 + List<TExamReport> tExamReportList = examReportService.selectTExamReportList(tExamReportQuery); if (Objects.nonNull(tExamReportList) && tExamReportList.size() > 0) { TExamReport tExamReport = tExamReportList.get(0); @@ -277,41 +235,35 @@ } List<QuestionEditRequestVM> questionItemsNew = new ArrayList<>(); for (int i = 0; i < intList.size(); i++) { - questionItemsNew.add(questionItems.get(intList.get(i)));// 鍙栧埌搴曟槸閭d竴棰� + questionItemsNew.add(questionItems.get(intList.get(i))); } - - // 閲嶆柊鎺掑簭,璁剧疆questionReport缁欏墠绔� + for (int i = 0; i < questionItemsNew.size(); i++) { - questionItemsNew.get(i).setItemOrder(i+1);// itemOrder鏄悗鍙扮粰鐨勫簭鍙� - // 璁剧疆questionReport缁欏墠绔� + questionItemsNew.get(i).setItemOrder(i+1); + setQuestionReportForVM(tExamReportList, questionItemsNew.get(i)); } - examPaperTitleItemVMS.get(0).setQuestionItems(questionItemsNew); return examPaperTitleItemVMS; } - private List<ExamPaperTitleItemVM> getExamPaperIntelligenceQeustionVMS(List<ExamPaperTitleItemVM> examPaperTitleItemVMS, List<Integer> intList, String tokenId, ExamPaperEditRequestVM vm) { - // 鑾峰彇鏅哄姏棰橀噷闈㈢殑棰樼洰 + TExamReport tExamReportQuery = new TExamReport(); tExamReportQuery.setTokenId(tokenId); List<TExamReport> tExamReportList = examReportService.selectTExamReportList(tExamReportQuery); - // map鏄瘡涓�娈� - // 鏂扮殑瑕佸彂缁欏墠鍙扮殑 + + List<QuestionEditRequestVM> questionItemsResulte = new ArrayList<>(); if (Objects.nonNull(tExamReportList) && tExamReportList.size() > 0) { questionItemsResulte = getIntelligenceQuestionOrder(examPaperTitleItemVMS, tExamReportList, vm); } else { initializeIntelligenceQuestion(examPaperTitleItemVMS, intList, questionItemsResulte, vm); } - - // 閲嶆柊鎺掑簭,璁剧疆questionReport缁欏墠绔� + calculationNumber(tExamReportList, questionItemsResulte); - examPaperTitleItemVMS.get(0).setQuestionItems(questionItemsResulte); return examPaperTitleItemVMS; } - private List<QuestionEditRequestVM> getIntelligenceQuestionOrder(List<ExamPaperTitleItemVM> examPaperTitleItemVMS, List<TExamReport> tExamReportList, ExamPaperEditRequestVM vm) { TExamReport tExamReport = tExamReportList.get(0); List<Integer> intList = JSON.parseObject(tExamReport.getQuestionOrder(), ArrayList.class); @@ -320,57 +272,51 @@ List<QuestionEditRequestVM> questionItemsResulte = new ArrayList<>(); for (int i = 0; i < intList.size(); i++) { int order = intList.get(i); - // 閫夐」鐨勬槧灏� + Map<String, QuestionEditItemVM> itemsMap = new HashMap<>(); List<QuestionEditItemVM> items = questionItems.get(order).getItems(); items.stream().forEach(item-> itemsMap.put(item.getPrefix(), item)); - - // 寰楀埌鏄偅涓�棰樼殑閫夐」 + List<String> itemList = optionIntList.get(i); - - // 鎺掑ソ搴忕殑閫夐」 + List<QuestionEditItemVM> itemsResult = itemList.stream().map(num -> { return itemsMap.get(num); }).collect(Collectors.toList()); questionItems.get(order).setItems(itemsResult); questionItemsResulte.add(questionItems.get(order)); } -// List<QuestionEditRequestVM> questionItemsResulte = intList.stream().map(order-> { -// -// // 閫夐」鐨勬槧灏� -// Map<String, QuestionEditItemVM> itemsMap = new HashMap<>(); -// List<QuestionEditItemVM> items = questionItems.get(order).getItems(); -// items.stream().forEach(item-> itemsMap.put(item.getPrefix(), item)); -// -// // 寰楀埌鏄偅涓�棰樼殑閫夐」 -// List<String> itemList = optionIntList.get(order); -// -// // 鎺掑ソ搴忕殑閫夐」 -// List<QuestionEditItemVM> itemsResult = itemList.stream().map(num -> { -// return itemsMap.get(num); -// }).collect(Collectors.toList()); -// questionItems.get(order).setItems(itemsResult); -// -// return questionItems.get(order); -// }).collect(Collectors.toList()); + + + + + + + + + + + + + + + + + vm.setOptionOrder(optionIntList); return questionItemsResulte; } - private void calculationNumber(List<TExamReport> tExamReportList, List<QuestionEditRequestVM> questionItemsResulte) { Integer intelligenceTitleNum = 0; Integer intelligenceNum = 0; - - // 璁$畻搴忓彿 + Integer itemSize = 0; for (QuestionEditRequestVM questionEditRequestVM : questionItemsResulte) { if (StringUtils.isEmpty(questionEditRequestVM.getParentQuestionId())) { itemSize++; } } - - // 鏍规嵁姣忎竴娈佃绠楀簭鍙�,缁勬垚闆嗗悎partSizeMap锛屽垎寮�璁板綍搴忓彿 + Map<Integer, Integer> partSizeMap = new HashMap<>(); for (QuestionEditRequestVM questionEditRequestVM : questionItemsResulte) { if (StringUtils.isNotEmpty(questionEditRequestVM.getParentQuestionId())) { @@ -383,56 +329,47 @@ partSizeMap.put(partOrder, 1); } } - - Integer partOrder = 0; for (Integer i = 0; i < questionItemsResulte.size(); i++) { QuestionEditRequestVM questionEditRequestVM = questionItemsResulte.get(i); - - // 棰樼洰鐨勫簭鍙疯鍒嗗紑璁帮紝partOrder涓嶄竴鏍峰氨閲嶆柊璁$畻 + if (!Objects.equals(partOrder, questionEditRequestVM.getPartOrder())) { partOrder = questionEditRequestVM.getPartOrder(); intelligenceTitleNum = 0; } - questionEditRequestVM.setItemOrder(i + 1);// itemOrder鏄悗鍙扮粰鐨勫簭鍙� - // 璁剧疆questionReport缁欏墠绔� + questionEditRequestVM.setItemOrder(i + 1); + setQuestionReportForVM(tExamReportList, questionEditRequestVM); - // 缁欏墠绔簭鍙� - if (Objects.equals(questionEditRequestVM.getTemplate(), "intelligence_title")) { // 闂瓟棰� + + if (Objects.equals(questionEditRequestVM.getTemplate(), "intelligence_title")) { questionEditRequestVM.setQuestionNumber(String.valueOf(++intelligenceTitleNum) + "/" + partSizeMap.get(questionEditRequestVM.getPartOrder()).toString()); intelligenceNum = 0; - } else if (StringUtils.isEmpty(questionEditRequestVM.getParentQuestionId())) { //鏅�氶 + } else if (StringUtils.isEmpty(questionEditRequestVM.getParentQuestionId())) { questionEditRequestVM.setQuestionNumber(String.valueOf(++intelligenceTitleNum) + "/" + partSizeMap.get(questionEditRequestVM.getPartOrder()).toString()); - } else { // 闂瓟棰樼殑灏忛 + } else { questionEditRequestVM.setQuestionNumber("(" + ++intelligenceNum + ")"); } } } - private void initializeIntelligenceQuestion(List<ExamPaperTitleItemVM> examPaperTitleItemVMS, List<Integer> intList, List<QuestionEditRequestVM> questionItemsResulte, ExamPaperEditRequestVM vm) { - // 鍘熸潵鐨勯鐩� + List<QuestionEditRequestVM> questionItems = examPaperTitleItemVMS.get(0).getQuestionItems(); - // 閬嶅巻姣忎竴娈电殑棰樼洰 - // 娈碉細棰樼洰棰樼洰鍒楄〃,part:棰樼洰鍒楄〃 + + Map<Integer, List<QuestionEditRequestVM>> questionEditRequestVMSMap = getPartOrderQuestionMap(examPaperTitleItemVMS, questionItems); - - // parentQuestionId : 棰樼洰 + Map<String, List<QuestionEditRequestVM>> parentQuestionIdMap = getParentQuestionIdMap(questionItems); - - // 鎻愬墠鎵撲贡 + for (Map.Entry<String, List<QuestionEditRequestVM>> entry : parentQuestionIdMap.entrySet()) { entry.setValue(getQuestionEditRequestRandVMS(entry.getValue())); } - for (Map.Entry<Integer, List<QuestionEditRequestVM>> entry : questionEditRequestVMSMap.entrySet()) { - // intelligence_title + getIntelligenceTitleResult(entry.getValue(), parentQuestionIdMap, questionItemsResulte); - - // intelligence + getintelligenceResult(entry.getValue(), questionItemsResulte); } - - // 璁剧疆搴忓彿 + vm.setOptionOrder(new ArrayList<>()); for (QuestionEditRequestVM questionEditRequestVM : questionItemsResulte) { intList.add(questionEditRequestVM.getQuestionOrder()); @@ -444,18 +381,16 @@ vm.getOptionOrder().add(prfixList); } } - private void getintelligenceResult(List<QuestionEditRequestVM> questionItems, List<QuestionEditRequestVM> questionItemsResult) { List<QuestionEditRequestVM> intelligenceList = questionItems.stream().filter((QuestionEditRequestVM questionEditRequestVM) -> Objects.equals(questionEditRequestVM.getTemplate(), "intelligence") && StringUtils.isEmpty(questionEditRequestVM.getParentQuestionId())).collect(Collectors.toList()); intelligenceList = getQuestionEditRequestRandVMS(intelligenceList); questionItemsResult.addAll(intelligenceList); } - private void getIntelligenceTitleResult(List<QuestionEditRequestVM> questionItems, Map<String, List<QuestionEditRequestVM>> parentQuestionIdMap, List<QuestionEditRequestVM> questionItemsResult) { - // intelligence_title + List<QuestionEditRequestVM> intelligenceTitleList = questionItems.stream().filter((QuestionEditRequestVM questionEditRequestVM) -> Objects.equals(questionEditRequestVM.getTemplate(), "intelligence_title")).collect(Collectors.toList()); intelligenceTitleList = getQuestionEditRequestRandVMS(intelligenceTitleList); - // 澶ч涓嬮潰鐨勫皬棰樼洰 + List<QuestionEditRequestVM> intelligenceTitleResultList = new ArrayList<>(); for (QuestionEditRequestVM questionEditRequestVM : intelligenceTitleList) { intelligenceTitleResultList.add(questionEditRequestVM); @@ -463,25 +398,22 @@ } questionItemsResult.addAll(intelligenceTitleResultList); } - private Map<String, List<QuestionEditRequestVM>> getParentQuestionIdMap(List<QuestionEditRequestVM> questionItems) { Map<String, List<QuestionEditRequestVM>> parentQuestionIdMap = questionItems.stream().collect(Collectors.groupingBy(QuestionEditRequestVM::getParentQuestionId)); parentQuestionIdMap.remove(""); return parentQuestionIdMap; } - private Map<Integer, List<QuestionEditRequestVM>> getPartOrderQuestionMap(List<ExamPaperTitleItemVM> examPaperTitleItemVMS, List<QuestionEditRequestVM> questionItems) { List<QuestionPart> parts = examPaperTitleItemVMS.get(0).getParts(); - // Map(partOrder,QuestionEditRequestVMList) + Map<Integer, List<QuestionEditRequestVM>> questionEditRequestVMSMap = new LinkedHashMap<>(); for (QuestionPart questionPart : parts) { - // 濉厖questionEditRequestVMSMap + getPartintelligenceAndTitleMap(questionItems, questionEditRequestVMSMap, questionPart); } return questionEditRequestVMSMap; } - - // 鎵撲贡棰樼洰 + private List<QuestionEditRequestVM> getQuestionEditRequestRandVMS(List<QuestionEditRequestVM> questionEditRequestVM) { List<Integer> randList = new ArrayList<>(); for (int i = 0; i < questionEditRequestVM.size(); i++) { @@ -490,16 +422,15 @@ Collections.shuffle(randList); List<QuestionEditRequestVM> intelligenceTitleListResult = new ArrayList<>(); for (int i : randList) { - // 閲嶆柊鎺掑簭鐨勬椂鍊欐墦涔遍鐩殑姣忎竴涓�夐」 + QuestionEditRequestVM questionEditRequestVMResult = questionEditRequestVM.get(i); - // 鎵撲贡棰樼洰閫夐」鐨勯『搴� + setRandQuestionItems( questionEditRequestVMResult); intelligenceTitleListResult.add(questionEditRequestVMResult); } questionEditRequestVM = intelligenceTitleListResult; return questionEditRequestVM; } - private void setRandQuestionItems( QuestionEditRequestVM questionEditRequestVMDTO) { List<QuestionEditItemVM> items = questionEditRequestVMDTO.getItems(); List<Integer> randItemList = new ArrayList<>(); @@ -508,33 +439,26 @@ for (int j = 0; j < items.size(); j++) { randItemList.add(j); } - Collections.shuffle(randItemList); - for (int k : randItemList) { itemsResult.add(items.get(k)); } - questionEditRequestVMDTO.setItems(itemsResult); } } - private void getPartintelligenceAndTitleMap(List<QuestionEditRequestVM> intelligenceAndTitleList, Map<Integer, List<QuestionEditRequestVM>> questionEditRequestVMSMap, QuestionPart questionPart) { Integer partOrder = questionPart.getPartOrder(); List<QuestionEditRequestVM> questionEditRequestListVMS = new ArrayList<>(); for (QuestionEditRequestVM questionEditRequestVM : intelligenceAndTitleList) { if (Objects.equals(questionEditRequestVM.getPartOrder(), partOrder)) { questionEditRequestListVMS.add(questionEditRequestVM); - } } questionEditRequestVMSMap.put(partOrder, questionEditRequestListVMS); } - - - // 璁剧疆棰樼洰涓嬫爣鐨勯殢鏈� + private void setSubscript(List<Integer> intList, List<QuestionEditRequestVM> questionItems) { - // 濡傛灉棰樼洰鏈夊垎娈� + if (Objects.nonNull(questionItems.get(0).getPartOrder()) && questionItems.get(0).getPartOrder() != 0) { int partOrder = questionItems.get(0).getPartOrder(); List<Integer> partOrderList = new ArrayList<>(); @@ -551,25 +475,21 @@ partOrderList.add(i); } } - - // 鏈�鍚庝竴娆℃墦涔� + Collections.shuffle(partOrderList); for (int partOrderTemp : partOrderList) { intList.add(partOrderTemp); } - } else { for (int i = 0; i < questionItems.size(); i++) { intList.add(i); } - - // 闅忔満鎵撲贡鏁扮粍鐨勯『搴� + Collections.shuffle(intList); } } - private List<ExamPaperTitleItemVM> getExamJobPaperTitleItemVMS(List<ExamPaperTitleItemVM> examPaperTitleItemVMS, List<Integer> intList, String tokenId) { - // 鍒ゆ柇棰樼洰椤哄簭鏄惁宸茬粡闅忔満杩囦簡 + TExamReport tExamReportQuery = new TExamReport(); tExamReportQuery.setTokenId(tokenId); List<TExamReport> tExamReportList = examReportService.selectTExamReportList(tExamReportQuery); @@ -577,25 +497,19 @@ TExamReport tExamReport = tExamReportList.get(0); intList = JSON.parseObject(tExamReport.getQuestionOrder(), ArrayList.class); } else { - // 鏂板闅忔満鎵撲贡搴忓垪 + for (int i = 0; i < examPaperTitleItemVMS.size(); i++) { intList.add(i); } - - // 闅忔満鎵撲贡鏁扮粍鐨勯『搴� + Collections.shuffle(intList); } - - List<ExamPaperTitleItemVM> examPaperTitleItemVMSRandoms = new ArrayList<ExamPaperTitleItemVM>(); - int itemOrder = 0; for (int i = 0; i < intList.size(); i++) { examPaperTitleItemVMSRandoms.add(examPaperTitleItemVMS.get(intList.get(i))); } - - - // 閲嶆柊鎺掑簭閫夐」鐨勯『搴忥紝璁剧疆questionReport缁欏墠绔� + for (ExamPaperTitleItemVM examPaperTitleItemVM : examPaperTitleItemVMSRandoms) { List<QuestionEditRequestVM> questionItems = examPaperTitleItemVM.getQuestionItems(); int suffixIndex = 97; @@ -603,13 +517,12 @@ questionEditRequestVM.setItemOrder(++itemOrder); questionEditRequestVM.setPermanentId(examPaperTitleItemVM.getPermanentId() + (char)suffixIndex++); } - // 璁剧疆questionReport缁欏墠绔� + setQuestionReportForVM(tExamReportList, examPaperTitleItemVM); } return examPaperTitleItemVMSRandoms; } - - // 璁剧疆questionReport缁欏墠绔�,job, 浜烘牸閮藉彲浠ョ敤 + private void setQuestionReportForVM(List<TExamReport> tExamReportList, ExamPaperTitleItemVM examPaperTitleItemVM) { for (TExamReport tExamReport : tExamReportList) { List<QuestionReport> questionReportList = JsonUtil.toJsonListObject(tExamReport.getQuestionReport(), QuestionReport.class); @@ -623,8 +536,7 @@ } } } - - // 璁剧疆questionReport缁欏墠绔�,job, 浜烘牸閮藉彲浠ョ敤 + private void setQuestionReportForVM(List<TExamReport> tExamReportList, QuestionEditRequestVM editRequestVM) { for (TExamReport tExamReport : tExamReportList) { List<QuestionReport> questionReportList = JsonUtil.toJsonListObject(tExamReport.getQuestionReport(), QuestionReport.class); @@ -638,43 +550,34 @@ } } } - @Override public Integer selectAllCount() { return examPaperMapper.selectAllCount(); } - @Override public List<Integer> selectMothCount() { return null; } - - @Override public int deleteById(Integer id) { return 0; } - @Override public int insert(ExamPaper record) { return 0; } - @Override public int insertByFilter(ExamPaper record) { return 0; } - @Override public ExamPaper selectById(Integer id) { return null; } - @Override public int updateByIdFilter(ExamPaper record) { return 0; } - @Override public int updateById(ExamPaper record) { return 0; -- Gitblit v1.9.1