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);
|
}
|
|
|
}
|