Examination_system/Examination_system-1/.svn/pristine/7c/7cddb320b261aedd6123f964a5d...

304 lines
8.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<QuestionBean> implements QuestionService {
@Autowired
QuestionDao dao;
@Override
public Page<QuestionBean> findByPage(QuestionBean o, Page<QuestionBean> page){
page.setResults(dao.findByPage(o,page));
return page;
}
@Override
public List<QuestionBean> 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<Integer> 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<String,String> questionMap = new HashMap<String,String>();
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<QuestionBean> 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<QuestionBean> 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<QuestionBean> 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<QuestionBean> 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<QuestionBean> 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<QuestionBean> 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<String, String> entry : questionMap.entrySet()) {
makeExam.setQuestionId(entry.getKey());
String oper = entry.getValue();
List<String> list = new ArrayList<String>();
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<String, Integer> getlimitInfo = getlimitInfo();
Integer integer = getlimitInfo.get(questionType);
if(integer == null) {
integer=30;
}
return integer;
}
private int dxcommongetlimit(String questionType) {
Map<String, Integer> getlimitInfo = getdxlimitInfo();
Integer integer = getlimitInfo.get(questionType);
if(integer == null) {
integer=5;
}
return integer;
}
public static Map<String, Integer> getdxlimitInfo() {
Map<String, Integer> map = new HashMap<>();
map.put("69", 10);
return map;
}
private int pdcommongetlimit(String questionType) {
Map<String, Integer> getlimitInfo = getpdlimitInfo();
Integer integer = getlimitInfo.get(questionType);
if(integer == null) {
integer=30;
}
return integer;
}
public static Map<String, Integer> getpdlimitInfo() {
Map<String, Integer> map = new HashMap<>();
map.put("69", 25);
return map;
}
public static Map<String, Integer> getlimitInfo() {
Map<String, Integer> map = new HashMap<>();
map.put("218", 40);
map.put("67", 40);
map.put("69", 45);
map.put("152", 40);
return map;
}
@Override
public List<QuestionBean> findUserExamPage(QuestionBean quest) {
// TODO Auto-generated method stub
return dao.findUserExamPage(quest);
}
@Override
public List<QuestionBean> findCaseId(QuestionBean quest) {
// TODO Auto-generated method stub
return dao.findCaseId(quest);
}
@Override
public List<QuestionBean> findCaseQuest(QuestionBean quest) {
// TODO Auto-generated method stub
return dao.findCaseQuest(quest);
}
@Override
public List<QuestionBean> 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);
}
}