Bläddra i källkod

在线人数曲线修改

wangliang 2 år sedan
förälder
incheckning
eade911906

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 225 - 0
logs/themis-admin.log


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 202 - 0
logs/themis-exam.log


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 354 - 0
logs/themis-task.log


+ 6 - 7
themis-business/src/main/java/com/qmth/themis/business/dao/TOeExamRecordMapper.java

@@ -394,12 +394,12 @@ public interface TOeExamRecordMapper extends BaseMapper<TOeExamRecord> {
      *
      * @param orgId
      * @param timeData
-     * @param currentDate
+     * @param currentTime
      * @param interval
-     * @param scaleSize
+     * @param minusTime
      * @return
      */
-    public List<TimeScaleDataResult> getWarnTrend(@Param("orgId") Long orgId, @Param("timeData") List<String> timeData, @Param("currentDate") String currentDate, @Param("interval") Integer interval, @Param("scaleSize") Integer scaleSize);
+    public List<TimeScaleDataResult> getWarnTrend(@Param("orgId") Long orgId, @Param("timeData") List<String> timeData, @Param("currentTime") Long currentTime, @Param("interval") Integer interval, @Param("minusTime") Long minusTime);
 
     public void updateHasAnswerFile(@Param("recordId") Long recordId, @Param("hasAnswerFile") Integer hasAnswerFile);
 
@@ -499,10 +499,9 @@ public interface TOeExamRecordMapper extends BaseMapper<TOeExamRecord> {
      *
      * @param orgId
      * @param timeData
-     * @param currentDate
-     * @param interval
-     * @param scaleSize
+     * @param currentTime
+     * @param minusTime
      * @return
      */
-    public List<TimeOnlineDataResult> getTimeOnlineData(@Param("orgId") Long orgId, @Param("timeData") List<String> timeData, @Param("currentDate") String currentDate, @Param("interval") Integer interval, @Param("scaleSize") Integer scaleSize);
+    public List<TimeOnlineDataResult> getTimeOnlineData(@Param("orgId") Long orgId, @Param("timeData") List<String> timeData, @Param("currentTime") Long currentTime, @Param("minusTime") Long minusTime);
 }

+ 14 - 9
themis-business/src/main/java/com/qmth/themis/business/service/impl/TIeReportServiceImpl.java

@@ -24,6 +24,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.*;
 
 /**
@@ -396,22 +398,25 @@ public class TIeReportServiceImpl implements TIeReportService {
         for (int i = interval; i <= scaleSize * interval; i = i + interval) {
             timeSize.add(i);
         }
-        String currentDate = DateUtil.format(new Date(), Constants.DEFAULT_DATE_PATTERN);
+        LocalDateTime now = LocalDateTime.now();
+        Date date = Date.from(now.atZone(ZoneOffset.ofHours(8)).toInstant());
+        LocalDateTime minusDays = now.minusDays(1);
+        LocalDateTime minusMinutes = now.minusMinutes(scaleSize);
+
+        String currentDate = DateUtil.format(date, Constants.DEFAULT_DATE_PATTERN);
         Map<String, String> map = this.getTimeScale(timeSize, currentDate);
 
+        Long longtimestamp = now.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
+        Long minusDayslongtimestamp = minusDays.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
+        Long minusMinuteslongtimestamp = minusMinutes.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
+
         List<String> timeData = new ArrayList<>(map.values());
-        List<TimeScaleDataResult> timeScaleDataResultList = tOeExamRecordMapper.getWarnTrend(tbUser.getOrgId(), timeData, currentDate, interval, scaleSize);
-        List<TimeOnlineDataResult> timeOnlineDataResultList = tOeExamRecordMapper.getTimeOnlineData(tbUser.getOrgId(), timeData, currentDate, interval, scaleSize);
+        List<TimeScaleDataResult> timeScaleDataResultList = tOeExamRecordMapper.getWarnTrend(tbUser.getOrgId(), timeData, longtimestamp, interval, minusMinuteslongtimestamp);
+        List<TimeOnlineDataResult> timeOnlineDataResultList = tOeExamRecordMapper.getTimeOnlineData(tbUser.getOrgId(), timeData, longtimestamp, minusDayslongtimestamp);
         if (!CollectionUtils.isEmpty(timeOnlineDataResultList) && !CollectionUtils.isEmpty(timeScaleDataResultList)
                 && timeOnlineDataResultList.size() == timeScaleDataResultList.size()) {
-//            int beforeOnlineCount = 0;
-//            TimeScaleDataResult beforeScale = null;
             for (int i = 0; i < timeOnlineDataResultList.size(); i++) {
                 TimeOnlineDataResult t = timeOnlineDataResultList.get(i);
-//                if (i > 0) {
-//                    beforeScale = timeScaleDataResultList.get(i - 1);
-//                    beforeOnlineCount = beforeScale.getOnlineCount();
-//                }
                 int onlineCount = t.getOnlineCount() - t.getOfflineCount();
                 onlineCount = onlineCount < 0 ? 0 : onlineCount;
                 timeScaleDataResultList.get(i).setOnlineCount(onlineCount);

+ 8 - 9
themis-business/src/main/resources/mapper/TOeExamRecordMapper.xml

@@ -1583,6 +1583,7 @@
         (
         select
         DATE_FORMAT(#{item}, '%H:%i') as hour,
+        date_add(#{item}, interval #{interval} minute) as minute,
         tiiwi.exam_record_id as examRecordId,
         DATE_FORMAT(FROM_UNIXTIME(tiiwi.create_time / 1000), '%Y-%m-%d %H:%i:00') as createTime
         from
@@ -1594,12 +1595,10 @@
         <if test="orgId != null and orgId != ''">
             and tee.org_id = #{orgId}
         </if>
-        and (tiiwi.create_time <![CDATA[ >= ]]> unix_timestamp(date_sub(#{currentDate}, interval #{scaleSize} minute)) *
-        1000
-        and tiiwi.create_time <![CDATA[ <= ]]> unix_timestamp(#{currentDate}) * 1000)) t
+        and (tiiwi.create_time <![CDATA[ >= ]]> #{minusTime}
+        and tiiwi.create_time <![CDATA[ <= ]]> #{currentTime})) t
         where
-        (t.createTime <![CDATA[ >= ]]> #{item} and t.createTime <![CDATA[ < ]]> date_add(#{item}, interval #{interval}
-        minute))
+        (t.createTime <![CDATA[ >= ]]> #{item} and t.createTime <![CDATA[ < ]]> t.minute)
     </sql>
 
     <select id="getTimeOnlineData" resultType="com.qmth.themis.business.bean.result.TimeOnlineDataResult">
@@ -1648,8 +1647,8 @@
         <if test="orgId != null and orgId != ''">
             and tee.org_id = #{orgId}
         </if>
-        and (teesol.create_time <![CDATA[ >= ]]> unix_timestamp(date_sub(#{currentDate}, interval #{interval} day)) * 1000
-        and teesol.create_time <![CDATA[ <= ]]> unix_timestamp(#{currentDate}) * 1000)
+        and (teesol.create_time <![CDATA[ >= ]]> #{minusTime}
+        and teesol.create_time <![CDATA[ <= ]]> #{currentTime})
         and teesol.`type` = 'ON_LINE') t where t.createTime <![CDATA[ <= ]]> #{item}
         union all
         select
@@ -1672,8 +1671,8 @@
         <if test="orgId != null and orgId != ''">
             and tee.org_id = #{orgId}
         </if>
-        and (teesol.create_time <![CDATA[ >= ]]> unix_timestamp(date_sub(#{currentDate}, interval #{interval} day)) * 1000
-        and teesol.create_time <![CDATA[ <= ]]> unix_timestamp(#{currentDate}) * 1000)
+        and (teesol.create_time <![CDATA[ >= ]]> #{minusTime}
+        and teesol.create_time <![CDATA[ <= ]]> #{currentTime})
         and teesol.`type` = 'OFF_LINE') t where t.createTime <![CDATA[ <= ]]> #{item}
     </sql>
 </mapper>

Vissa filer visades inte eftersom för många filer har ändrats