package com.qxueyou.scc.exam.action;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.stereotype.Controller;
|
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 com.qxueyou.scc.base.dao.CommonDAO;
|
import com.qxueyou.scc.base.model.Pager;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.service.ICommonService;
|
import com.qxueyou.scc.base.util.ClientUtils;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.exam.model.ExamPaperInfo;
|
import com.qxueyou.scc.exam.service.IExamPaperService;
|
import com.qxueyou.scc.exercise.service.IExerciseService;
|
|
import io.swagger.annotations.Api;
|
|
|
/**
|
* exam paper controller.
|
*
|
* @author kevin
|
* @history 2018-03-11 create kevin
|
*
|
*/
|
@Api(tags="试卷管理接口")
|
@Controller
|
@RequestMapping(value = "/exam/paper")
|
public class ExamPaperController {
|
//分页查询中,默认记录条数和页数
|
private static final int DEFAULT_PAGE_SIZE=Integer.MAX_VALUE;
|
private static final int DEFAULT_PAGE_NUM=1;
|
|
@Autowired
|
private CommonDAO commonDAO;
|
|
@Autowired
|
@Qualifier("commonAppService")
|
ICommonService commonService;
|
|
@Autowired
|
IExamPaperService examPaperService;
|
|
@Autowired
|
IExerciseService exerciseService;
|
|
|
/**
|
* 试卷列表
|
* */
|
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
public @ResponseBody Result pageList(String keyword,Short status, Integer pageSize,Integer pageNum){
|
Result result = new Result(Boolean.TRUE);
|
//判断是否是教师
|
String teacherId = ClientUtils.isAdmin() ? null : ClientUtils.getUserId();
|
Pager pager = new Pager();
|
List<Object> queryParamLst = null;
|
// 查询记录数
|
String hqlCount="from ExamPaperInfo where examPaperName like ? and deleteFlag is false";
|
if(status!=null){
|
hqlCount = hqlCount.concat(" and paperStatus = ?");
|
queryParamLst = CollectionUtils.newList('%'+(keyword==null?"":keyword.trim())+'%',status);
|
}else{
|
queryParamLst = CollectionUtils.newList('%'+(keyword==null?"":keyword.trim())+'%');
|
}
|
if (StringUtils.isNotBlank(teacherId)) {
|
hqlCount = hqlCount.concat(" and createId=?");
|
queryParamLst.add(teacherId);
|
}
|
|
int totalCount = commonDAO.findCount(hqlCount,queryParamLst);
|
|
// page赋值
|
pager.setTotalCount(totalCount);
|
pager.setPageSize(pageSize!=null&&pageSize>0?pageSize:DEFAULT_PAGE_SIZE);
|
pager.setPageNum (pageNum!=null&&pageNum>0?pageNum:DEFAULT_PAGE_NUM);
|
|
StringBuffer hqlBuffer = new StringBuffer(500);
|
hqlBuffer.append("from ExamPaperInfo where examPaperName like ? and deleteFlag is false ");
|
if(status!=null){
|
hqlBuffer.append(" and paperStatus = ? ");
|
}
|
if (StringUtils.isNotBlank(teacherId)) {
|
hqlBuffer.append(" and createId=?");
|
}
|
hqlBuffer.append(" order by createTime DESC");
|
|
List<ExamPaperInfo> list = commonDAO.findList(hqlBuffer.toString(), pager,queryParamLst, ExamPaperInfo.class);
|
if(list!=null && list.size()>0){
|
for( int i =0;i< list.size();i++){
|
list.get(i).setExerciseGroup(null);
|
list.get(i).setSectionInfos(null);
|
list.get(i).setReExamPapers(null);
|
}
|
}
|
result.addData("list", list);
|
result.addData("pager", pager);
|
return result;
|
}
|
|
/**
|
* 详情页面数据
|
* @param examPaperId
|
* @return
|
*/
|
@RequestMapping(value = "/detail", method = RequestMethod.GET)
|
public @ResponseBody Result detail(String examPaperId) {
|
Result result = new Result(true);
|
result.addData("detail",examPaperService.queryExamPaperDetail(examPaperId));
|
return result;
|
}
|
|
/**
|
* 保存
|
*
|
* @param examInfo
|
* @return
|
*/
|
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
public @ResponseBody Result save(@RequestBody ExamPaperInfo examPaperInfo) {
|
Result result = null;
|
if (StringUtils.isEmpty(examPaperInfo.getExamPaperId())) {
|
examPaperInfo.setOrgId(ClientUtils.getOrgId());
|
result = examPaperService.addExamPaper(examPaperInfo);
|
} else {
|
result = examPaperService.updateExamPaper(examPaperInfo);
|
}
|
return result;
|
}
|
|
/**
|
* 删除
|
* @param examPaperIds
|
* @return
|
*/
|
@RequestMapping(value = "/delete", method = RequestMethod.GET)
|
public @ResponseBody Result publish(String examPaperIds) {
|
Result result = new Result(true);
|
if(StringUtils.isNotEmpty(examPaperIds)){
|
result = examPaperService.deleteExamPaper(examPaperIds.split(","));
|
}
|
return result;
|
}
|
|
@RequestMapping(value = "/item/statistics", method = RequestMethod.GET)
|
public @ResponseBody Result statisticsItem (String examPaperIds) {
|
Result result = new Result(true);
|
List<ExamPaperInfo> lstExamPapers =null;
|
if(StringUtils.isNotEmpty(examPaperIds)){
|
String hql =" from ExamPaperInfo e where e.examPaperId in(:examPaperIds) and e.deleteFlag is false ";
|
Map<String,Object> param =new HashMap<String,Object>();
|
param.put("examPaperIds", examPaperIds.split(","));
|
lstExamPapers =commonDAO.findByComplexHql(hql, param, ExamPaperInfo.class);
|
|
if(lstExamPapers!=null&&lstExamPapers.size()>0){
|
String [] paperIds = new String[lstExamPapers.size()];
|
for(int i=0;i<lstExamPapers.size();i++){
|
paperIds[i]=lstExamPapers.get(i).getExamPaperId();
|
}
|
Map<String, ExamPaperInfo> statisticsMap = examPaperService.queryExamPaperItemsStatistic(paperIds);
|
String tempExamPaperId = null;
|
for(int i=0;i<lstExamPapers.size();i++){
|
tempExamPaperId =lstExamPapers.get(i).getExamPaperId();
|
lstExamPapers.get(i).setExerciseGroup(null);
|
lstExamPapers.get(i).setSectionInfos(null);
|
lstExamPapers.get(i).setReExamPapers(null);
|
lstExamPapers.get(i).setSingleSelectCount(statisticsMap.get(tempExamPaperId).getSingleSelectCount());
|
lstExamPapers.get(i).setMultiSelectCount(statisticsMap.get(tempExamPaperId).getMultiSelectCount());
|
lstExamPapers.get(i).setJudgeCount(statisticsMap.get(tempExamPaperId).getJudgeCount());
|
lstExamPapers.get(i).setQuestionCount(statisticsMap.get(tempExamPaperId).getQuestionCount());
|
lstExamPapers.get(i).setFillBlanksCount(statisticsMap.get(tempExamPaperId).getFillBlanksCount());
|
}
|
}
|
}
|
result.addData("papers",lstExamPapers);
|
return result;
|
}
|
|
|
/**
|
* 发布试卷
|
*
|
* @param exerciseIds
|
* @return
|
*/
|
@RequestMapping(value = "/publish", method = RequestMethod.GET)
|
public @ResponseBody Result publishExamPaper(String examPaperIds) {
|
if (StringUtils.isEmpty(examPaperIds)) {
|
return new Result(false, "参数错误");
|
}
|
return this.examPaperService.doPublishExamPaper(examPaperIds.split(","));
|
}
|
|
/**
|
* 撤回试卷
|
*
|
* @param exerciseIds
|
* @return
|
*/
|
@RequestMapping(value = "/revoke", method = RequestMethod.GET)
|
public @ResponseBody Result revokeExamPaper(String examPaperIds) {
|
if (StringUtils.isEmpty(examPaperIds)) {
|
return new Result(false, "参数错误");
|
}
|
return this.examPaperService.doRevokeExamPaper(examPaperIds.split(","));
|
}
|
|
|
|
|
}
|