package com.bonus.question.service; import com.bonus.question.beans.QuestionBean; import com.bonus.question.dao.QuestionDao; import com.bonus.sys.AjaxRes; import com.bonus.sys.BaseServiceImp; import com.bonus.sys.Page; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; @Service("QuestionService") public class QuestionServiceImp extends BaseServiceImp implements QuestionService { @Autowired QuestionDao dao; @Override public Page findByPage(QuestionBean o, Page page){ page.setResults(dao.findByPage(o,page)); return page; } @Override public List findExamPage(QuestionBean quest) { // TODO Auto-generated method stub return dao.findExamPage(quest); } @Override @Transactional public AjaxRes addQuestion(QuestionBean o) { AjaxRes ar = getAjaxRes(); try { int count = dao.insert(o); if(count == 1) { ar.setSucceedMsg("新增成功"); } else { ar.setFailMsg("新增失败!"); } } catch(Exception e) { e.printStackTrace(); ar.setFailMsg("新增失败"); } return ar; } @Override public String addCaseQuestion(QuestionBean o) { String caseId = ""; try { dao.addCaseQuestion(o); caseId = o.getCaseId(); } catch(Exception e) { e.printStackTrace(); } return caseId; } @Override public AjaxRes updateQuestion(QuestionBean o) { AjaxRes ar = getAjaxRes(); try { int count = dao.update(o); if(count == 1) { ar.setSucceedMsg("修改成功"); } else { ar.setFailMsg("修改失败!"); } } catch(Exception e) { e.printStackTrace(); ar.setFailMsg("修改失败"); } return ar; } @Override public AjaxRes deleteApply(QuestionBean o) { AjaxRes ar = getAjaxRes(); Integer res = 0; String ids = o.getIds(); List idss = getIntList(ids); res = dao.deleteApply(idss); if(res == 0) { ar.setFailMsg("删除失败!"); }else { ar.setSucceedMsg("删除成功!"); } return ar; } @Override public QuestionBean findById(QuestionBean o) { return dao.findById(o); } @Override public Integer makeExamPage(QuestionBean quest) { Map questionMap = new HashMap(); QuestionBean casequest = new QuestionBean(); if(quest.getDifficultId().equals("1")) { //1:单选2:多选3:判断4:填空5:简单6:案例分析 for(int i=1;i<=6;i++) { //设置试卷题型 quest.setClassification(String.valueOf(i)); if(i==1) { //1.简单;2.一般;3.困难; for(int j=1;j<=1;j++) { //设置题目难度 quest.setQuestionLevel(String.valueOf(j)); if(j==1) { String questionType = quest.getQuestionType(); int limit= commongetlimit(questionType); quest.setTeamzy(limit); List question1 = dao.getRandomQuestion(quest); for(int k = 0; k < question1.size(); k++) { questionMap.put(question1.get(k).getQuestionId(), question1.get(k).getOperation()); } } } }else if(i==2) { //1.简单;2.一般;3.困难; for(int j=1;j<=1;j++) { //设置题目难度 quest.setQuestionLevel(String.valueOf(j)); if(j==1) { String questionType = quest.getQuestionType(); int limit= dxcommongetlimit(questionType); quest.setTeamzy(limit); List question1 = dao.getRandomQuestion(quest); for(int k = 0; k < question1.size(); k++) { questionMap.put(question1.get(k).getQuestionId(), question1.get(k).getOperation()); } } } }else if(i==3) { //1.简单;2.一般;3.困难; for(int j=1;j<=1;j++) { //设置题目难度 quest.setQuestionLevel(String.valueOf(j)); if(j==1) { String questionType = quest.getQuestionType(); int limit= pdcommongetlimit(questionType); quest.setTeamzy(limit); List question1 = dao.getRandomQuestion(quest); for(int k = 0; k < question1.size(); k++) { questionMap.put(question1.get(k).getQuestionId(), question1.get(k).getOperation()); } } } }else if(i==4) { //1.简单;2.一般;3.困难; for(int j=1;j<=1;j++) { //设置题目难度 quest.setQuestionLevel(String.valueOf(j)); if(j==1) { List question1 = dao.getRandomQuestion(quest); for(int k = 0; k < question1.size(); k++) { questionMap.put(question1.get(k).getQuestionId(), question1.get(k).getOperation()); } } } }else if(i==5) { //1.简单;2.一般;3.困难; for(int j=1;j<=1;j++) { //设置题目难度 quest.setQuestionLevel(String.valueOf(j)); if(j==1) { List question1 = dao.getRandomQuestion(quest); for(int k = 0; k < question1.size(); k++) { questionMap.put(question1.get(k).getQuestionId(), question1.get(k).getOperation()); } } } }else { //设置题目难度 quest.setQuestionLevel(String.valueOf(1)); List question1 = dao.getRandomQuestion(quest); for(int k = 0; k < question1.size(); k++) { questionMap.put(question1.get(k).getQuestionId(), question1.get(k).getOperation()); } } } } System.out.println("questionMap:"+questionMap); QuestionBean makeExam = new QuestionBean(); Integer res = 0; makeExam.setExamId(quest.getExamId()); makeExam.setUser(quest.getUser()); for(Map.Entry entry : questionMap.entrySet()) { makeExam.setQuestionId(entry.getKey()); String oper = entry.getValue(); List list = new ArrayList(); String[] arr = oper.split(";"); if(arr.length == 2){ makeExam.setOperation(oper); }else{ for(String str: arr) { list.add(str.trim()); } Collections.shuffle(list); String newOperation =""; for(String strr: list) { newOperation += strr+";"; } makeExam.setOperation(newOperation); } res = dao.inputExamPageRecord(makeExam); } return res; } private int commongetlimit(String questionType) { Map getlimitInfo = getlimitInfo(); Integer integer = getlimitInfo.get(questionType); if(integer == null) { integer=30; } return integer; } private int dxcommongetlimit(String questionType) { Map getlimitInfo = getdxlimitInfo(); Integer integer = getlimitInfo.get(questionType); if(integer == null) { integer=5; } return integer; } public static Map getdxlimitInfo() { Map map = new HashMap<>(); map.put("69", 10); return map; } private int pdcommongetlimit(String questionType) { Map getlimitInfo = getpdlimitInfo(); Integer integer = getlimitInfo.get(questionType); if(integer == null) { integer=30; } return integer; } public static Map getpdlimitInfo() { Map map = new HashMap<>(); map.put("69", 25); return map; } public static Map getlimitInfo() { Map map = new HashMap<>(); map.put("218", 40); map.put("67", 40); map.put("69", 45); map.put("152", 40); return map; } @Override public List findUserExamPage(QuestionBean quest) { // TODO Auto-generated method stub return dao.findUserExamPage(quest); } @Override public List findCaseId(QuestionBean quest) { // TODO Auto-generated method stub return dao.findCaseId(quest); } @Override public List findCaseQuest(QuestionBean quest) { // TODO Auto-generated method stub return dao.findCaseQuest(quest); } @Override public List findSelfExamPage(QuestionBean quest) { // TODO Auto-generated method stub return dao.findSelfExamPage(quest); } @Override public int findIdbyequ(QuestionBean unList) { // TODO Auto-generated method stub return dao.findIdbyequ(unList); } @Override public int findIdbyequ1(QuestionBean unList) { // TODO Auto-generated method stub return dao.findIdbyequ1(unList); } @Override public String findtitleby(QuestionBean questionBean) { // TODO Auto-generated method stub return dao.findtitleby(questionBean); } }