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); Pager pager = new Pager(); List queryParamLst = null; // 查询记录数 String hqlCount="from ExamPaperInfo where createId=? and examPaperName like ? and deleteFlag is false"; if(status!=null){ hqlCount = hqlCount.concat(" and paperStatus = ?"); queryParamLst = CollectionUtils.newList(ClientUtils.getUserId(),'%'+(keyword==null?"":keyword.trim())+'%',status); }else{ queryParamLst = CollectionUtils.newList(ClientUtils.getUserId(),'%'+(keyword==null?"":keyword.trim())+'%'); } 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 createId=? and examPaperName like ? and deleteFlag is false "); if(status!=null){ hqlBuffer.append(" and paperStatus = ? "); } hqlBuffer.append(" order by createTime DESC"); List 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 lstExamPapers =null; if(StringUtils.isNotEmpty(examPaperIds)){ String hql =" from ExamPaperInfo e where e.examPaperId in(:examPaperIds) and e.deleteFlag is false "; Map param =new HashMap(); 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 statisticsMap = examPaperService.queryExamPaperItemsStatistic(paperIds); String tempExamPaperId = null; for(int i=0;i