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);
|
}
|
|
/**
|
* 所有练习修改操作需要同时修改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);
|
}
|
|
}
|