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<Map<String, String>> queryExerCorrectionOptions() {
|
//´Ó×ÖµäÖвé³öÊý¾Ý
|
List<SysDictionary> lstDict = commonDAO.queryDictConfigMap("EXERCISE_CORRECTION_INFO");
|
|
if(lstDict.isEmpty()){
|
return new ArrayList<Map<String, String>>();
|
}
|
//¸³Öµ¸ømap¼¯ºÏ
|
List<Map<String, String>> lstMap = new ArrayList<Map<String, String>>(lstDict.size());
|
Map<String, String> map = null;
|
for(SysDictionary dict:lstDict){
|
map = new HashMap<String, String>(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<ExerciseCorrection> data() {
|
//²éÕÒ
|
String hql = "from ExerciseCorrection where deleteFlag is false and classId= ? order by createTime Desc";
|
//»ñÈ¡ÁбíÊý¾Ý£¬ÏÔʾÔÚÆÁÄ»µÄºǫ́¾À´íÒ³Ãæ±íµÄ»ù±¾ÐÅÏ¢
|
List<ExerciseCorrection> 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<ExerciseCorrection> 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<ExerciseItemOption> lstOptions = new ArrayList<ExerciseItemOption>(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<ExerciseItemOption> 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<ExerciseObjectImg> imgs = new ArrayList<ExerciseObjectImg>(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);
|
}
|
|
}
|
|
}
|