1
0
Эх сурвалжийг харах

支持复制dql连接器 https://gitee.com/ghi/dbsyncer/issues/I8XBVB

AE86 1 жил өмнө
parent
commit
99112b0ac6

+ 8 - 6
dbsyncer-sdk/src/main/java/org/dbsyncer/sdk/connector/AbstractDataBaseConfigValidator.java

@@ -38,16 +38,18 @@ public abstract class AbstractDataBaseConfigValidator implements ConfigValidator
     }
 
     protected void modifyDql(DatabaseConfig connectorConfig, Map<String, String> params) {
-        String sqlTableParams = params.get("sqlTableParams");
-        Assert.hasText(sqlTableParams, "sqlTableParams is empty.");
-        List<SqlTable> sqlTables = JsonUtil.jsonToArray(sqlTableParams, SqlTable.class);
-        Assert.isTrue(!CollectionUtils.isEmpty(sqlTables), "sqlTables is empty.");
-        sqlTables.forEach(sqlTable -> {
+        Object sqlTableParams = params.get("sqlTables");
+        Assert.notNull(sqlTableParams, "sqlTables is null.");
+        String sqlTables = (sqlTableParams instanceof String) ? (String) sqlTableParams : JsonUtil.objToJson(sqlTableParams);
+        Assert.hasText(sqlTables, "sqlTables is empty.");
+        List<SqlTable> sqlTableArray = JsonUtil.jsonToArray(sqlTables, SqlTable.class);
+        Assert.isTrue(!CollectionUtils.isEmpty(sqlTableArray), "sqlTableArray is empty.");
+        sqlTableArray.forEach(sqlTable -> {
             Assert.hasText(sqlTable.getSqlName(), "SqlName is empty.");
             Assert.hasText(sqlTable.getSql(), "Sql is empty.");
             Assert.hasText(sqlTable.getTable(), "Table is empty.");
         });
-        connectorConfig.setSqlTables(sqlTables);
+        connectorConfig.setSqlTables(sqlTableArray);
     }
 
     protected void modifySchema(DatabaseConfig connectorConfig, Map<String, String> params) {

+ 5 - 5
dbsyncer-web/src/main/resources/public/connector/addSQL.html

@@ -19,7 +19,7 @@
             <button id="editSqlTableBtn" type="button" class="btn btn-default hidden"> <span class="fa fa-pencil"></span>修改</button>
             <button id="addSqlTableBtn" type="button" class="btn btn-primary"> <span class="fa fa-plus"></span>添加(<span id="sqlTableCount">[[${connector?.config?.sqlTables?.size()} ?: 0]]</span>)</button>
         </div>
-        <input type="hidden" id="sqlTableParams" name="sqlTableParams"/>
+        <input type="hidden" id="sqlTables" name="sqlTables"/>
     </div>
 
     <div class="form-group">
@@ -40,7 +40,7 @@
 
 <script type="text/javascript" th:inline="javascript">
     $(function () {
-        let sqlTables = [[${connector?.config?.sqlTables}]];
+        let sqlTableList = [[${connector?.config?.sqlTables}]];
         // SQL配置模板
         let $template = {
             selector: initSelectIndex($("#sqlTableSelect"), 1),
@@ -48,8 +48,8 @@
             editSqlTableBtn: $("#editSqlTableBtn"),
             delSqlTableBtn: $("#delSqlTableBtn"),
             sqlTableCount: $("#sqlTableCount"),
-            sqlTableParams: $("#sqlTableParams"),
-            sqlTableArray: sqlTables == null ? [] : sqlTables,
+            sqlTables: $("#sqlTables"),
+            sqlTableArray: sqlTableList == null ? [] : sqlTableList,
             sqlNameInput: $("#sqlName"),
             tableInput: $("#table"),
             sqlInput: $("#sql"),
@@ -99,7 +99,7 @@
             },
             // 暂存配置
             stash: function () {
-                this.sqlTableParams.val(JSON.stringify(this.sqlTableArray));
+                this.sqlTables.val(JSON.stringify(this.sqlTableArray));
             },
             // 清空表单
             clear: function () {