派生自 projectDept/qhighschool

EricsHu
2023-11-25 79ab2cbd31c022916a8e696903d5eb34b70aa403
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
package com.qxueyou.scc.admin.score.service.impl;
 
import java.util.List;
import java.util.Map;
 
import com.qxueyou.scc.base.model.Pager;
import com.qxueyou.scc.exam.dao.ExamResultVDao;
import com.qxueyou.scc.exam.model.ExamResultV;
import com.qxueyou.scc.exercise.dao.ExerciseResultDAO;
import com.qxueyou.scc.exercise.model.ExerciseRecord;
import com.qxueyou.scc.exercise.model.ExerciseResultV;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.qxueyou.scc.admin.score.dao.ExamScoreVDAO;
import com.qxueyou.scc.admin.score.dao.HomeworkScoreVDAO;
import com.qxueyou.scc.admin.score.service.IScoreService;
import com.qxueyou.scc.base.service.impl.CommonAppService;
import com.qxueyou.scc.base.util.CollectionUtils;
 
@Service
public class ScoreService extends CommonAppService implements IScoreService {
 
    @Autowired
    HomeworkScoreVDAO homeworkDao;
 
    @Autowired
    ExamScoreVDAO examDao;
 
    @Autowired
    ExamResultVDao examResultVDao;
 
    @Autowired
    ExerciseResultDAO exerciseResultDAO;
 
    @Override
    public Map<String,Object> queryClassExamScoreInfo(String classId) {
 
        return CollectionUtils.newObjectMap(
                "examCount",examResultVDao.getExamCount(classId),//考试次数
                "examHasAuditCount",getCommitExamCount(classId, Integer.parseInt(ExerciseRecord.STATUS_CHECK)),//已批阅
                "examToAuditCount",getCommitExamCount(classId, Integer.parseInt(ExerciseRecord.STATUS_SUBMIT)),//待批阅
                "examNoSubmitCount",getCommitExamCount(classId, Integer.parseInt(ExerciseRecord.STATUS_NOT_SUBMIT))//未提交
                );
 
    }
 
    public int getUnCommitExamCount(String classId) {
        String sql = "SELECT c.exam_id, c.exam_name, c.exam_batch_Id, c.start_Time, c.end_Time, "
                + "c.class_id, d.exercise_Group_Id, d.score, d. STATUS FROM ( SELECT i.exam_Id, "
                + "i.exam_Name, b.exam_Batch_Id, b.start_Time,b.end_Time, r.class_Id FROM Exam_Info i, "
                + "Exam_Batch_Info b, Exam_Class_Re r WHERE i.exam_Id = b.exam_Id AND b.exam_Batch_Id "
                + "= r.exam_Batch_Id AND r.class_Id =:classId AND i.exam_status = 1 AND b.delete_Flag"
                + "= 0 AND r.delete_Flag = 0 ) c LEFT OUTER JOIN ( SELECT * FROM Exercise_Record "
                + "d WHERE d.delete_Flag = 0  ) d ON c.exam_Batch_Id = d.exam_Batch_Id "
                + "AND c.class_id = d.class_id where ifnull(d.status,0)= 0 and (c.end_Time - CURRENT_TIMESTAMP ()) < 0 ";
        List<Object[]> list = findByComplexSql(sql, CollectionUtils.newObjectMap("classId", classId),
                Object[].class);
        return list.size();
 
    }
 
    public int getCommitExamCount(String classId,Integer status) {
        String sql = "SELECT c.exam_id, c.exam_name, c.exam_batch_Id, c.start_Time, c.end_Time, "
                + "c.class_id, d.exercise_Group_Id, d.score, d. STATUS FROM ( SELECT i.exam_Id, "
                + "i.exam_Name, b.exam_Batch_Id, b.start_Time,b.end_Time, r.class_Id FROM Exam_Info i, "
                + "Exam_Batch_Info b, Exam_Class_Re r WHERE i.exam_Id = b.exam_Id AND b.exam_Batch_Id "
                + "= r.exam_Batch_Id AND r.class_Id =:classId AND i.exam_status = 1 AND b.delete_Flag"
                + "= 0 AND r.delete_Flag = 0 ) c LEFT OUTER JOIN ( SELECT * FROM Exercise_Record "
                + "d WHERE d.delete_Flag = 0 ) d ON c.exam_Batch_Id = d.exam_Batch_Id "
                + "AND c.class_id = d.class_id where d.status = :status ";
        List<Object[]> list = findByComplexSql(sql, CollectionUtils.newObjectMap("classId", classId,"status",status),
                Object[].class);
        return list.size();
    }
    @Override
    public Map<String,Object> queryClassHomeworkScoreInfo(String classId) {
 
        return CollectionUtils.newObjectMap(
                "homeworkCount",homeworkDao.getHomeworkCount(classId),
                "homeworkHasAuditCount",homeworkDao.getHomeworkHasAuditCount(classId),
                "homeworkToAuditCount",homeworkDao.getHomeworkToAuditCount(classId),
                "homeworkNoSubmitCount",homeworkDao.getHomeworkNoSubmitCount(classId)
                );
    }
 
    @Override
    public List<ExamResultV> allExamResultV(String classId) {
        return examResultVDao.getResultList(classId);
    }
    @Override
    public List<ExerciseResultV> allExerciseResultV(String classId){
        return exerciseResultDAO.getResultList(classId);
    }
 
 
}