派生自 projectDept/qhighschool

胡仁荣
2022-10-31 fe7381d6e8ec1f427408de0297ac7f41533202f6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
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);
    }
    
}