package com.qxueyou.scc.exercise.action; 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.CollectionUtils; import com.qxueyou.scc.base.util.QBeanUtils; import com.qxueyou.scc.exercise.model.ExerciseCompleteInfo; import com.qxueyou.scc.exercise.model.ExerciseInfo; import com.qxueyou.scc.exercise.service.IExerciseCompleteService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; /** *作业完成情况 * * @author kevin * @history 2018-03-11 create kevin * */ @Api(tags="作业完成情况管理接口") @Controller @RequestMapping(value = "/exercise/complete") public class ExerciseCompleteController { //分页查询中,默认记录条数和页数 private static final int DEFAULT_PAGE_SIZE=10; private static final int DEFAULT_PAGE_NUM=1; @Autowired private CommonDAO commonDAO; @Autowired @Qualifier("commonAppService") ICommonService commonService; @Autowired IExerciseCompleteService exerciseCompleteService; /** * 作业完成情况列表 * */ @ApiOperation(value = "作业完成情况列表", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "keyword", value = "学生名称", required = false, paramType="query", dataType = "String"), @ApiImplicitParam(name = "exerciseInfoId", value = "作业id", required = true, paramType="query", dataType = "String"), @ApiImplicitParam(name = "status", value = "状态(0未提交,1待批阅,2已批阅,3需重写)", required = false, paramType="query", dataType = "Short"), }) @RequestMapping(value = "/list", method = RequestMethod.GET) public @ResponseBody Result list(String keyword,String exerciseInfoId,Short status,Integer pageSize,Integer pageNum){ pageSize = pageSize != null && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE; pageNum = pageNum != null && pageNum > 0 ? pageNum : DEFAULT_PAGE_NUM; //读取作业信息 ExerciseInfo exerciseInfo = commonService.read(ExerciseInfo.class, exerciseInfoId); //总考试数量 int totalCount = exerciseCompleteService.listCount(keyword == null ? "" : keyword.trim(),exerciseInfoId,status); Pager pager = new Pager(pageSize,pageNum); pager.setTotalCount(totalCount); List list = exerciseCompleteService.list(keyword == null ? "" : keyword.trim(),exerciseInfoId,status,pageSize,pageNum); List> listResult =QBeanUtils.listBean2ListMap(list, CollectionUtils.newStringMap("exerciseCompleteId", "exerciseCompleteId", "exerciseInfoId", "exerciseInfoId", "className", "className", "studentNo","studentNo","studentUserName", "studentUserName", "submitTime", "submitTime", "completeStatus","completeStatus","studentScore","studentScore")); return new Result(true,"",CollectionUtils.newObjectMap("exerciseInfoId",exerciseInfoId,"exerciseName",exerciseInfo.getName(),"list",listResult,"pager", pager)); } /** * 根据不同的作业类型,返回作业完成情况及审批详情 * @param exerciseCompleteId * @return */ @ApiOperation(value = "详情页面数据", notes = "") @ApiImplicitParams({@ApiImplicitParam(name = "exerciseCompleteId", value = "作业完成情况id", required = true, paramType="query", dataType = "String")}) @RequestMapping(value = "/detail", method = RequestMethod.GET) public @ResponseBody Result detail(String exerciseCompleteId) { return new Result(true,"",CollectionUtils.newObjectMap("detail",exerciseCompleteService.queryExerciseCompleteDetail(exerciseCompleteId))); } /** * 批阅 * @param exerciseCompleteInfo * @return */ @RequestMapping(value = "/save", method = RequestMethod.POST) public @ResponseBody Result save(@RequestBody ExerciseCompleteInfo exerciseCompleteInfo) { if(StringUtils.isEmpty(exerciseCompleteInfo.getExerciseCompleteId())){ return new Result(true,"",CollectionUtils.newObjectMap("exerciseCompleteId",exerciseCompleteService.addExerciseComplete(exerciseCompleteInfo))); }else{ return exerciseCompleteService.updateExerciseComplete(exerciseCompleteInfo); } } /** * 批阅 * @param examInfo * @return */ @ApiOperation(value = "批阅", notes = "") @RequestMapping(value = "/check", method = RequestMethod.POST) public @ResponseBody Result checkExerciseComplateInfo(@RequestBody ExerciseCompleteInfo exerciseCompleteInfo) { return exerciseCompleteService.updateExerciseComplete(exerciseCompleteInfo); } /** * 批阅下一个 * @param examInfo * @return */ @ApiOperation(value = "批阅下一个", notes = "") @ApiImplicitParams({@ApiImplicitParam(name = "exerciseInfoId", value = "作业id", required = true, paramType="query", dataType = "String")}) @RequestMapping(value = "/checknext", method = RequestMethod.GET) public @ResponseBody Result checkExerciseComplateInfo(String exerciseInfoId) { String hql = "from ExerciseCompleteInfo where exerciseInfoId=? and completeStatus=? and deleteFlag is false order by studentNo asc"; ExerciseCompleteInfo lastCompleteInfo = this.commonDAO.findUnique(hql, CollectionUtils.newList(exerciseInfoId,ExerciseCompleteInfo.STATUS_COMMIT), ExerciseCompleteInfo.class); if(lastCompleteInfo!=null){ return new Result(true,"",CollectionUtils.newObjectMap("detail",exerciseCompleteService.queryExerciseCompleteDetail(lastCompleteInfo.getExerciseCompleteId()))); }else{ return new Result(false,"已经没有待批阅的作业!"); } } }