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,"ÒѾ­Ã»ÓдýÅúÔĵÄ×÷Òµ!"); } } }