From 8f781f3cb17187a7ee58f41632c25fbb2aa81cc7 Mon Sep 17 00:00:00 2001 From: linzhijie <19970921lzj> Date: 星期二, 16 三月 2021 19:57:24 +0800 Subject: [PATCH] 补充环境配置 --- src/main/java/com/ots/project/exam/service/impl/ExamPaperServiceImpl.java | 267 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 182 insertions(+), 85 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 9030e1a..52264c2 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,4 +1,6 @@ package com.ots.project.exam.service.impl; + + import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; @@ -36,6 +38,7 @@ 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; @@ -44,68 +47,93 @@ 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()); @@ -118,13 +146,15 @@ 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; @@ -135,35 +165,41 @@ } } } - + + // 瑙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()); @@ -180,7 +216,8 @@ 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())); @@ -195,37 +232,42 @@ } } } - + + // 缈昏瘧鍒嗘 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); @@ -235,35 +277,41 @@ } List<QuestionEditRequestVM> questionItemsNew = new ArrayList<>(); for (int i = 0; i < intList.size(); i++) { - questionItemsNew.add(questionItems.get(intList.get(i))); + questionItemsNew.add(questionItems.get(intList.get(i)));// 鍙栧埌搴曟槸閭d竴棰� } - + + // 閲嶆柊鎺掑簭,璁剧疆questionReport缁欏墠绔� for (int i = 0; i < questionItemsNew.size(); i++) { - questionItemsNew.get(i).setItemOrder(i+1); - + questionItemsNew.get(i).setItemOrder(i+1);// itemOrder鏄悗鍙扮粰鐨勫簭鍙� + // 璁剧疆questionReport缁欏墠绔� 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); @@ -272,51 +320,57 @@ 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())) { @@ -329,47 +383,56 @@ 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); - + questionEditRequestVM.setItemOrder(i + 1);// itemOrder鏄悗鍙扮粰鐨勫簭鍙� + // 璁剧疆questionReport缁欏墠绔� 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()); @@ -381,16 +444,18 @@ 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); @@ -398,22 +463,25 @@ } 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++) { @@ -422,15 +490,16 @@ 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<>(); @@ -439,26 +508,33 @@ 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<>(); @@ -475,21 +551,25 @@ 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); @@ -497,19 +577,25 @@ 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; @@ -517,12 +603,13 @@ 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); @@ -536,7 +623,8 @@ } } } - + + // 璁剧疆questionReport缁欏墠绔�,job, 浜烘牸閮藉彲浠ョ敤 private void setQuestionReportForVM(List<TExamReport> tExamReportList, QuestionEditRequestVM editRequestVM) { for (TExamReport tExamReport : tExamReportList) { List<QuestionReport> questionReportList = JsonUtil.toJsonListObject(tExamReport.getQuestionReport(), QuestionReport.class); @@ -550,34 +638,43 @@ } } } + @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