ソースを参照

update config

AE86 5 年 前
コミット
567c99cfa4

+ 19 - 7
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/AbstractChecker.java

@@ -1,16 +1,16 @@
 package org.dbsyncer.biz.checker;
 
 import org.apache.commons.lang.StringUtils;
-import org.dbsyncer.biz.BizException;
+import org.dbsyncer.biz.PluginService;
+import org.dbsyncer.common.util.CollectionUtils;
 import org.dbsyncer.common.util.JsonUtil;
 import org.dbsyncer.connector.config.Filter;
 import org.dbsyncer.parser.convert.FieldConvert;
 import org.dbsyncer.parser.model.AbstractConfigModel;
 import org.dbsyncer.parser.model.ConfigModel;
-import org.dbsyncer.parser.model.Connector;
-import org.dbsyncer.parser.model.Mapping;
 import org.dbsyncer.plugin.config.Plugin;
 import org.dbsyncer.storage.constant.ConfigConstant;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.util.List;
 import java.util.Map;
@@ -22,6 +22,9 @@ import java.util.Map;
  */
 public abstract class AbstractChecker implements Checker {
 
+    @Autowired
+    private PluginService pluginService;
+
     /**
      * 修改基本配置
      *
@@ -59,11 +62,20 @@ public abstract class AbstractChecker implements Checker {
         }
 
         // 插件配置
-        String pluginJson = params.get("plugin");
-        if (StringUtils.isNotBlank(pluginJson)) {
-            Plugin plugin = JsonUtil.jsonToObj(pluginJson, Plugin.class);
-            model.setPlugin(plugin);
+        String pluginClassName = params.get("pluginClassName");
+        Plugin plugin = null;
+        if (StringUtils.isNotBlank(pluginClassName)) {
+            List<Plugin> plugins = pluginService.getPluginAll();
+            if(!CollectionUtils.isEmpty(plugins)){
+                for (Plugin p : plugins) {
+                    if (StringUtils.equals(p.getClassName(), pluginClassName)) {
+                        plugin = p;
+                        break;
+                    }
+                }
+            }
         }
+        model.setPlugin(plugin);
 
     }
 

+ 1 - 5
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/mapping/LogConfigChecker.java

@@ -30,20 +30,16 @@ public class LogConfigChecker implements MappingConfigChecker {
 
     @Override
     public void modify(Mapping mapping, Map<String, String> params) {
-        // String label = params.get("incrementStrategyTableLabel");
         // TODO 仅支持 DQL_Mysql/DQL_Oracle
         String connectorId = mapping.getSourceConnectorId();
         Connector connector = manager.getConnector(connectorId);
         ConnectorConfig config = connector.getConfig();
         String type = config.getConnectorType();
+        // String label = params.get("incrementStrategyLogTableLabel");
         if(StringUtils.equals(ConnectorEnum.DQL_MYSQL.getType(),type)){
 
             return;
         }
-//        if(StringUtils.equals(ConnectorEnum.DQL_ORACLE.getType(),type)){
-//
-//            return;
-//        }
     }
 
 }

+ 1 - 0
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/mapping/MappingChecker.java

@@ -72,6 +72,7 @@ public class MappingChecker extends AbstractChecker implements ApplicationContex
         
         // 增量配置(日志/定时)
         String incrementStrategy = params.get("incrementStrategy");
+        Assert.hasText(incrementStrategy, "MappingChecker check params incrementStrategy is empty");
         String type = this.getCheckerType(incrementStrategy);
         MappingConfigChecker checker = map.get(type);
         Assert.notNull(checker, "Checker can not be null.");

+ 0 - 1
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/MappingServiceImpl.java

@@ -53,7 +53,6 @@ public class MappingServiceImpl implements MappingService {
         mapping.setSourceConnectorId(sourceConnectorId);
         mapping.setTargetConnectorId(targetConnectorId);
 
-        // TODO 缺少默认值
         mapping.setModel(ModelConstant.FULL);
         mapping.setListener(new TimingListenerConfig());
         String json = JsonUtil.objToJson(mapping);

+ 6 - 2
dbsyncer-web/src/main/resources/static/js/mapping/editMapping.js

@@ -1,6 +1,6 @@
 //*********************************** 驱动保存 开始位置***********************************//
 function submit(data) {
-    doPoster("/mapping/edit", {"json": JSON.stringify(data)}, function (data) {
+    doPoster("/mapping/edit", data, function (data) {
         if (data.success == true) {
             bootGrowl("修改驱动成功!", "success");
             backIndexPage();
@@ -126,7 +126,11 @@ $(function () {
 
     //保存
     $("#mappingSubmitBtn").click(function () {
-        //check();
+        var $form = $("#mappingModifyForm");
+        if ($form.formValidate() == true) {
+            var data = $form.serializeJson();
+            submit(data);
+        }
     });
 
     //返回

+ 6 - 1
dbsyncer-web/src/main/resources/templates/mapping/editMapping.html

@@ -4,13 +4,18 @@
 
 <div class="container-fluid">
     <div class="container">
-        <form class="form-horizontal" role="form" method="post">
+        <form id="mappingModifyForm" class="form-horizontal" role="form" method="post">
             <!-- 标题 -->
             <div class="row text-center">
                 <h3>[[${mapping?.name}]]</h3>
                 <p>[[${mapping?.id}]]</p>
             </div>
 
+            <!-- 隐藏表单值 -->
+            <div class="form-group hidden">
+                <input name="id" class="form-control" type="text" th:value="${mapping?.id}"/>
+            </div>
+
             <!-- 驱动信息面板 -->
             <div class="row">
                 <div class="panel panel-default">

+ 1 - 1
dbsyncer-web/src/main/resources/templates/mapping/editMappingIncrementDQL.html

@@ -8,7 +8,7 @@
             <div class="col-md-4">
                 <label class="col-sm-3 control-label text-right">表别名<strong class="driverVerifcateRequired">*</strong></label>
                 <div class="col-sm-9">
-                    <input name="incrementStrategyTableLabel" type="text" dbsyncer-valid="require" class="form-control" value="T1">
+                    <input name="incrementStrategyLogTableLabel" type="text" dbsyncer-valid="require" class="form-control" value="T1">
                 </div>
             </div>
             <div class="col-md-8"></div>

+ 5 - 4
dbsyncer-web/src/main/resources/templates/mapping/editMappingIncrementQuartz.html

@@ -8,7 +8,7 @@
             <div class="col-md-4">
                 <label class="col-sm-3 control-label text-right">定时*</label>
                 <div class="col-sm-9">
-                    <input name="incrementStrategyTimingCronExpression" type="text" class="form-control" dbsyncer-valid="require" value="*/30 * * * * ?"/>
+                    <input name="incrementStrategyTimingCronExpression" type="text" class="form-control" dbsyncer-valid="require" th:value="${mapping?.listener?.cronExpression}"/>
                 </div>
             </div>
             <div class="col-md-4">
@@ -16,6 +16,7 @@
                 <div class="col-sm-9" title="区分增删改">
                     <select name="incrementStrategyTimingEventFieldName" class="form-control select-control">
                         <option>EVENT_TYPE</option>
+                        <option>EVENT_FLAG</option>
                     </select>
                 </div>
             </div>
@@ -28,19 +29,19 @@
             <div class="col-md-4">
                 <label class="col-sm-3 control-label text-right">Insert*</label>
                 <div class="col-sm-9">
-                    <input name="incrementStrategyTimingInsert" type="text" class="form-control" dbsyncer-valid="require" value="I" />
+                    <input name="incrementStrategyTimingInsert" type="text" class="form-control" dbsyncer-valid="require" value="I" th:value="${mapping?.listener?.insert}" />
                 </div>
             </div>
             <div class="col-md-4">
                 <label class="col-sm-3 control-label text-right">Update*</label>
                 <div class="col-sm-9">
-                    <input name="incrementStrategyTimingUpdate" type="text" class="form-control" dbsyncer-valid="require" value="U" />
+                    <input name="incrementStrategyTimingUpdate" type="text" class="form-control" dbsyncer-valid="require" value="U" th:value="${mapping?.listener?.update}"/>
                 </div>
             </div>
             <div class="col-md-4">
                 <label class="col-sm-3 control-label text-right">Delete*</label>
                 <div class="col-sm-9">
-                    <input name="incrementStrategyTimingDelete" type="text" class="form-control" dbsyncer-valid="require" value="D" />
+                    <input name="incrementStrategyTimingDelete" type="text" class="form-control" dbsyncer-valid="require" value="D" th:value="${mapping?.listener?.delete}"/>
                 </div>
             </div>
         </div>

+ 1 - 1
dbsyncer-web/src/main/resources/templates/mapping/editMappingPlugin.html

@@ -10,7 +10,7 @@
             <div class="col-md-4">
                 <label class="col-sm-3 control-label text-right">名称</label>
                 <div class="col-sm-9">
-                    <select id="sourceStrategyConvertRule" name="plugin" class="form-control select-control">
+                    <select id="sourceStrategyConvertRule" name="pluginClassName" class="form-control select-control">
                         <option value="">无</option>
                         <option th:value="${p?.className}" th:text="${p?.name}" th:each="p,state : ${plugin}">
                     </select>