package com.qxueyou.scc.evaluate.service.impl; import java.util.ArrayList; import java.util.Date; 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.Service; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.base.service.impl.CommonAppService; import com.qxueyou.scc.base.util.ClientUtils; import com.qxueyou.scc.base.util.CollectionUtils; import com.qxueyou.scc.base.util.TraceUtils; import com.qxueyou.scc.evaluate.service.IEvaluateTemplateService; import com.qxueyou.scc.exercise.model.ExerciseGroup; import com.qxueyou.scc.exercise.model.ExerciseItem; import com.qxueyou.scc.exercise.model.ExerciseItemScore; import com.qxueyou.scc.exercise.service.IExerciseService; import com.qxueyou.scc.school.model.SchEvaluateTemplate; @Service public class EvaluateTemplateService extends CommonAppService implements IEvaluateTemplateService { @Autowired private IExerciseService exerciseService; /** * ÐÂÔöÆÀ¹ÀÄ£°å */ public String insertEvaluateTemplate(SchEvaluateTemplate schEvaluateTemplate){ String evaluateTemplateId = schEvaluateTemplate.getEvaluateTemplateId(); if(StringUtils.isBlank(evaluateTemplateId)){ //²åÈë×é ExerciseGroup obj = exerciseService.insertExerciseGroup(schEvaluateTemplate.getEvaluateTemplateName(),ExerciseGroup.TYPE_EXERCISE_TEACH_EVALUATE); if(null != obj){ //²åÈëÆÀ¹ÀÄ£°å SchEvaluateTemplate objTemplate = new SchEvaluateTemplate(); TraceUtils.setCreateTrace(objTemplate); objTemplate.setEvaluateTemplateName(schEvaluateTemplate.getEvaluateTemplateName()); objTemplate.setGroup_name(obj.getName()); objTemplate.setTemplateType(schEvaluateTemplate.getTemplateType()); objTemplate.setEvaluateRangeType(schEvaluateTemplate.getEvaluateRangeType()); objTemplate.setGroupId(obj.getGroupId()); objTemplate.setOrgId(ClientUtils.getOrgId()); objTemplate.setOrgName(ClientUtils.getOrgName()); save(objTemplate); evaluateTemplateId = objTemplate.getEvaluateTemplateId(); } }else{ SchEvaluateTemplate objSchEvaluateTemplate = this.read(SchEvaluateTemplate.class, evaluateTemplateId); TraceUtils.setUpdateTrace(objSchEvaluateTemplate); objSchEvaluateTemplate.setEvaluateTemplateName(schEvaluateTemplate.getEvaluateTemplateName()); objSchEvaluateTemplate.setTemplateType(schEvaluateTemplate.getTemplateType()); objSchEvaluateTemplate.setEvaluateRangeType(schEvaluateTemplate.getEvaluateRangeType()); save(objSchEvaluateTemplate); } return evaluateTemplateId; } /** * ɾ³ýÆÀ¹ÀÄ£°å * @param ids * @param templateId * @return */ public Result deleteEvaluateTemplate(String groupId,String templateId){ Result objResult = null ; if(StringUtils.isNotBlank(groupId)){ this.deleteExerciseGroup(groupId); Object[] arrtemplateId = templateId.split(","); String hql = "update SchEvaluateTemplate set deleteFlag = true where evaluateTemplateId=?"; objResult = bulkUpdateInLoop(hql, arrtemplateId); } return objResult; } /** * ÅúÁ¿É¾³ýExerciseGroup£¬É¾³ýÂß¼­£ºÐÞ¸ÄÆÀ¹ÀÄ£°åµÄͬʱÐÞ¸ÄϰÌâ×éºÍÁ·Ï°Ìâ * @param groupId Ö÷¼ü£¬¶à¸öidʱÒÔ","·Ö¸ô * @return */ @Override public Result deleteExerciseGroup(String groupId) { //Âß¼­É¾³ý£¬Ö»ÐèÒªÐÞ¸Äexercise_group¡¢exercise_itemµÄɾ³ý±êʶ¼´¿É if(StringUtils.isNotBlank(groupId)){ //ÐèҪɾ³ýµÄÁ·Ï°×é Object[] arrGroupId = groupId.split(","); String exeGroupHql = " from ExerciseGroup where groupId in (:groupId) "; Map groupIdMap = new HashMap(1); groupIdMap.put("groupId", CollectionUtils.newList(arrGroupId)); List exeGroupList = this.findByComplexHql(exeGroupHql, groupIdMap, ExerciseGroup.class); //ɾ³ýϰÌâ×é if(exeGroupList != null){ for(ExerciseGroup group : exeGroupList){ group.setDeleteFlag(true); } } //20150618£ºÅäºÏǰ̨app£¬ËùÓÐÐÞ¸ÄͬʱÐÞ¸Ägroup±í×îºóÐÞ¸Äʱ¼ä updateGroupUpdateTimeByList(exeGroupList); String exeItemHql = "select i from ExerciseGroupItemRe g, ExerciseItem i where g.exerciseItemId = i.exerciseId and g.exerciseGroupId in (:groupId)"; List exeItemList = this.findByComplexHql(exeItemHql, groupIdMap, ExerciseItem.class); //ɾ³ýϰÌâ if(exeItemList != null){ for(ExerciseItem item : exeItemList){ item.setDeleteFlag(true); } saveOrUpdateAll(exeItemList); } } return new Result(true); } /** * ËùÓÐÁ·Ï°Ð޸IJÙ×÷ÐèҪͬʱÐÞ¸ÄgroupµÄupdateTime * @param lstGroup */ private void updateGroupUpdateTimeByList(List lstGroup){ if(null != lstGroup && !lstGroup.isEmpty()){ for( ExerciseGroup obj : lstGroup){ obj.setUpdateTime(new Date(System.currentTimeMillis())); } saveOrUpdateAll(lstGroup); } } /** * Ôö¼ÓÆÀ·Ö±ê×¼ * @param exerciseId * @param type * @param lstScore * @return */ public Result insertExerciseScore(String exerciseId,short type,List lstScore,String scoreAnswer, String exerciseItemScoreId){ List lstItemScore = new ArrayList(); return saveOrUpdateAll(lstItemScore); } }