Examination_system/Examination_system-1/.svn/pristine/a4/a45a3dc7e75fd38c20ee2770a89...

958 lines
33 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.grade.controller;
import com.bonus.core.DateTimeHelper;
import com.bonus.grade.beans.gradeBean;
import com.bonus.grade.service.gradeService;
import com.bonus.operation.Beans.OperationBean;
import com.bonus.question.beans.QuestionBean;
import com.bonus.question.service.QuestionService;
import com.bonus.registration.beans.RegistrationBean;
import com.bonus.registration.service.RegistrationService;
import com.bonus.score.beans.ScoreBean;
import com.bonus.sys.*;
import com.bonus.sys.beans.CheckCard;
import com.bonus.sys.beans.UserBean;
import com.gexin.fastjson.JSON;
import com.gexin.fastjson.JSONArray;
import com.gexin.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@Controller
@RequestMapping("/backstage/grade/")
public class gradeController extends BaseController<gradeBean> {
@Autowired
private gradeService service;
@Autowired
private QuestionService questionService;
@Autowired
RegistrationService regiservice;
@RequestMapping("gradeList")
public String launchList(Model model) {
return "/grade/gradeList";
}
// @RequestMapping("details")
// public String details(Model model) {
// return "/person/gradeForm";
// }
//
@RequestMapping(value = "findByPageTwo", method = RequestMethod.POST)
@ResponseBody
public AjaxRes findByPageTwo(Page<ScoreBean> page, ScoreBean o) {
AjaxRes ar = getAjaxRes();
try {
Page<ScoreBean> result = service.findByPageTwo(o, page);
Map<String, Object> p = new HashMap<String, Object>();
p.put("list", result);
ar.setSucceed(p);
} catch (Exception e) {
logger.error(e.toString(), e);
ar.setFailMsg(GlobalConst.DATA_FAIL);
}
return ar;
}
@RequestMapping(value = "toStartStatus", method = RequestMethod.POST)
@ResponseBody
public AjaxRes toStartStatus(ScoreBean o,String times) {
AjaxRes ar = getAjaxRes();
try {
ar = service.toStartStatus(o);
List<RegistrationBean> examLists = regiservice.showExamPerson(o.getExamId());
for(RegistrationBean bean : examLists) {
if(bean.getIsActive() == 1 && bean.getTimes().equals(times)) {
queryInformation(bean);
}else if(bean.getIsActive() == 0 && bean.getTimes().equals(times)) {
queryInformation(bean);
}
}
} catch (Exception e) {
logger.error(e.toString(), e);
ar.setFailMsg(GlobalConst.DATA_FAIL);
}
return ar;
}
public void queryInformation(RegistrationBean rb){
gradeBean o = new gradeBean();
RegistrationBean bean = regiservice.findByidcard(rb.getIdcard());
UserBean user = new UserBean();
Integer userId = rb.getUserId();
user.setId(userId);
String userName = rb.getName();
user.setName(userName);
if(bean != null) {
o.setExamPerfession(bean.getSpecialty());
o.setExamCount(bean.getTimes());
o = service.findExamPage(o);
o.setExamPerfession(bean.getSpecialty());
}
String examId = o.getExamId();
String difficultId = o.getDifficultId();
String professId = o.getExamPerfession();
QuestionBean quest = new QuestionBean();
quest.setQuestionType(professId);
quest.setDifficultId(difficultId);
quest.setExamId(examId);
quest.setUser(user);
questionService.makeExamPage(quest);
bean.setExamId(examId);
bean.setIdcard(userId + "");
regiservice.setExamId(bean);
//------------------------------------------------------------------------------------------
String examName = service.findIsActice(o.getExamId()).getExamName();
o.setExamName(examName);
//题目集合
List<QuestionBean> single = new ArrayList<QuestionBean>();
quest.setClassification("");
single=questionService.findExamPage(quest);
saveExamInfo(o,single,user);
}
@RequestMapping("showExamPerson")
public String showExamPerson(String id, String times, Model model) {
List<RegistrationBean> examLists = regiservice.showExamPerson(id);
gradeBean gradeis = service.findIsActice(id);
//是这场考试的人并且来了
List<RegistrationBean> yLists = new ArrayList<RegistrationBean>();
//是这场考试的人并且没来
List<RegistrationBean> nLists = new ArrayList<RegistrationBean>();
//不是这场考试的人并且来了
List<RegistrationBean> fLists = new ArrayList<RegistrationBean>();
for(RegistrationBean bean : examLists) {
if(bean.getIsActive() == 1 && bean.getTimes().equals(times)) {
yLists.add(bean);
}else if(bean.getIsActive() == 0 && bean.getTimes().equals(times)) {
nLists.add(bean);
}else if(bean.getIsActive() == 1 && !bean.getTimes().equals(times)) {
fLists.add(bean);
}
}
model.addAttribute("yLists", yLists);
model.addAttribute("nLists", nLists);
model.addAttribute("fLists", fLists);
model.addAttribute("examId", id);
model.addAttribute("gradeis", gradeis);
model.addAttribute("times", times);
return "/grade/showExamPersonPage";
}
@RequestMapping("showExamingPerson")
public String showExamingPerson(String id, Model model) {
List<RegistrationBean> examLists = regiservice.showExamingPerson(id);
//是这场考试的人并且来了
List<RegistrationBean> yLists = new ArrayList<RegistrationBean>();
//是这场考试的人并且没来
List<RegistrationBean> nLists = new ArrayList<RegistrationBean>();
for(RegistrationBean bean : examLists) {
if(bean.getIsActive() == 1) {
yLists.add(bean);
} else if(bean.getIsActive() == 0) {
nLists.add(bean);
}
}
List<RegistrationBean> scoreLists = regiservice.findExamPerson(id); //本场考试提前提交的人员
for(RegistrationBean bean : scoreLists) {
yLists.add(bean);
}
model.addAttribute("yLists", yLists);
model.addAttribute("nLists", nLists);
return "/grade/showExamingPersonPage";
}
@RequestMapping("showPersonScore")
public String showPersonScore(String id, Model model) {
List<RegistrationBean> nLists = regiservice.findMissingTest(id); //缺考人员
List<RegistrationBean> yLists = regiservice.findExamPerson(id);
model.addAttribute("yLists", yLists);
model.addAttribute("nLists", nLists);
return "/grade/showExamingPersonPage";
}
@RequestMapping("showPersonScoreResult")
public String showPersonScoreResult(String id, Model model) {
List<RegistrationBean> lists = regiservice.showPersonScoreResult(id);
model.addAttribute("Lists", lists);
return "/grade/showExamingPersonPageResult";
}
@RequestMapping("addFormPage")
public String addFormPage(HttpServletRequest request,String id,Model model) {
if(id != null) {
gradeBean bean=service.getinfoByid(id);
List<gradeBean> list = service.getProfessById(id);
String profess = "";
String pName = "";
if(list != null && list.size() != 0) {
for(int i = 0; i < list.size(); i++) {
profess += list.get(i).getExamPerfession() + ",";
pName += list.get(i).getPerfessionName() + ",";
}
request.setAttribute("type", "edit");
request.setAttribute("profess", profess);
request.setAttribute("pName", pName);
}
request.setAttribute("bean", bean);
}
String examCounts = "";
List<gradeBean> gradeList = service.selectExamCount();
for (gradeBean l:gradeList){
examCounts += l.getExamCount() + ";";
}
request.setAttribute("examCounts",examCounts);
return "/grade/addFromPage";
}
@RequestMapping("startExam")
@ResponseBody
public AjaxRes startExam(gradeBean o) {
AjaxRes ar = getAjaxRes();
try {
int processTime = Integer.parseInt(o.getExamTime());
String nowTime = DateTimeHelper.getNowTime();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = df.parse(nowTime);
Date date2 = new Date(date.getTime() + processTime*60*1000);
String endTime = df.format(date2);
o.setEndTime(endTime);
o.setStartTime(nowTime);
o.setIsActive("1");
service.update(o);
ar.setSucceedMsg("成功开始考试");
new Timer().schedule(new TimerTask() { //开启定时器
@Override
public void run() {
try {
service.updateStatus(o);
//插入缺考人员表
List<RegistrationBean> examLists = regiservice.showExamingPerson(o.getExamId());
for(RegistrationBean bean : examLists) {
if(bean.getIsActive() == 0) {
regiservice.insertMissingTest(bean);
}
}
service.deleteRegistration(o); //逻辑删除报名表中参与本场考试的人员
} catch (Exception e) {
e.printStackTrace();
}
}
}, processTime*60*1000);
} catch(Exception e) {
ar.setFailMsg("考试失败");
e.printStackTrace();
}
return ar;
}
@RequestMapping("findIsEnd")
@ResponseBody
public AjaxRes findIsEnd(gradeBean o) {
AjaxRes ar = getAjaxRes();
try {
o = service.findIsActice(o.getExamId());
if(o.getIsActive().equals("2")) {
ar.setSucceedMsg("考试已结束");
} else {
ar.setFailMsg("考试未结束");
}
} catch(Exception e) {
ar.setFailMsg("考试未结束");
e.printStackTrace();
}
return ar;
}
@RequestMapping("addPerson")
public String addPserson(HttpServletRequest request,String id) {
// if(id != null) {
// gradeBean bean=service.getinfoByid(id);
// request.setAttribute("bean", bean);
// }
return "/grade/addPerson";
}
/**
* 新增发布考试
* @param
* @return
*/
@RequestMapping("FormPageinfo")
@ResponseBody
public AjaxRes FormPageinfo(HttpServletRequest request,@RequestBody JSONObject obj){
AjaxRes ar = getAjaxRes();
try {
String data=obj.toJSONString();
JSONObject json = JSON.parseObject(data);
String createArr=json.getString("createArr");
String modifyArr=json.getString("modifyArr");
String type = json.getString("type");
gradeBean o=new gradeBean();
if(type.equals("1")) {
if(StringUtils.isNotEmpty(modifyArr)){
JSONObject jsonObject=JSONObject.parseObject(modifyArr);
String examName=jsonObject.get("examName").toString();
String examCount=jsonObject.get("examCount").toString();
String fabuUserid=jsonObject.get("fabuUserid").toString();
String examTime=jsonObject.get("examTime").toString();
String viewGrade=jsonObject.get("viewGrade").toString();
String nowTime = DateTimeHelper.getNowTime();
o.setReleaseTime(nowTime);
o.setIsActive("3");
o.setExamTime(examTime);
o.setExamCount(examCount);
o.setExamName(examName);
o.setFabuUserid(fabuUserid);
o.setViewGrade(viewGrade);
service.insert(o);
}
if(StringUtils.isNotEmpty(createArr)){
JSONArray createArray=JSONArray.parseArray(createArr);
for(int i=0;i<createArray.size();i++){
String examPerfession=JSONObject.parseObject(JSONObject.toJSONString(createArray.get(i))).getString("examPerfession");
String difficultId=JSONObject.parseObject(JSONObject.toJSONString(createArray.get(i))).getString("difficultId");
service.professsave(examPerfession,difficultId,o.getExamId());
}
}
ar.setSucceedMsg("新增成功");
}else if(type.equals("2")) {
String examId = json.getString("examId");
JSONObject jsonObject = JSONObject.parseObject(modifyArr);
String examName = jsonObject.get("examName").toString();
String examCount = jsonObject.get("examCount").toString();
String examTime = jsonObject.get("examTime").toString();
String viewGrade = jsonObject.getString("viewGrade").toString();
o.setExamTime(examTime);
o.setExamCount(examCount);
o.setExamName(examName);
o.setExamId(examId);
o.setViewGrade(viewGrade);
service.update(o);
if(StringUtils.isNotEmpty(createArr)) {
JSONArray createArray = JSONArray.parseArray(createArr);
List<gradeBean> list = service.getProfessById(examId);
if(list != null && list.size() != 0) {
for(int i = 0; i < list.size(); i++) {
service.deleteProfess(list.get(i));
}
}
for(int i = 0; i < createArray.size(); i++) {
String examPerfession = JSONObject.parseObject(JSONObject.toJSONString(createArray.get(i))).getString("examPerfession");
String difficultId = JSONObject.parseObject(JSONObject.toJSONString(createArray.get(i))).getString("difficultId");
service.professsave(examPerfession, difficultId, examId);
}
}
ar.setSucceedMsg("修改成功");
}
} catch (Exception e) {
e.printStackTrace();
ar.setFailMsg("操作失败!");
}
return ar;
}
/**
* 删除
* @param o
* @return
*/
@RequestMapping("delgrade")
@ResponseBody
public AjaxRes delgrade(gradeBean o){
AjaxRes ar = getAjaxRes();
try {
service.delete(o);
ar.setSucceedMsg("删除成功");
} catch (Exception e) {
e.printStackTrace();
ar.setFailMsg("操作失败!");
}
return ar;
}
@RequestMapping("saveQuestionContent")
@ResponseBody
public AjaxRes saveQuestionContent(gradeBean o){
AjaxRes ar = getAjaxRes();
try {
//service.saveQuestionContent(o);
ar.setSucceedMsg("保存成功!");
} catch (Exception e) {
e.printStackTrace();
ar.setFailMsg("操作失败!");
}
return ar;
}
@RequestMapping("stopExam")
@ResponseBody
public AjaxRes stopExam(gradeBean o){
AjaxRes ar = getAjaxRes();
try {
Integer res = service.stopExam(o);
if(res == 1){
ar.setSucceedMsg("考试终止!");
}else{
ar.setFailMsg("考试终止失败!");
}
} catch (Exception e) {
e.printStackTrace();
ar.setFailMsg("操作失败!");
}
return ar;
}
@RequestMapping("toSelfExam")
@ResponseBody
public AjaxRes toSelfExam(Model model, HttpServletRequest request, @RequestBody gradeBean o) {
AjaxRes ar = getAjaxRes();
Map<String, Object> p = new HashMap<String, Object>();
try {
String typeId = o.getTypeId();
String examId = service.genSelfExam(o);
if(examId !=null){
p.put("examId", examId);
p.put("typeId", typeId);
ar.setSucceed(p);
ar.setSucceedMsg("出题成功!");
}else{
ar.setFailMsg("出题失败!");
}
} catch(Exception e) {
e.printStackTrace();
ar.setFailMsg("出题过程出现异常!");
}
return ar;
}
@RequestMapping("toExam")
@ResponseBody
public AjaxRes toExam(Model model, HttpServletRequest request, @RequestBody gradeBean gbean) {
// shiro获取用户信息
UserBean user = UserShiroHelper.getCurrentUser();//id=22997, name=李四, orgId=69,orgName=一般管理人员,internalEmp=null, loginName=622421199311133217, picUrl=/SCEquipWeb/static/css/sys/images/user/hpic0.jpg, skin=skin-0, salt=13bf58ad2ffc6da1a5802e4025e1b9bc, passwd=nRF0RJqiRAbQCBeDDutZkg==, sex=1, mail=ddd@163.com,telphone=112, createTime=Wed Sep 22 00:00:00 CST 2021,isActive=1,brother=0,ifPermiss=0,greenScore=1.0,roleId=0
String examId = gbean.getExamId();//162
String difficultId = gbean.getDifficultId();//1
String professId = gbean.getExamPerfession();//67
//1.简单2.一般3.困难;
QuestionBean quest = new QuestionBean();
quest.setQuestionType(professId);
quest.setDifficultId(difficultId);
quest.setExamId(examId);
quest.setUser(user);
AjaxRes ar = getAjaxRes();
try {
Integer res = 0;
List<QuestionBean> re= new ArrayList<QuestionBean>();
re= questionService.findUserExamPage(quest);
if(re.size()==0) {
res = questionService.makeExamPage(quest);
}
ar.setSucceedMsg("出题成功");
} catch(Exception e) {
e.printStackTrace();
ar.setFailMsg("出题过程出现异常");
}
return ar;
}
@RequestMapping("toExamPage")
public String toExamPage(Model model, HttpServletRequest request) {
UserBean user = UserShiroHelper.getRealCurrentUser();
String examId = request.getParameter("examId");
RegistrationBean reg = new RegistrationBean();
reg.setExamId(examId);
reg.setIdcard(user.getLoginName());
regiservice.setExamId(reg);
model.addAttribute("examId",examId);
//获取当前的剩余考试时间
//去查询当前报名的信息
gradeBean o = new gradeBean();
RegistrationBean bean=regiservice.findByidcard(user.getLoginName());
o.setExamPerfession(bean.getSpecialty());
o.setExamCount(bean.getTimes());
o = service.findExamPage(o);
o.setExamPerfession(bean.getSpecialty());
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = o.getStartTime();
long end=0;
try {
String endTime=o.getEndTime();
end = fmt.parse(endTime).getTime();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Date date = new Date();
long nowTime = date.getTime();
long shteam=end-nowTime;
long days = shteam / (1000 * 60 * 60 * 24);
long hours = (shteam-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
long minutes = (shteam-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
System.out.println(""+days+"天"+hours+"小时"+minutes+"分");
o.setKstime(shteam);
request.setAttribute("kssj", shteam);
return "/sys/examPage";
}
@RequestMapping("toExamingPage")
public String toExamingPage(Model model, HttpServletRequest request) {
String examId = request.getParameter("examId");
String typeId = request.getParameter("typeId");
String testId = request.getParameter("testId");
model.addAttribute("examId",examId);
model.addAttribute("typeId",typeId);
model.addAttribute("testId",testId);
//获取当前的剩余考试时间
//去查询当前报名的信息
gradeBean o = service.getSelfInfoBy(examId);
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long end=0;
try {
String endTime= o.getEndTime();
end = fmt.parse(endTime).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
Date date = new Date();
long nowTime = date.getTime();
long shteam=end-nowTime;
long days = shteam / (1000 * 60 * 60 * 24);
long hours = (shteam-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
long minutes = (shteam-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
System.out.println(""+days+"天"+hours+"小时"+minutes+"分");
o.setKstime(shteam);
request.setAttribute("kssj", shteam);
return "/sys/selfExamingPage";
}
@RequestMapping(value = "findByPage")
public String findByPage(@RequestBody Page<gradeBean> page, gradeBean o, Model model) {
try {
Integer re = 0;
o = page.getObj();
page = service.findByPage(o, page);
for(gradeBean seat : page.getResults()){
gradeBean seats = service.findExamPersonNum(seat);
seat.setExamPersonNum(seats.getExamPersonNum());
}
List<gradeBean> res = service.findExaming();
if(res.size()!=0) {
re = 1;
}else {
re=0;
}
model.addAttribute("page", page);
model.addAttribute("re", re);
} catch (Exception e) {
logger.error(e.toString(), e);
e.printStackTrace();
}
return "/grade/gradeListDetails";
}
/**
* 查询题目信息
* @param o
* @param model
* @return
*/
@RequestMapping("findExamContentPage")
public String findExamContentPage(gradeBean o,Model model) {
UserBean user = UserShiroHelper.getRealCurrentUser();
String selectValue = o.getSelectValue();
String examName = service.findIsActice(o.getExamId()).getExamName();
o.setExamName(examName);
//单选题集合
List<QuestionBean> single = new ArrayList<QuestionBean>();
//多选题集合
List<QuestionBean> multiple = new ArrayList<QuestionBean>();
//判断选题集合
List<QuestionBean> judge = new ArrayList<QuestionBean>();
//填空题集合
List<QuestionBean> completion = new ArrayList<QuestionBean>();
//简答题集合
List<QuestionBean> shortAnswer = new ArrayList<QuestionBean>();
//案例分析题集合
List<QuestionBean> caseAnalysis = new ArrayList<QuestionBean>();
String url = "";
QuestionBean quest = new QuestionBean();
quest.setExamId(o.getExamId());
quest.setUser(user);
if(selectValue.equals("1")) {
quest.setClassification("1");
single=questionService.findExamPage(quest);
if(single.size() !=0) {
//查询是否是第一次更新相关内容
String questionTitle=questionService.findtitleby(single.get(0));
System.out.println(questionTitle);
String question1 = questionTitle+"1";
if(question1.equals("null1")) {
saveExamInfo(o,single,user);
}
}
operationList(single);
Integer singleNum = single.size();
model.addAttribute("singleNum", singleNum);
model.addAttribute("single", single);
url="/exampage/singleChoice";
}else if(selectValue.equals("2")) {
quest.setClassification("2");
multiple = questionService.findExamPage(quest);
if(multiple.size() !=0) {
//查询是否是第一次更新相关内容
String questionTitle=questionService.findtitleby(multiple.get(0));
String question1 = questionTitle+"1";
if(question1.equals("null1")) {
saveExamInfo(o,multiple,user);
}
}
operationList(multiple);
Integer multipleNum = multiple.size();
model.addAttribute("multipleNum", multipleNum);
model.addAttribute("multiple", multiple);
url="/exampage/multipleChoice";
}else if(selectValue.equals("3")) {
quest.setClassification("3");
judge = questionService.findExamPage(quest);
if(judge.size() !=0) {
//查询是否是第一次更新相关内容
String questionTitle=questionService.findtitleby(judge.get(0));
String question1 = questionTitle+"1";
if(question1.equals("null1")) {
saveExamInfo(o,judge,user);
}
}
operationList(judge);
Integer judgeNum = judge.size();
model.addAttribute("judgeNum", judgeNum);
model.addAttribute("judge", judge);
url="/exampage/judge";
}else if(selectValue.equals("4")) {
quest.setClassification("4");
completion = questionService.findExamPage(quest);
//查询是否是第一次更新相关内容
if(completion.size() !=0) {
String questionTitle=questionService.findtitleby(completion.get(0));
String question1 = questionTitle+"1";
if(question1.equals("null1")) {
saveExamInfo(o,completion,user);
}
}
operationList(completion);
Integer completionNum = completion.size();
model.addAttribute("completionNum", completionNum);
model.addAttribute("completion", completion);
url="/exampage/completion";
}else if(selectValue.equals("5")) {
quest.setClassification("5");
shortAnswer = questionService.findExamPage(quest);
if(shortAnswer.size() !=0) {
//查询是否是第一次更新相关内容
String questionTitle=questionService.findtitleby(shortAnswer.get(0));
String question1 = questionTitle+"1";
if(question1.equals("null1")) {
saveExamInfo(o,shortAnswer,user);
}
}
operationList(shortAnswer);
Integer shortAnswerNum = shortAnswer.size();
model.addAttribute("shortAnswerNum", shortAnswerNum);
model.addAttribute("shortAnswer", shortAnswer);
url="/exampage/shortAnswer";
}else{
quest.setClassification("6");
caseAnalysis = questionService.findExamPage(quest);
//查询是否是第一次更新相关内容
if(caseAnalysis.size() !=0) {
String questionTitle=questionService.findtitleby(caseAnalysis.get(0));
String question1 = questionTitle+"1";
if(question1.equals("null1")) {
saveExamInfo(o,caseAnalysis,user);
}
}
operationList(caseAnalysis);
Integer caseAnalysisNum = caseAnalysis.size();
model.addAttribute("caseAnalysisNum", caseAnalysisNum);
model.addAttribute("caseAnalysis", caseAnalysis);
url="/exampage/caseAnalysis";
}
//System.out.println("试卷题目---变序:"+single);
return url;
}
@RequestMapping("findExamSelfContentPage")
public String findExamSelfContentPage(gradeBean o,Model model) {
UserBean user = UserShiroHelper.getRealCurrentUser();
String selectValue = o.getSelectValue();
//String examName = service.findIsActice(o.getExamId()).getExamName();
o.setExamName("自测练习");
//单选题集合
List<QuestionBean> single = new ArrayList<QuestionBean>();
//多选题集合
List<QuestionBean> multiple = new ArrayList<QuestionBean>();
//判断选题集合
List<QuestionBean> judge = new ArrayList<QuestionBean>();
//填空题集合
List<QuestionBean> completion = new ArrayList<QuestionBean>();
//简答题集合
List<QuestionBean> shortAnswer = new ArrayList<QuestionBean>();
//案例分析题集合
List<QuestionBean> caseAnalysis = new ArrayList<QuestionBean>();
String url = "";
QuestionBean quest = new QuestionBean();
quest.setExamId(o.getExamId());
quest.setUser(user);
if (o.getTestId().equals("1")){
if(selectValue.equals("1")) {
quest.setClassification("1");
single=questionService.findSelfExamPage(quest);
saveExamInfo1(o,single,user);
operationList(single);
Integer singleNum = single.size();
model.addAttribute("singleNum", singleNum);
model.addAttribute("single", single);
url="/exampage/singleSelfChoice";
}else if(selectValue.equals("2")) {
quest.setClassification("2");
multiple = questionService.findSelfExamPage(quest);
saveExamInfo1(o,multiple,user);
operationList(multiple);
Integer multipleNum = multiple.size();
model.addAttribute("multipleNum", multipleNum);
model.addAttribute("multiple", multiple);
url="/exampage/multipleSelfChoice";
}else if(selectValue.equals("3")) {
quest.setClassification("3");
judge = questionService.findSelfExamPage(quest);
saveExamInfo1(o,judge,user);
operationList(judge);
Integer judgeNum = judge.size();
model.addAttribute("judgeNum", judgeNum);
model.addAttribute("judge", judge);
url="/exampage/judgeSelf";
}else if(selectValue.equals("4")) {
quest.setClassification("4");
completion = questionService.findSelfExamPage(quest);
saveExamInfo1(o,completion,user);
operationList(completion);
Integer completionNum = completion.size();
model.addAttribute("completionNum", completionNum);
model.addAttribute("completion", completion);
url="/exampage/completionSelf";
}else if(selectValue.equals("5")) {
quest.setClassification("5");
shortAnswer = questionService.findSelfExamPage(quest);
saveExamInfo1(o,shortAnswer,user);
operationList(shortAnswer);
Integer shortAnswerNum = shortAnswer.size();
model.addAttribute("shortAnswerNum", shortAnswerNum);
model.addAttribute("shortAnswer", shortAnswer);
url="/exampage/shortSelfAnswer";
}else{
quest.setClassification("6");
caseAnalysis = questionService.findSelfExamPage(quest);
saveExamInfo1(o,caseAnalysis,user);
operationList(caseAnalysis);
Integer caseAnalysisNum = caseAnalysis.size();
model.addAttribute("caseAnalysisNum", caseAnalysisNum);
model.addAttribute("caseAnalysis", caseAnalysis);
url="/exampage/caseSelfAnalysis";
}
}else {
if(selectValue.equals("1")) {
quest.setClassification("1");
single=questionService.findSelfExamPage(quest);
saveExamInfo(o,single,user);
operationList(single);
Integer singleNum = single.size();
model.addAttribute("singleNum", singleNum);
model.addAttribute("single", single);
url="/exampage/singleSelfChoice";
}else if(selectValue.equals("2")) {
quest.setClassification("2");
multiple = questionService.findSelfExamPage(quest);
saveExamInfo(o,multiple,user);
operationList(multiple);
Integer multipleNum = multiple.size();
model.addAttribute("multipleNum", multipleNum);
model.addAttribute("multiple", multiple);
url="/exampage/multipleSelfChoice";
}else if(selectValue.equals("3")) {
quest.setClassification("3");
judge = questionService.findSelfExamPage(quest);
saveExamInfo(o,judge,user);
operationList(judge);
Integer judgeNum = judge.size();
model.addAttribute("judgeNum", judgeNum);
model.addAttribute("judge", judge);
url="/exampage/judgeSelf";
}else if(selectValue.equals("4")) {
quest.setClassification("4");
completion = questionService.findSelfExamPage(quest);
saveExamInfo(o,completion,user);
operationList(completion);
Integer completionNum = completion.size();
model.addAttribute("completionNum", completionNum);
model.addAttribute("completion", completion);
url="/exampage/completionSelf";
}else if(selectValue.equals("5")) {
quest.setClassification("5");
shortAnswer = questionService.findSelfExamPage(quest);
saveExamInfo(o,shortAnswer,user);
operationList(shortAnswer);
Integer shortAnswerNum = shortAnswer.size();
model.addAttribute("shortAnswerNum", shortAnswerNum);
model.addAttribute("shortAnswer", shortAnswer);
url="/exampage/shortSelfAnswer";
}else{
quest.setClassification("6");
caseAnalysis = questionService.findSelfExamPage(quest);
saveExamInfo(o,caseAnalysis,user);
operationList(caseAnalysis);
Integer caseAnalysisNum = caseAnalysis.size();
model.addAttribute("caseAnalysisNum", caseAnalysisNum);
model.addAttribute("caseAnalysis", caseAnalysis);
url="/exampage/caseSelfAnalysis";
}
}
//System.out.println("试卷题目---变序:"+single);
return url;
}
// 保存试卷相关信息
public void saveExamInfo(gradeBean o,List<QuestionBean> list,UserBean user){
for(QuestionBean unList: list){
unList.setGrade(o);
unList.setUser(user);
QuestionBean qbean = questionService.findById(unList);
if(qbean != null) {
unList.setTrueOperation(qbean.getOperation()); //乱序前的选项
int eqid= questionService.findIdbyequ(unList); //通过三个条件查询主键id
unList.setEqId(eqid);
}
service.saveExamInfo(unList);
}
}
public void saveExamInfo1(gradeBean o,List<QuestionBean> list,UserBean user){
for(QuestionBean unList: list){
unList.setGrade(o);
unList.setUser(user);
QuestionBean qbean = questionService.findById(unList);
if(qbean != null) {
unList.setTrueOperation(qbean.getOperation()); //乱序前的选项
int eqid= questionService.findIdbyequ1(unList); //通过三个条件查询主键id
unList.setEqId(eqid);
}
service.saveExamInfo1(unList);
}
}
//选项乱序
public void operationList(List<QuestionBean> list) {
for (QuestionBean q : list) {
//获取每题选项
String operation = q.getOperation();
//System.out.println("题目选项数组:"+operation);
//正则赛选出选项
String[] oper = operation.split(";");
List<String> ope = new ArrayList<String>();
List<OperationBean> opp = new ArrayList<OperationBean>();
for(String op:oper) {
ope.add(op);
}
for(String s:ope) {
OperationBean operat = new OperationBean();
operat.setId(s.substring(0, 1));
operat.setContent(s.substring(1));
operat.setNums(String.valueOf(ope.size()));
opp.add(operat);
}
//System.out.println("选项集合"+opp);
q.setOperationContent(opp);
}
}
@RequestMapping(value = "find", method = RequestMethod.POST)
@ResponseBody
public AjaxRes find(gradeBean o) {
AjaxRes ar = getAjaxRes();
try {
List<gradeBean> list = service.find(o);
gradeBean station = list.get(0);
ar.setSucceed(station);
} catch (Exception e) {
logger.error(e.toString(), e);
ar.setFailMsg(GlobalConst.DATA_FAIL);
}
return ar;
}
@RequestMapping("idCardFun")
@ResponseBody
public AjaxRes idCardFun(@Param("idCard") String idCard, Model model) {
AjaxRes ar = getAjaxRes();
try {
CheckCard card = new CheckCard();
boolean flag = card.verify(idCard);
if(flag){
ar.setSucceedMsg("身份证合法");
}else {
ar.setFailMsg("身份证不合法");
}
} catch(Exception e) {
e.printStackTrace();
}
return ar;
}
}