浏览代码

replace config

AE86 5 年之前
父节点
当前提交
c404de7c82
共有 18 个文件被更改,包括 92 次插入70 次删除
  1. 2 1
      dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/AbstractChecker.java
  2. 4 2
      dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/config/ConfigChecker.java
  3. 5 3
      dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/ConfigServiceImpl.java
  4. 2 1
      dbsyncer-manager/src/main/java/org/dbsyncer/manager/ManagerFactory.java
  5. 3 2
      dbsyncer-manager/src/main/java/org/dbsyncer/manager/puller/impl/FullPuller.java
  6. 2 1
      dbsyncer-manager/src/main/java/org/dbsyncer/manager/puller/impl/IncrementPuller.java
  7. 2 1
      dbsyncer-parser/src/main/java/org/dbsyncer/parser/ParserFactory.java
  8. 3 1
      dbsyncer-parser/src/main/java/org/dbsyncer/parser/convert/handler/DefaultTimestampHandler.java
  9. 3 2
      dbsyncer-parser/src/main/java/org/dbsyncer/parser/flush/FlushServiceImpl.java
  10. 12 13
      dbsyncer-storage/src/main/java/org/dbsyncer/storage/SnowflakeIdWorker.java
  11. 1 1
      dbsyncer-web/src/main/java/org/dbsyncer/web/config/CacheConfiguration.java
  12. 1 1
      dbsyncer-web/src/main/java/org/dbsyncer/web/config/WebAppConfig.java
  13. 5 7
      dbsyncer-web/src/main/resources/application.properties
  14. 5 3
      dbsyncer-web/src/main/resources/static/js/pwd/index.js
  15. 22 0
      dbsyncer-web/src/main/resources/static/js/ststem/index.js
  16. 3 3
      dbsyncer-web/src/main/resources/templates/monitor/monitor.html
  17. 3 4
      dbsyncer-web/src/main/resources/templates/pwd/pwd.html
  18. 14 24
      dbsyncer-web/src/main/resources/templates/system/system.html

+ 2 - 1
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/AbstractChecker.java

@@ -18,6 +18,7 @@ import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.Assert;
 
+import java.time.Instant;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -53,7 +54,7 @@ public abstract class AbstractChecker implements Checker {
             model.setName(name);
         }
         model.setId(StringUtils.isEmpty(model.getId()) ? String.valueOf(snowflakeIdWorker.nextId()) : model.getId());
-        long now = System.currentTimeMillis();
+        long now = Instant.now().toEpochMilli();
         model.setCreateTime(null == model.getCreateTime() ? now : model.getCreateTime());
         model.setUpdateTime(now);
     }

+ 4 - 2
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/config/ConfigChecker.java

@@ -29,7 +29,7 @@ public class ConfigChecker extends AbstractChecker {
 
     private final Logger logger = LoggerFactory.getLogger(getClass());
 
-    @Value(value = "${dbsyncer.config.login.password}")
+    @Value(value = "${dbsyncer.web.login.password}")
     private String password;
 
     @Autowired
@@ -68,11 +68,13 @@ public class ConfigChecker extends AbstractChecker {
         if (StringUtils.isNotBlank(newPwd) && StringUtils.isNotBlank(oldPwd)) {
             oldPwd = SHA1Util.b64_sha1(oldPwd);
             if (!StringUtils.equals(config.getPassword(), oldPwd)) {
-                logService.log(LogType.SystemLog.WARN, "修改密码失败");
+                logService.log(LogType.SystemLog.ERROR, "修改密码失败");
                 throw new BizException("修改密码失败");
             }
             config.setPassword(SHA1Util.b64_sha1(newPwd));
+            logService.log(LogType.SystemLog.INFO, "修改密码成功");
         }
+        logService.log(LogType.SystemLog.INFO, "修改系统配置");
 
         // 修改基本配置
         this.modifyConfigModel(config, params);

+ 5 - 3
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/ConfigServiceImpl.java

@@ -4,7 +4,7 @@ import org.dbsyncer.biz.ConfigService;
 import org.dbsyncer.biz.checker.impl.config.ConfigChecker;
 import org.dbsyncer.biz.vo.ConfigVo;
 import org.dbsyncer.common.util.CollectionUtils;
-import org.dbsyncer.parser.logger.LogType;
+import org.dbsyncer.manager.Manager;
 import org.dbsyncer.parser.model.Config;
 import org.dbsyncer.parser.model.ConfigModel;
 import org.dbsyncer.storage.constant.ConfigConstant;
@@ -21,7 +21,10 @@ import java.util.Map;
  * @date 2019/10/17 23:20
  */
 @Service
-public class ConfigServiceImpl extends BaseServiceImpl implements ConfigService {
+public class ConfigServiceImpl implements ConfigService {
+
+    @Autowired
+    private Manager manager;
 
     @Autowired
     private ConfigChecker configChecker;
@@ -35,7 +38,6 @@ public class ConfigServiceImpl extends BaseServiceImpl implements ConfigService
             }
             ConfigModel model = configChecker.checkEditConfigModel(params);
             manager.editConfig(model);
-            log(LogType.SystemLog.INFO, model);
         }
         return "修改成功.";
     }

+ 2 - 1
dbsyncer-manager/src/main/java/org/dbsyncer/manager/ManagerFactory.java

@@ -31,6 +31,7 @@ import org.springframework.context.ApplicationListener;
 import org.springframework.stereotype.Component;
 import org.springframework.util.Assert;
 
+import java.time.Instant;
 import java.util.List;
 import java.util.Map;
 
@@ -304,7 +305,7 @@ public class ManagerFactory implements Manager, ApplicationContextAware, Applica
         int code = metaEnum.getCode();
         if (null != meta && meta.getState() != code) {
             meta.setState(code);
-            meta.setUpdateTime(System.currentTimeMillis());
+            meta.setUpdateTime(Instant.now().toEpochMilli());
             editMeta(meta);
         }
     }

+ 3 - 2
dbsyncer-manager/src/main/java/org/dbsyncer/manager/puller/impl/FullPuller.java

@@ -15,6 +15,7 @@ import org.springframework.context.ApplicationListener;
 import org.springframework.stereotype.Component;
 import org.springframework.util.Assert;
 
+import java.time.Instant;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -79,7 +80,7 @@ public class FullPuller extends AbstractPuller implements ApplicationListener<Fu
 
     private void doTask(Task task, Mapping mapping, List<TableGroup> list) {
         // 记录开始时间
-        long now = System.currentTimeMillis();
+        long now = Instant.now().toEpochMilli();
         task.setBeginTime(now);
         task.setEndTime(now);
         flush(task);
@@ -92,7 +93,7 @@ public class FullPuller extends AbstractPuller implements ApplicationListener<Fu
         }
 
         // 记录结束时间
-        task.setEndTime(System.currentTimeMillis());
+        task.setEndTime(Instant.now().toEpochMilli());
         flush(task);
     }
 

+ 2 - 1
dbsyncer-manager/src/main/java/org/dbsyncer/manager/puller/impl/IncrementPuller.java

@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.util.Assert;
 
+import java.time.Instant;
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
@@ -83,7 +84,7 @@ public class IncrementPuller extends AbstractPuller implements ScheduledTaskJob,
             AbstractExtractor extractor = getExtractor(mapping, connector, list, meta);
             Assert.notNull(extractor, "未知的监听配置.");
 
-            long now = System.currentTimeMillis();
+            long now = Instant.now().toEpochMilli();
             meta.setBeginTime(now);
             meta.setEndTime(now);
             manager.editMeta(meta);

+ 2 - 1
dbsyncer-parser/src/main/java/org/dbsyncer/parser/ParserFactory.java

@@ -31,6 +31,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Component;
 import org.springframework.util.Assert;
 
+import java.time.Instant;
 import java.util.*;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.CountDownLatch;
@@ -280,7 +281,7 @@ public class ParserFactory implements Parser {
         flush(task.getId(), writer, ConnectorConstant.OPERTION_INSERT, data);
 
         // 发布刷新事件给FullExtractor
-        task.setEndTime(System.currentTimeMillis());
+        task.setEndTime(Instant.now().toEpochMilli());
         applicationContext.publishEvent(new FullRefreshEvent(applicationContext, task));
     }
 

+ 3 - 1
dbsyncer-parser/src/main/java/org/dbsyncer/parser/convert/handler/DefaultTimestampHandler.java

@@ -3,6 +3,8 @@ package org.dbsyncer.parser.convert.handler;
 import org.apache.commons.lang.StringUtils;
 import org.dbsyncer.parser.convert.Handler;
 
+import java.time.Instant;
+
 /**
  * @author AE86
  * @version 1.0.0
@@ -12,6 +14,6 @@ public class DefaultTimestampHandler implements Handler {
 
     @Override
     public Object handle(String args, Object value) {
-        return null == value || StringUtils.isBlank(String.valueOf(value)) ? System.currentTimeMillis() : value;
+        return null == value || StringUtils.isBlank(String.valueOf(value)) ? Instant.now().toEpochMilli() : value;
     }
 }

+ 3 - 2
dbsyncer-parser/src/main/java/org/dbsyncer/parser/flush/FlushServiceImpl.java

@@ -10,6 +10,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.time.Instant;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -39,13 +40,13 @@ public class FlushServiceImpl implements FlushService {
         params.put(ConfigConstant.CONFIG_MODEL_ID, String.valueOf(snowflakeIdWorker.nextId()));
         params.put(ConfigConstant.CONFIG_MODEL_TYPE, type);
         params.put(ConfigConstant.CONFIG_MODEL_JSON, error);
-        params.put(ConfigConstant.CONFIG_MODEL_CREATE_TIME, System.currentTimeMillis());
+        params.put(ConfigConstant.CONFIG_MODEL_CREATE_TIME, Instant.now().toEpochMilli());
         storageService.addLog(StorageEnum.LOG, params);
     }
 
     @Override
     public void asyncWrite(String metaId, String event, boolean success, List<Map<String, Object>> data, String error) {
-        long now = System.currentTimeMillis();
+        long now = Instant.now().toEpochMilli();
         List<Map> list = data.parallelStream().map(r -> {
             Map<String, Object> params = new HashMap();
             params.put(ConfigConstant.CONFIG_MODEL_ID, String.valueOf(snowflakeIdWorker.nextId()));

+ 12 - 13
dbsyncer-storage/src/main/java/org/dbsyncer/storage/SnowflakeIdWorker.java

@@ -3,6 +3,8 @@ package org.dbsyncer.storage;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import java.time.Instant;
+
 @Component
 public class SnowflakeIdWorker {
     /**
@@ -58,7 +60,7 @@ public class SnowflakeIdWorker {
     /**
      * 工作机器ID(0~31)
      */
-    @Value(value = "${dbsyncer.worker.id}")
+    @Value(value = "${dbsyncer.storage.id}")
     private long workerId;
 
     /**
@@ -141,20 +143,17 @@ public class SnowflakeIdWorker {
      * @return 当前时间(毫秒)
      */
     private long timeGen() {
-        return System.currentTimeMillis();
+        return Instant.now().toEpochMilli();
     }
 
-    /**
-     * 测试
-     */
-    public static void main(String[] args) {
-        SnowflakeIdWorker idWorker = new SnowflakeIdWorker();
-        for (int i = 0; i < 1000; i++) {
-            long id = idWorker.nextId();
-            System.out.println(Long.toBinaryString(id));
-            System.out.println(id);
-        }
-    }
+//    public static void main(String[] args) {
+//        SnowflakeIdWorker idWorker = new SnowflakeIdWorker();
+//        for (int i = 0; i < 1000; i++) {
+//            long id = idWorker.nextId();
+//            System.out.println(Long.toBinaryString(id));
+//            System.out.println(id);
+//        }
+//    }
 
     private class SnowflakeId {
         private long workerId;

+ 1 - 1
dbsyncer-web/src/main/java/org/dbsyncer/web/config/CacheConfiguration.java

@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
  * @date 2020/04/23 11:30
  */
 @Configuration
-@ConfigurationProperties(prefix = "dbsyncer.caching")
+@ConfigurationProperties(prefix = "dbsyncer.web")
 public class CacheConfiguration {
 
     private final Logger logger = LoggerFactory.getLogger(getClass());

+ 1 - 1
dbsyncer-web/src/main/java/org/dbsyncer/web/config/WebAppConfig.java

@@ -57,7 +57,7 @@ public class WebAppConfig extends WebSecurityConfigurerAdapter implements Authen
      */
     private static final int MAXIMUM_SESSIONS = 1;
 
-    @Value(value = "${dbsyncer.config.login.username}")
+    @Value(value = "${dbsyncer.web.login.username}")
     private String username;
 
     @Autowired

+ 5 - 7
dbsyncer-web/src/main/resources/application.properties

@@ -1,16 +1,14 @@
 server.ip=127.0.0.1
 server.port=18686
-dbsyncer.worker.id=1
 
-#login
-dbsyncer.config.login.username=admin
-dbsyncer.config.login.password=0DPiKuNIrrVmD8IUCuw1hQxNqZc=
+#web
+dbsyncer.web.login.username=admin
+dbsyncer.web.login.password=0DPiKuNIrrVmD8IUCuw1hQxNqZc=
+dbsyncer.web.cache.connector.timeout=5
 server.servlet.session.timeout=1800
 
-#cache
-dbsyncer.caching.cache.connector.timeout=5
-
 #storage
+dbsyncer.storage.id=1
 dbsyncer.storage.support.disk=true
 #dbsyncer.storage.support.mysql=true
 

+ 5 - 3
dbsyncer-web/src/main/resources/static/js/pwd/index.js

@@ -1,11 +1,13 @@
 function submit(data) {
-    doPoster("/pwd/edit", data, function (data) {
+    doPoster('/pwd/edit', data, function (data) {
         if (data.success == true) {
-            bootGrowl("修改成功!", "success");
+            doPoster("/logout", null, function (data) {
+                location.href = $basePath;
+            });
         } else {
             bootGrowl(data.resultValue, "danger");
+            $initContainer.load("/pwd");
         }
-        $initContainer.load('/pwd');
     });
 }
 

+ 22 - 0
dbsyncer-web/src/main/resources/static/js/ststem/index.js

@@ -0,0 +1,22 @@
+function submit(data) {
+    doPoster('/system/edit', data, function (data) {
+        if (data.success == true) {
+            bootGrowl("修改成功!", "success");
+        } else {
+            bootGrowl(data.resultValue, "danger");
+        }
+        $initContainer.load("/system");
+    });
+}
+
+$(function () {
+    //保存
+    $("#updateSystemSubBtn").click(function () {
+        var $form = $("#configEditForm");
+        if ($form.formValidate() == true) {
+            var data = $form.serializeJson();
+            submit(data);
+        }
+    });
+
+})

+ 3 - 3
dbsyncer-web/src/main/resources/templates/monitor/monitor.html

@@ -94,9 +94,9 @@
                 <table class="table table-hover">
                     <thead>
                     <tr>
-                        <th>序号</th>
-                        <th>内容</th>
-                        <th>时间</th>
+                        <th style="width:3%;">序号</th>
+                        <th style="width:70%;">内容</th>
+                        <th style="width:27%;">时间</th>
                     </tr>
                     </thead>
                     <tr th:each="l,s : ${log}">

+ 3 - 4
dbsyncer-web/src/main/resources/templates/pwd/pwd.html

@@ -10,13 +10,13 @@
 
         <!-- 操作 -->
         <div class="row">
-            <div class="col-md-3"></div>
-            <div class="col-md-6">
+            <div class="col-md-3">
                 <!-- 隐藏表单值 -->
                 <div class="form-group hidden">
                     <input name="id" type="text" th:value="${config?.id}"/>
                 </div>
-
+            </div>
+            <div class="col-md-6">
                 <div class="form-group">
                     <label class="col-sm-4 control-label">原密码 <strong class="driverVerifcateRequired">*</strong></label>
                     <div class="col-sm-8">
@@ -35,7 +35,6 @@
                         <button id="updatePwdSubBtn" type="button" class="btn btn-primary">
                             <span class="fa fa-save"></span>保存
                         </button>
-                        <button id="updatePwdRestBtn" type="reset" class="btn btn-default">重置</button>
                     </div>
                 </div>
             </div>

+ 14 - 24
dbsyncer-web/src/main/resources/templates/system/system.html

@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml"
-      lang="zh-CN">
+      xmlns:th="http://www.thymeleaf.org" lang="zh-CN">
 
 <div class="container">
-    <form class="form-horizontal" role="form">
+    <form id="configEditForm" class="form-horizontal" role="form">
         <div class="row text-center">
             <h3>系统参数</h3>
         </div>
@@ -11,36 +11,25 @@
         <!-- 操作 -->
         <div class="row">
             <!-- 系统参数配置 -->
-            <div class="col-md-3"><div id="system_params" class="hidden">${params}</div></div>
-            <div class="col-md-6">
-                <div class="form-group">
-                    <label class="col-sm-4 control-label">单次最多执行数 <strong class="driverVerifcateRequired">*</strong></label>
-                    <div class="col-sm-8">
-                        <input type="number" class="form-control" max="20000" min="1" dbsyncer-valid="require"
-                               name="dbsyncer.worker.task.max.number">
-                    </div>
-                </div>
-                <div class="form-group">
-                    <label class="col-sm-4 control-label">批量执行数 <strong class="driverVerifcateRequired">*</strong></label>
-                    <div class="col-sm-8">
-                        <input type="number" class="form-control" max="5000" min="1" dbsyncer-valid="require"
-                               name="dbsyncer.worker.batch.number">
-                    </div>
+            <div class="col-md-3">
+                <!-- 隐藏表单值 -->
+                <div class="form-group hidden">
+                    <input name="id" type="text" th:value="${config?.id}"/>
                 </div>
+            </div>
+            <div class="col-md-6">
                 <div class="form-group">
-                    <label class="col-sm-4 control-label">线程数 <strong class="driverVerifcateRequired">*</strong></label>
+                    <label class="col-sm-4 control-label">刷新监控频率 <strong class="driverVerifcateRequired">*</strong></label>
                     <div class="col-sm-8">
-                        <input type="number" class="form-control" max="200" min="1" dbsyncer-valid="require"
-                               name="dbsyncer.worker.thread.number">
+                        <input type="number" class="form-control" max="100" min="1" dbsyncer-valid="require" name="refresh" />
                     </div>
                 </div>
                 <div class="form-group">
-                    <div class="col-sm-4"></div>
-                    <div class="col-sm-8 text-right">
-                        <button id="systemConfigSubBtn" type="button" class="btn btn-primary">
+                    <div class="text-right col-sm-4"></div>
+                    <div class="text-right col-sm-8">
+                        <button id="updateSystemSubBtn" type="button" class="btn btn-primary">
                             <span class="fa fa-save"></span>保存
                         </button>
-                        <button type="reset" class="btn btn-default">重置</button>
                     </div>
                 </div>
             </div>
@@ -49,4 +38,5 @@
     </form>
 </div>
 
+<script th:src="@{/js/ststem/index.js}"></script>
 </html>