Sfoglia il codice sorgente

!73 merge
Merge pull request !73 from AE86/yjwang

AE86 2 anni fa
parent
commit
1f98de9579

+ 7 - 0
README.md

@@ -176,6 +176,13 @@ $ ./build.sh
 ## 🐞常见问题
 * Mysql无法连接。默认使用的驱动版本为5.1.40,如果为mysql8需要手动替换驱动 [mysql-connector-java-8.0.21.jar](https://gitee.com/ghi/dbsyncer/attach_files) 
 * 有其他问题、建议或需求(如想支持某中间件,记得补充使用的版本号),欢迎大家提[【issuses】](https://gitee.com/ghi/dbsyncer/issues/new?issue%5Bassignee_id%5D=0&issue%5Bmilestone_id%5D=0)!
+* 启动脚本编码格式有误,在linux系统中,打包后,在bin文件夹下运行startup.sh前,要使用vi操作
+```bash
+vi startup.sh
+:set ff=unix
+:wq
+```
+再运行startup.sh
 
 ## 💕了解更多
 * 使用说明:[博客地址](https://my.oschina.net/dbsyncer "https://my.oschina.net/dbsyncer")

+ 11 - 1
dbsyncer-listener/src/main/java/org/dbsyncer/listener/enums/QuartzFilterEnum.java

@@ -4,6 +4,7 @@ import org.dbsyncer.common.util.StringUtil;
 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;
 
 /**
  * @author AE86
@@ -27,7 +28,16 @@ public enum QuartzFilterEnum {
     /**
      * 日期(结束)
      */
-    DATE_END(4, "$date_end$", "系统日期(结束)", new DateFilter(false));
+    DATE_END(4, "$date_end$", "系统日期(结束)", new DateFilter(false)),
+    /**
+     * 昨天日期(开始)
+     */
+    DATE_YES_BEGIN(5, "$date_yes_begin$", "系统昨天日期(开始00:00:00)", new YesDateFilter(true)),
+    /**
+     * 昨天日期(结束)
+     */
+    DATE_YES_END(6, "$date_yes_end$", "系统昨天日期(结束23:59:59)", new YesDateFilter(false));
+
 
     private Integer index;
     private String type;

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

@@ -0,0 +1,46 @@
+package org.dbsyncer.listener.quartz.filter;
+
+import org.dbsyncer.common.util.DateFormatUtil;
+import org.dbsyncer.listener.quartz.QuartzFilter;
+
+import java.sql.Date;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+
+public class YesDateFilter implements QuartzFilter {
+
+    private boolean begin;
+
+    public YesDateFilter(boolean begin) {
+        this.begin = begin;
+    }
+
+    @Override
+    public Object getObject() {
+        LocalDateTime localDateTime;
+        if (!begin) {
+            // 2022-08-02 23:59:59
+            localDateTime = LocalDateTime.now().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);
+        }
+        return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+    }
+
+    @Override
+    public Object getObject(String s) {
+        return DateFormatUtil.stringToDate(s);
+    }
+
+    @Override
+    public String toString(Object value) {
+        return DateFormatUtil.dateToString((Date) value);
+    }
+
+    @Override
+    public boolean begin() {
+        return begin;
+    }
+
+}