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 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 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 list = findByComplexSql(sql, CollectionUtils.newObjectMap("classId", classId,"status",status), Object[].class); return list.size(); } @Override public Map 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 allExamResultV(String classId) { return examResultVDao.getResultList(classId); } @Override public List allExerciseResultV(String classId){ return exerciseResultDAO.getResultList(classId); } }