派生自 projectDept/qhighschool

EricsHu
2023-11-25 79ab2cbd31c022916a8e696903d5eb34b70aa403
src/main/java/com/qxueyou/scc/admin/score/service/impl/ScoreService.java
@@ -1,7 +1,14 @@
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;
@@ -13,28 +20,62 @@
@Service
public class ScoreService extends CommonAppService implements IScoreService {
   @Autowired
   HomeworkScoreVDAO homeworkDao;
   @Autowired
   ExamScoreVDAO examDao;
   @Override
   public Map<String,Object> queryClassExamScoreInfo(String classId) {
      return CollectionUtils.newObjectMap(
            "examCount",examDao.getExamCount(classId),
            "examHasAuditCount",examDao.getExamCount(classId),
            "examToAuditCount",0,
            "examNoSubmitCount",examDao.getToSubmitExamCount(classId)
            );
   }
   @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),
@@ -43,4 +84,14 @@
            );
   }
   @Override
   public List<ExamResultV> allExamResultV(String classId) {
      return examResultVDao.getResultList(classId);
   }
   @Override
   public List<ExerciseResultV> allExerciseResultV(String classId){
      return exerciseResultDAO.getResultList(classId);
   }
}