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<String,Object> groupIdMap = new HashMap<String,Object>(1);
|
groupIdMap.put("groupId", CollectionUtils.newList(arrGroupId));
|
|
List<ExerciseGroup> 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<ExerciseItem> 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<ExerciseGroup> 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<String> lstScore,String scoreAnswer, String exerciseItemScoreId){
|
List<ExerciseItemScore> lstItemScore = new ArrayList<ExerciseItemScore>();
|
|
return saveOrUpdateAll(lstItemScore);
|
}
|
|
}
|