|
@@ -0,0 +1,126 @@
|
|
|
+package com.ssj.statistics.dao.impl;
|
|
|
+
|
|
|
+import com.ssj.framework.core.persistence.PagingHibernateJdbcDao;
|
|
|
+import com.ssj.statistics.dao.IStatisticsQueryDao;
|
|
|
+import org.apache.commons.collections4.MapUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.domain.Pageable;
|
|
|
+import org.springframework.stereotype.Repository;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author sh
|
|
|
+ * @className StatisticsQueryImpl
|
|
|
+ * @description queryImpl
|
|
|
+ * @date 2021/2/27
|
|
|
+ */
|
|
|
+@Repository
|
|
|
+public class StatisticsQueryImpl implements IStatisticsQueryDao {
|
|
|
+ @Autowired
|
|
|
+ private PagingHibernateJdbcDao dao;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> statisticsList(Map<String, Object> params, Pageable initPage) {
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ */
|
|
|
+ sql.append("select t.teacher_id,t11.name as teacherName,t.subject,t11.course_name as allSubject, \n");
|
|
|
+ sql.append(" from plat_teacher_statistics t \n");
|
|
|
+ sql.append(" left join tb_lib_manager t11 on t.teacher_id = t11.user_id \n");
|
|
|
+ sql.append(" where t11.type = 30 \n");
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<Map<String, Object>> errorList(Map<String, Object> params, Pageable initPage) {
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ List<Object> queryParams = new ArrayList<>();
|
|
|
+ sql.append("SELECT DATE_FORMAT(t11.create_time,'%Y-%m-%d') as year_1,DATE_FORMAT(t11.create_time,'%m月%d日') as workDate from scon_homework_picture_correct t \n");
|
|
|
+ sql.append("join scon_homework_picture t11 on t.homework_picture_id = t11.id\n");
|
|
|
+ sql.append("left join tb_lib_vip t12 on t11.vip_id = t12.id\n");
|
|
|
+ sql.append("where t.type = 8 and t.is_check_error = 1\n");
|
|
|
+ sql.append("and t11.`subject`=? and t11.teacher_id=?\n");
|
|
|
+ queryParams.add(params.get("subject"));
|
|
|
+ queryParams.add(params.get("teacherId"));
|
|
|
+ if(Objects.nonNull(params.get("beginDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"beginDate"))){
|
|
|
+ sql.append(" and to_days(t11.create_time) >=to_days(?) ");
|
|
|
+ queryParams.add(params.get("beginDate"));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(params.get("endDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"endDate"))){
|
|
|
+ sql.append(" and to_days(t11.create_time) <=to_days(?) ");
|
|
|
+ queryParams.add(params.get("endDate"));
|
|
|
+ }
|
|
|
+ sql.append("GROUP BY DATE_FORMAT(t11.create_time,'%y-%m-%d')");
|
|
|
+
|
|
|
+ return dao.findPage(sql.toString(),queryParams.toArray(),initPage);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> findStudentErrorList(String date,String teacherId,String subject) {
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ List<Object> queryParams = new ArrayList<>();
|
|
|
+ sql.append("SELECT t11.homework_id as homeworkId,t12.child_name as studentName,count(1) as errorNums \n");
|
|
|
+ sql.append("from scon_homework_picture_correct t \n");
|
|
|
+ sql.append("join scon_homework_picture t11 on t.homework_picture_id = t11.id\n");
|
|
|
+ sql.append("left join tb_lib_vip t12 on t11.vip_id = t12.id\n");
|
|
|
+ sql.append("where t.type = 8 and t.is_check_error = 1\n");
|
|
|
+ sql.append("and t11.`subject`=? and t11.teacher_id=?\n");
|
|
|
+ queryParams.add(subject);
|
|
|
+ queryParams.add(teacherId);
|
|
|
+ sql.append(" and to_days(t11.create_time) =to_days(?) ");
|
|
|
+ queryParams.add(date);
|
|
|
+ sql.append("t11.homework_id");
|
|
|
+ return dao.findMap(sql.toString(),queryParams.toArray());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> findTotalData(Map<String, Object> params) {
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ List<Object> queryParams = new ArrayList<>();
|
|
|
+ sql.append("SELECT a.teacher_id,a.teacherName,a.`subject`,a.allSubject,a.correctNums,a.overtimeNums,a.notCorrectNums,a.notCommentNums,a.repeatNums,a.errorNums,\n");
|
|
|
+ sql.append("floor(100*(a.total- a.errorNums-a.notCorrectNums)/a.total) as accuracy\n");
|
|
|
+ sql.append("from (\n");
|
|
|
+ sql.append("SELECT t12.name as teacherName,t.teacher_id,t.`subject`,t12.course_name as allSubject,count(if(t.is_mark in (0,2) and t.is_feedback=1,true,NULL)) as correctNums, \n");
|
|
|
+ sql.append("0 as overtimeNums,\n");
|
|
|
+ sql.append("count(1) as total,\n");
|
|
|
+ sql.append("count(if(t11.start_time is null,true,null)) as notCorrectNums,\n");
|
|
|
+ sql.append("count(if(t.is_mark=10,true,null)) as notCommentNums,\n");
|
|
|
+ sql.append("count(if(t.is_mark=15,true,null)) as repeatNums\n");
|
|
|
+ sql.append("count(if(t11.is_check_error=1,true,null)) as errorNums,\n");
|
|
|
+ sql.append("from scon_homework_picture t \n");
|
|
|
+ sql.append("left join scon_homework_picture_correct t11 on t.id = t11.homework_picture_id and t11.type = 8\n");
|
|
|
+ sql.append("left join tb_lib_manager t12 on t.teacher_id = t12.user_id\n");
|
|
|
+ sql.append("where t12.type = 30 \n");
|
|
|
+ if(Objects.nonNull(params.get("beginDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"beginDate"))){
|
|
|
+ sql.append(" and to_days(t11.end_time) >=to_days(?) ");
|
|
|
+ queryParams.add(params.get("beginDate"));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(params.get("endDate")) && StringUtils.isNotBlank(MapUtils.getString(params,"endDate"))){
|
|
|
+ sql.append(" and to_days(t11.end_time) <=to_days(?) ");
|
|
|
+ queryParams.add(params.get("endDate"));
|
|
|
+ }
|
|
|
+ sql.append("GROUP BY t.teacher_id\n");
|
|
|
+ sql.append(")a");
|
|
|
+ return dao.findMap(sql.toString(),queryParams.toArray()).get(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Map<String, Object>> checkDetailList(String homeworkId) {
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
+ List<Object> queryParams = new ArrayList<>();
|
|
|
+ sql.append("SELECT t.id as pictureId,t.corrected_picture_url as pictureUrl,2 as checkState from scon_homework_picture t \n");
|
|
|
+ sql.append("left join scon_homework_picture_correct t11 on t.id = t11.homework_picture_id\n");
|
|
|
+ sql.append("where t11.type = 8 and t11.is_check_error=1\n");
|
|
|
+ sql.append(" and t.homework_id = ?");
|
|
|
+ queryParams.add(homeworkId);
|
|
|
+ return dao.findMap(sql.toString(),queryParams.toArray());
|
|
|
+ }
|
|
|
+}
|