package com.qxueyou.scc.exercise.action; import java.util.ArrayList; 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.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.qxueyou.scc.base.dao.CommonDAO; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.util.ClientUtils; import com.qxueyou.scc.base.util.CollectionUtils; import com.qxueyou.scc.exercise.model.ExerciseCorrection; import com.qxueyou.scc.exercise.model.ExerciseCorrectionResult; import com.qxueyou.scc.exercise.model.ExerciseItem; import com.qxueyou.scc.exercise.model.ExerciseItemOption; import com.qxueyou.scc.exercise.model.ExerciseObjectImg; import com.qxueyou.scc.exercise.service.IExerciseCorrectionService; import com.qxueyou.scc.sys.model.SysDictionary; /** * Á·Ï°¾À´í¿ØÖÆ * @author alger */ @Controller @RequestMapping(value="/exercise/correction") public class ExerciseCorrectionController { @Autowired private CommonDAO commonDAO; @Autowired private IExerciseCorrectionService exerciseCorrectionService; /** * APP2.0: ´Ó¿Í»§¶Ë½ÓÊÕ¾À´íÐÅÏ¢ * URL: /exercise/correction/addCorrInfoNew * * @param groupId ×éId * @param groupName ×éÃû * @param exerciseNum Á·Ï° * @param exerciseId Á·Ï°id * @param correctids ´íÎóÑ¡ÏîÐÅÏ¢ * @param content ´íÎóÄÚÈÝ * @return */ @RequestMapping(value="addCorrInfoNew",method=RequestMethod.GET) public @ResponseBody Result doAdd( @RequestParam(value = "groupId") String groupId, @RequestParam(value = "groupName") String groupName, @RequestParam(value = "exerciseNum") String exerciseNum, @RequestParam(value = "exerciseId") String exerciseId, @RequestParam(value = "correctids") String correctids, String content) { Result objResult = exerciseCorrectionService.insertExerciseCorrection(groupId,groupName,exerciseNum,exerciseId,correctids,content); // ·µ»Ø¸ø¿Í»§¶Ë½á¹ûÐÅÏ¢ return objResult; } /** * APP2.0: ¿Í»§¶Ëͨ¹ý´Ë´Ó×ÖµäÖвéÕÒÐÅÏ¢ * URL: /exercise/correction/corrOptionsNew * * @return lstµÄ¼üÖµ¶Ô */ @RequestMapping(value="corrOptionsNew",method=RequestMethod.POST) public @ResponseBody List> queryExerCorrectionOptions() { //´Ó×ÖµäÖвé³öÊý¾Ý List lstDict = commonDAO.queryDictConfigMap("EXERCISE_CORRECTION_INFO"); if(lstDict.isEmpty()){ return new ArrayList>(); } //¸³Öµ¸ømap¼¯ºÏ List> lstMap = new ArrayList>(lstDict.size()); Map map = null; for(SysDictionary dict:lstDict){ map = new HashMap(2); map.put("correctionId", dict.getDictionaryId()); map.put("correctionName", dict.getValue()); lstMap.add(map); } return lstMap; } /******************************************************************* ÉÏÃæÎªApp½Ó¿Ú£¬ÏÂÃæÎªºǫ́½Ó¿Ú **************************/ /** * listÒ³ * * @return */ @RequestMapping(method = RequestMethod.GET) public ModelAndView listPage() { ModelAndView modelAndView = new ModelAndView("/exercise/Correction"); return modelAndView; } /** * »ñÈ¡ÁбíÊý¾Ý * * @return */ @RequestMapping(value = "data", method = RequestMethod.GET) public @ResponseBody List data() { //²éÕÒ String hql = "from ExerciseCorrection where deleteFlag is false and classId= ? order by createTime Desc"; //»ñÈ¡ÁбíÊý¾Ý£¬ÏÔʾÔÚÆÁÄ»µÄºǫ́¾À´íÒ³Ãæ±íµÄ»ù±¾ÐÅÏ¢ List list = commonDAO.find(hql, CollectionUtils.newList(ClientUtils.getClassId()), ExerciseCorrection.class); return list; } /** * µã»÷²é¿´£¬¶ÁÈ¡ÌâÄ¿ * @param exerciseCorrectionId * @return */ @RequestMapping(value = "readData", method = RequestMethod.POST) public @ResponseBody ExerciseCorrectionResult read(String exerciseCorrectionId,String exerciseItemId) { ExerciseCorrectionResult obj = new ExerciseCorrectionResult(); String hql = "from ExerciseCorrection where deleteFlag is false and exerciseItemId = ? "; //ͨ¹ý¼¯ºÏ²éѯËùÓÐÏàͬÌâÄ¿£¬²»Í¬ÈË£¬ÒÔ¼°²»Í¬ÀàÐ͵ĴíÎó List list = commonDAO.find(hql, CollectionUtils.newList(exerciseItemId), ExerciseCorrection.class); if(null != list && !list.isEmpty()){ String itemId1 = list.get(0).getExerciseItemId(); ExerciseItem objEI = commonDAO.read(ExerciseItem.class, itemId1); obj.setExerciseItem(objEI); obj.setLstExerciseCorrection(list); } return obj; } /** * ÓÃÀ´±£´æÇ°Ì¨Ð޸ĵÄÊý¾Ý * @param correctionType ±£´æºÍ¾À´í±£´æÇø·ÖµÄ״̬Âë * @param exerciseId Á·Ï°Id * @param analysis ÌâÄ¿·ÖÎö * @param title ÌâÄ¿ * @param type ÀàÐÍ * @param optionA Ñ¡ÏîA * @param optionB Ñ¡ÏîB * @param optionC Ñ¡ÏîC * @param optionD Ñ¡ÏîD * @param optionE Ñ¡ÏîE * @param optionF Ñ¡ÏîF * @param checkA ÅжÏA * @param checkB ÅжÏB * @param checkC ÅжÏC * @param checkD ÅжÏD * @param checkE ÅжÏE * @param checkF ÅжÏF * @return */ @RequestMapping(value = "item/addOrUpdate", method = RequestMethod.POST) @ResponseBody public Result addOrUpdateItem( @RequestParam(value="correctionType",required=true) short correctionType, @RequestParam(value="exerciseId",required=true) String exerciseId, @RequestParam(value="analysis",required=false) String analysis, @RequestParam(value="title",required=true) String title, @RequestParam(value="type",required=true) short type, @RequestParam(value="title_imgsIds",required=false) String title_imgsIds, @RequestParam(value="optionA",required=false) String optionA, @RequestParam(value="optionA_Id",required=false) String optionA_Id, @RequestParam(value="optionA_imgIds",required=false) String optionA_imgIds, @RequestParam(value="optionB",required=false) String optionB, @RequestParam(value="optionB_Id",required=false) String optionB_Id, @RequestParam(value="optionB_imgIds",required=false) String optionB_imgIds, @RequestParam(value="optionC",required=false) String optionC, @RequestParam(value="optionC_Id",required=false) String optionC_Id, @RequestParam(value="optionC_imgIds",required=false) String optionC_imgIds, @RequestParam(value="optionD",required=false) String optionD, @RequestParam(value="optionD_Id",required=false) String optionD_Id, @RequestParam(value="optionD_imgIds",required=false) String optionD_imgIds, @RequestParam(value="optionE",required=false) String optionE, @RequestParam(value="optionE_Id",required=false) String optionE_Id, @RequestParam(value="optionE_imgIds",required=false) String optionE_imgIds, @RequestParam(value="optionF",required=false) String optionF, @RequestParam(value="optionF_Id",required=false) String optionF_Id, @RequestParam(value="optionF_imgIds",required=false) String optionF_imgIds, @RequestParam(value="checkA",required=false) boolean checkA, @RequestParam(value="checkB",required=false) boolean checkB, @RequestParam(value="checkC",required=false) boolean checkC, @RequestParam(value="checkD",required=false) boolean checkD, @RequestParam(value="checkE",required=false) boolean checkE, @RequestParam(value="checkF",required=false) boolean checkF) { List lstOptions = new ArrayList(8); createItemOption(getOptionOrder(type,'A'),optionA, checkA, optionA_Id, optionA_imgIds, lstOptions); createItemOption(getOptionOrder(type,'B'),optionB, checkB, optionB_Id, optionB_imgIds, lstOptions); createItemOption(getOptionOrder(type,'C'),optionC, checkC, optionC_Id, optionC_imgIds, lstOptions); createItemOption(getOptionOrder(type,'D'),optionD, checkD, optionD_Id, optionD_imgIds, lstOptions); createItemOption(getOptionOrder(type,'E'),optionE, checkE, optionE_Id, optionE_imgIds, lstOptions); createItemOption(getOptionOrder(type,'F'),optionF, checkF, optionF_Id, optionF_imgIds, lstOptions); //¶ÁÈ¡Á·Ï°£¬²éÕÒÌâÄ¿ÃûºÍÌâÄ¿ÀàÐÍ ExerciseItem item = this.commonDAO.read(ExerciseItem.class, exerciseId); item.setTitle(title); item.setType(type); return exerciseCorrectionService.updateExerciseItemCorrection(item, lstOptions, analysis, correctionType); } /** * ´´½¨Ï°ÌâÑ¡Ïî * @param option * @param check * @param lstOptions */ private void createItemOption(String optionOrder,String option, boolean check, String optionId, String imgsId, List lstOptions) { if("True".equals(optionOrder) || "False".equals(optionOrder)){ option = optionOrder; } if(StringUtils.isEmpty(option)){ return; } ExerciseItemOption a = new ExerciseItemOption(); if(StringUtils.isNotBlank(optionId)){// ¸üРa.setOptionId(optionId); } if(StringUtils.isNotBlank(imgsId)){//ÐÂÔöͼƬ String[] strImgsId = imgsId.split(","); List imgs = new ArrayList(strImgsId.length); ExerciseObjectImg objImg = null; for(String imgId:strImgsId){ objImg = new ExerciseObjectImg(); objImg.setImgId(imgId); imgs.add(objImg); } a.setImgs(imgs); } a.setChecked(check); a.setContent(option); a.setOptionOrder(optionOrder); lstOptions.add(a); } /** * »ñµÃÌâĿѡÏîµÄ˳Ðò±àºÅ * @param type2 * @param order * @return */ private String getOptionOrder(short type,char order){ if(ExerciseItem.TYPE_TRUE_OR_FALSE==type){ return order=='A'?"True":order=='B'?"False":null; }else{ return String.valueOf(order); } } }