Jelajahi Sumber

!137 merge
Merge pull request !137 from AE86/V_1.0.0_RC

AE86 1 tahun lalu
induk
melakukan
02a3cdaa02

+ 10 - 2
dbsyncer-listener/src/main/java/org/dbsyncer/listener/enums/QuartzFilterEnum.java

@@ -5,6 +5,7 @@ import org.dbsyncer.listener.quartz.QuartzFilter;
 import org.dbsyncer.listener.quartz.filter.DateFilter;
 import org.dbsyncer.listener.quartz.filter.TimestampFilter;
 import org.dbsyncer.listener.quartz.filter.YesDateFilter;
+import org.dbsyncer.listener.quartz.filter.YesTimestampFilter;
 
 /**
  * @author AE86
@@ -36,8 +37,15 @@ public enum QuartzFilterEnum {
     /**
      * 昨天日期(结束)
      */
-    DATE_YES_END(6, "$date_yes_end$", "系统昨天日期(结束23:59:59)", new YesDateFilter(false));
-
+    DATE_YES_END(6, "$date_yes_end$", "系统昨天日期(结束23:59:59)", new YesDateFilter(false)),
+    /**
+     * 昨天时间戳(开始)
+     */
+    TIME_STAMP_YES_BEGIN(7, "$timestamp_yes_begin$", "系统昨天时间戳(开始00:00:00)", new YesTimestampFilter(true)),
+    /**
+     * 昨天时间戳(结束)
+     */
+    TIME_STAMP_YES_END(8, "$timestamp_yes_end$", "系统昨天时间戳(结束23:59:59)", new YesTimestampFilter(false));
 
     private Integer index;
     private String type;

+ 2 - 2
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/filter/YesDateFilter.java

@@ -20,10 +20,10 @@ public class YesDateFilter implements QuartzFilter {
         LocalDateTime localDateTime;
         if (!begin) {
             // 2022-08-02 23:59:59
-            localDateTime = LocalDateTime.now().withHour(23).withMinute(59).withSecond(59).withNano(999999999);
+            localDateTime = LocalDateTime.now().minusDays(1).withHour(23).withMinute(59).withSecond(59).withNano(999999999);
         } else {
             // 2022-08-02 00:00:00
-            localDateTime = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0);
+            localDateTime = LocalDateTime.now().minusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0);
         }
         return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
     }

+ 41 - 0
dbsyncer-listener/src/main/java/org/dbsyncer/listener/quartz/filter/YesTimestampFilter.java

@@ -0,0 +1,41 @@
+package org.dbsyncer.listener.quartz.filter;
+
+import org.dbsyncer.listener.quartz.QuartzFilter;
+
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+
+public class YesTimestampFilter implements QuartzFilter {
+
+    private boolean begin;
+
+    public YesTimestampFilter(boolean begin) {
+        this.begin = begin;
+    }
+
+    @Override
+    public Object getObject() {
+        if (begin) {
+            // 2022-08-02 00:00:00
+            return Timestamp.valueOf(LocalDateTime.now().minusDays(1).withHour(0).withMinute(0).withSecond(0).withNano(0));
+        }
+        // 2022-08-02 23:59:59
+        return Timestamp.valueOf(LocalDateTime.now().minusDays(1).withHour(23).withMinute(59).withSecond(59).withNano(999999999));
+    }
+
+    @Override
+    public Object getObject(String s) {
+        return new Timestamp(Long.parseLong(s));
+    }
+
+    @Override
+    public String toString(Object value) {
+        Timestamp ts = (Timestamp) value;
+        return String.valueOf(ts.getTime());
+    }
+
+    @Override
+    public boolean begin() {
+        return begin;
+    }
+}