Browse Source

批注接口提交

shenhao 4 năm trước cách đây
mục cha
commit
1c4e58db3e

+ 9 - 0
src/main/java/com/ssj/api/domain/vo/statistics/ListVO.java

@@ -41,6 +41,7 @@ public class ListVO extends BaseRequest {
      private Integer  notCommentNums;
      private Integer  repeatNums;
      private Integer  errorNums ;
+     private String   calculateDate ;
 
     public String getTeacherId() {
         return teacherId;
@@ -129,4 +130,12 @@ public class ListVO extends BaseRequest {
     public void setErrorNums(Integer errorNums) {
         this.errorNums = errorNums;
     }
+
+    public String getCalculateDate() {
+        return calculateDate;
+    }
+
+    public void setCalculateDate(String calculateDate) {
+        this.calculateDate = calculateDate;
+    }
 }

+ 1 - 1
src/main/java/com/ssj/dao/weixin/library/dao/impl/LibJoinQueryDaoImpl.java

@@ -1313,7 +1313,7 @@ public class LibJoinQueryDaoImpl implements ILibJoinQueryDao{
 		selSQL.append("(SELECT count(DISTINCT a.homework_id) from scon_homework_picture a join scon_homework_picture_correct b on b.homework_picture_id = a.id where a.teacher_id = t.user_id and a.is_mark in (0,2) and b.type=8  \n" +
 				"and ((b.end_time > ? and a.is_feedback=1) or a.is_feedback=0) ) as wait_nums2, \n");
 		queryParams.add(params.get("beginTime"));
-		selSQL.append("(SELECT ifnull(concat(SEC_TO_TIME(TIMESTAMPDIFF(SECOND,min(a.allot_time),NOW())),''),0)   from scon_homework_picture a where a.teacher_id = t.user_id and a.is_mark in (0,2) and a.is_feedback = 0) as wait_max_time, \n");
+		selSQL.append("(SELECT ifnull(concat(SEC_TO_TIME(TIMESTAMPDIFF(SECOND,min(a.allot_time),NOW())),''),'00:00:00')   from scon_homework_picture a where a.teacher_id = t.user_id and a.is_mark in (0,2) and a.is_feedback = 0) as wait_max_time, \n");
 		selSQL.append("t.user_id as teacher_id,t.name as teacher_name, \n");
 		selSQL.append("(select ifnull(concat(SEC_TO_TIME(sum(b.correction_time)),''),'00:00:00') from scon_homework_picture a join scon_homework_picture_correct b on a.id = b.homework_picture_id where a.teacher_id = t.user_id and a.is_mark in (0,2) and a.is_feedback=1 and b.end_time >?) as today_correct_time, \n");
 		queryParams.add(params.get("beginTime"));

+ 5 - 0
src/main/java/com/ssj/statistics/dao/IStatisticsDao.java

@@ -2,6 +2,8 @@ package com.ssj.statistics.dao;
 
 import com.ssj.bean.statistics.PlatTeacherStatistics;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -12,4 +14,7 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface IStatisticsDao extends JpaRepository<PlatTeacherStatistics,String> {
+    @Query(nativeQuery = true,value = "delete from plat_teacher_statistics where to_days(create_time)<to_days(?1)")
+    @Modifying
+    void deleteOldData(String dataDate);
 }

+ 13 - 11
src/main/java/com/ssj/statistics/dao/impl/StatisticsQueryImpl.java

@@ -57,7 +57,7 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
     private void listInfo(Map<String, Object> params,List<Object> queryParams,StringBuffer sql){
         sql.append("select t.teacher_id as teacherId,t11.name as teacherName,t11.course_name as subject,t11.course_name as allSubject, \n");
         sql.append(" sum(t.correct_nums) as correctNums,sum(t.overtime_nums) as overtimeNums,sum(t.not_correct_nums) as notCorrectNums, \n");
-        sql.append(" sum(t.not_comment_nums) as notCommentNums,sum(t.repeat_nums) as repeatNums,round((t.accuracy),2) as accuracy,sum(t.error_nums) as errorNums \n");
+        sql.append(" sum(t.not_comment_nums) as notCommentNums,sum(t.repeat_nums) as repeatNums,round(avg(t.accuracy),2) as accuracy,sum(t.error_nums) as errorNums \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");
@@ -154,21 +154,23 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
         StringBuffer sql = new StringBuffer();
         List<Object> queryParams = new ArrayList<>();
         sql.append("SELECT a.teacher_id,a.teacher_name,a.`subject`,a.all_subject,a.correct_nums,a.overtime_nums,a.not_correct_nums,a.not_comment_nums,a.repeat_nums,a.error_nums,\n");
-        sql.append("floor(100*(a.total- a.error_nums-a.not_correct_nums)/a.total) as accuracy\n");
+        sql.append("floor(100*(a.total- a.error_nums-a.not_correct_nums)/a.total) as accuracy,a.calculate_date\n");
         sql.append("from (\n");
         sql.append("SELECT t12.name as teacher_name,t.teacher_id,t.`subject`,t12.course_name as all_subject,count(if(t.is_mark in (0,2) and t.is_feedback=1,true,NULL)) as correct_nums, \n");
-        sql.append("0 as overtime_nums,\n");
+        sql.append("count(if(t.is_feedback=1 and (DATE_FORMAT(t.create_time,'%H:%i')>='20:30' and DATE_FORMAT(t11.end_time,'%Y-%m-%d %H:%i:%s')>concat(DATE_FORMAT(DATE_ADD(t.create_time,interval 1 day),'%Y-%m-%d'),' 12:00:00'))\n" +
+                " or (DATE_FORMAT(t.create_time,'%H:%i')<'20:30' and DATE_FORMAT(t11.end_time,'%Y-%m-%d %H:%i:%s')>concat(DATE_FORMAT(t.create_time,'%Y-%m-%d'),' 23:59:59')),true,null)) as overtime_nums,\n");
         sql.append("count(1) as total,\n");
-        sql.append("count(if(t11.start_time is null,true,null)) as not_correct_nums,\n");
+        sql.append("DATE_FORMAT(t.create_time,'%Y-%m-%d') as calculate_date,\n");
+        sql.append("count(if(t11.start_time is null and t.is_mark in (0,2),true,null)) as not_correct_nums,\n");
         sql.append("count(if(t.is_mark=10,true,null)) as not_comment_nums,\n");
         sql.append("count(if(t.is_mark=15,true,null)) as repeat_nums,\n");
         sql.append("count(if(t11.is_check_error=1,true,null)) as error_nums\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 scon_homework_picture_correct t11 on t.id = t11.homework_picture_id \n");
         sql.append("left join tb_lib_manager t12 on t.teacher_id = t12.user_id\n");
-        sql.append("where t12.type = 30 and to_days(t.create_time)= to_days(?)\n");
+        sql.append("where t12.type = 30 and t11.type = 8 and to_days(t.create_time)<= to_days(?)\n");
         queryParams.add(dateTime);
-        sql.append("GROUP BY t.teacher_id\n");
+        sql.append("GROUP BY t.teacher_id,to_days(t.create_time)\n");
         sql.append(")a");
         return dao.findList(sql.toString(),queryParams.toArray(),ListVO.class);
     }
@@ -183,12 +185,12 @@ public class StatisticsQueryImpl implements IStatisticsQueryDao {
         sql.append("from (\n" );
         sql.append("SELECT\n" );
         sql.append("count(1) as correct_nums,\n" );
-        sql.append("count(if((DATE_FORMAT(t11.create_time,'%i:%s')>='20:30' and DATE_FORMAT(now(),'%Y-%m-%d %H%i:%s')>concat(DATE_FORMAT(DATE_ADD(t11.create_time,interval 1 day),'%Y-%m-%d'),' 12:00:00'))\n");
-        sql.append(" or (DATE_FORMAT(t11.create_time,'%i:%s')<'20:30' and DATE_FORMAT(now(),'%Y-%m-%d %H%i:%s')>concat(DATE_FORMAT(t11.create_time,'%Y-%m-%d'),' 23:59:59')),true,null)) as overtime_nums,\n");
-        sql.append("count(IF(DATE_FORMAT(t.end_time,'%H:%s')>='18:00' and DATE_FORMAT(t.end_time,'%H:%s')<='20:00',TRUE,null)) as perk_nums,\n" );
+        sql.append("count(if((DATE_FORMAT(t11.create_time,'%i:%s')>='20:30' and DATE_FORMAT(t.end_time,'%Y-%m-%d %H:%i:%s')>concat(DATE_FORMAT(DATE_ADD(t11.create_time,interval 1 day),'%Y-%m-%d'),' 12:00:00'))\n");
+        sql.append(" or (DATE_FORMAT(t11.create_time,'%H:%i')<'20:30' and DATE_FORMAT(t.end_time,'%Y-%m-%d %H:%i:%s')>concat(DATE_FORMAT(t11.create_time,'%Y-%m-%d'),' 23:59:59')),true,null)) as overtime_nums,\n");
+        sql.append("count(IF(DATE_FORMAT(t.end_time,'%H:%i')>='18:00' and DATE_FORMAT(t.end_time,'%H:%i')<='20:00',TRUE,null)) as perk_nums,\n" );
         sql.append("count(IF(t.is_check_error=1,TRUE,null)) as error_nums,\n" );
         sql.append("DATE_FORMAT(t.end_time,'%Y-%m-%d') as work_date,\n" );
-        sql.append("sum(IF(DATE_FORMAT(t.end_time,'%H:%s')>='18:00' and DATE_FORMAT(t.end_time,'%H:%s')<='20:00',t.correction_time,0)) as sum_perk,\n" );
+        sql.append("sum(IF(DATE_FORMAT(t.end_time,'%H:%i')>='18:00' and DATE_FORMAT(t.end_time,'%H:%i')<='20:00',t.correction_time,0)) as sum_perk,\n" );
         sql.append("t11.teacher_id,\n" );
         sql.append("t.end_time,\n" );
         sql.append("t.start_time \n" );

+ 3 - 2
src/main/java/com/ssj/statistics/service/impl/StatisticsServiceImpl.java

@@ -90,14 +90,15 @@ public class StatisticsServiceImpl  extends BaseServiceImpl<PlatTeacherStatistic
         }
         List<ListVO> list = queryDao.statisticsDataList(dataDate);
         if(Objects.nonNull(list)){
-            String finalDataDate = dataDate;
             list.forEach(o->{
                 PlatTeacherStatistics plat = new PlatTeacherStatistics();
                 BeanUtils.copyProperties(o,plat);
-                plat.setCalculateDate(finalDataDate);
+                plat.setCalculateDate(o.getCalculateDate());
                 plat.setCreateTime(new Date());
                 this.save(plat);
             });
+            //重新生成数据后删除之前的数据
+            dao.deleteOldData(dataDate);
         }
     }
 

+ 2 - 1
src/main/resources/application-common-dev.properties

@@ -24,6 +24,7 @@ spring.datasource.filters=stat,wall,slf4j
 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
 
 
+#公网ip:47.106.111.166 内网IP:172.18.30.192
 spring.redis.database=0
 spring.redis.cluster.pool.max-active=8
 spring.redis.cluster.pool.max-wait=-1
@@ -32,7 +33,7 @@ spring.redis.cluster.pool.min-idle=0
 spring.redis.block-when-exhausted=true
 spring.redis.password=dc1qazxsw2!@
 spring.redis.timeout=3000
-spring.redis.cluster.nodes=172.18.30.192:6380,172.18.30.192:6381,172.18.30.192:6382,172.18.30.192:6383,172.18.30.192:6384,172.18.30.192:6385
+spring.redis.cluster.nodes=47.106.111.166:6380,47.106.111.166:6381,47.106.111.166:6382,47.106.111.166:6383,47.106.111.166:6384,47.106.111.166:6385
 spring.redis.cluster.timeout=30