From 14f478ef3cc343e72f76e07b75ea6927b8f305f6 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期三, 13 五月 2020 18:10:48 +0800
Subject: [PATCH] sync share data from cluster

---
 .idea/workspace.xml |  285 +++++++++++-----------------------------
 sync.go             |   74 +++++----
 cluster.go          |    6 
 3 files changed, 124 insertions(+), 241 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index dd17689..eb22a3b 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,8 +2,7 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="e3303c4d-ac69-4436-b80e-4e2521d4dcc3" name="Default Changelist" comment="">
-      <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/main.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/cluster.go" beforeDir="false" afterPath="$PROJECT_DIR$/cluster.go" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/sync.go" beforeDir="false" afterPath="$PROJECT_DIR$/sync.go" afterDir="false" />
     </list>
@@ -30,25 +29,45 @@
   <component name="DefaultGradleProjectSettings">
     <option name="isMigrated" value="true" />
   </component>
+  <component name="FUSProjectUsageTrigger">
+    <session id="1086019791">
+      <usages-collector id="statistics.lifecycle.project">
+        <counts>
+          <entry key="project.open.time.1" value="1" />
+          <entry key="project.opened" value="1" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.extensions.edit">
+        <counts>
+          <entry key="go" value="611" />
+        </counts>
+      </usages-collector>
+      <usages-collector id="statistics.file.types.edit">
+        <counts>
+          <entry key="Go" value="611" />
+        </counts>
+      </usages-collector>
+    </session>
+  </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
+      <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/cluster.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="60">
-              <caret line="2" selection-start-line="2" selection-end-line="2" />
-              <folding>
-                <element signature="e#35#177#0" expanded="true" />
-              </folding>
+            <state relative-caret-position="114">
+              <caret line="6" column="37" selection-start-line="6" selection-start-column="37" selection-end-line="6" selection-end-column="37" />
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/main.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="330">
-              <caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" />
+            <state relative-caret-position="365">
+              <caret line="24" column="9" lean-forward="true" selection-start-line="24" selection-start-column="9" selection-end-line="24" selection-end-column="9" />
+              <folding>
+                <element signature="e#36#97#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
@@ -56,8 +75,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/sync.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="60">
-              <caret line="2" selection-start-line="2" selection-end-line="2" />
+            <state relative-caret-position="114">
+              <caret line="6" column="19" lean-forward="true" selection-start-line="6" selection-start-column="19" selection-end-line="6" selection-end-column="19" />
             </state>
           </provider>
         </entry>
@@ -96,9 +115,12 @@
       <find>syncInit</find>
       <find>Error creating Serf</find>
       <find>aaa</find>
+      <find>strconv</find>
+      <find>time</find>
+      <find>logger</find>
     </findStrings>
   </component>
-  <component name="GOROOT" path="D:\program\go" />
+  <component name="GOROOT" path="C:\Go" />
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
   </component>
@@ -109,23 +131,30 @@
         <option value="$PROJECT_DIR$/db/db.go" />
         <option value="$PROJECT_DIR$/db/cluster.go" />
         <option value="$PROJECT_DIR$/../basic.com/Android/syncdb.git/agent.go" />
+        <option value="$PROJECT_DIR$/main.go" />
         <option value="$PROJECT_DIR$/sync.go" />
         <option value="$PROJECT_DIR$/cluster.go" />
-        <option value="$PROJECT_DIR$/main.go" />
       </list>
     </option>
   </component>
-  <component name="ProjectFrameBounds" extendedState="6">
-    <option name="x" value="84" />
-    <option name="y" value="64" />
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+  <component name="JsGulpfileManager">
+    <detection-done>true</detection-done>
+    <sorting>DEFINITION_ORDER</sorting>
+  </component>
+  <component name="ProjectFrameBounds">
+    <option name="x" value="5" />
+    <option name="y" value="19" />
     <option name="width" value="1855" />
-    <option name="height" value="939" />
+    <option name="height" value="1027" />
   </component>
   <component name="ProjectView">
     <navigator proportions="" version="1">
       <foldersAlwaysOnTop value="true" />
     </navigator>
     <panes>
+      <pane id="Scope" />
       <pane id="ProjectPane">
         <subPane>
           <expand>
@@ -133,77 +162,11 @@
               <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
               <item name="androidSync" type="462c0819:PsiDirectoryNode" />
             </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="Go SDK 1.12.6" type="20ee2d1f:SyntheticLibraryElementNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="Go SDK 1.12.6" type="20ee2d1f:SyntheticLibraryElementNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="Go SDK 1.12.6" type="20ee2d1f:SyntheticLibraryElementNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="runtime" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="Go SDK 1.12.6" type="20ee2d1f:SyntheticLibraryElementNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="runtime" type="462c0819:PsiDirectoryNode" />
-              <item name="debug" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="GOPATH &lt;androidSync&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="GOPATH &lt;androidSync&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="GOPATH &lt;androidSync&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="basic.com" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="GOPATH &lt;androidSync&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="basic.com" type="462c0819:PsiDirectoryNode" />
-              <item name="Android" type="462c0819:PsiDirectoryNode" />
-            </path>
-            <path>
-              <item name="androidSync" type="b2602c69:ProjectViewProjectNode" />
-              <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" />
-              <item name="GOPATH &lt;androidSync&gt;" type="20ee2d1f:SyntheticLibraryElementNode" />
-              <item name="src" type="462c0819:PsiDirectoryNode" />
-              <item name="basic.com" type="462c0819:PsiDirectoryNode" />
-              <item name="Android" type="462c0819:PsiDirectoryNode" />
-              <item name="syncdb.git" type="462c0819:PsiDirectoryNode" />
-            </path>
           </expand>
           <select />
         </subPane>
       </pane>
       <pane id="PackagesPane" />
-      <pane id="Scope" />
     </panes>
   </component>
   <component name="PropertiesComponent">
@@ -282,6 +245,7 @@
       <workItem from="1570592385068" duration="519000" />
       <workItem from="1576559914307" duration="5390000" />
       <workItem from="1576636227327" duration="2169000" />
+      <workItem from="1589351689010" duration="8475000" />
     </task>
     <task id="LOCAL-00001" summary="棣栨鎻愪氦">
       <created>1567763026206</created>
@@ -294,12 +258,13 @@
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="68953000" />
+    <option name="totallyTimeSpent" value="77428000" />
   </component>
   <component name="ToolWindowManager">
-    <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
+    <frame x="5" y="19" width="1855" height="1027" extended-state="0" />
+    <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.22965738" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24233983" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Image Layers" order="2" />
       <window_info id="Designer" order="3" />
@@ -315,9 +280,10 @@
       <window_info anchor="bottom" id="TODO" order="6" />
       <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
       <window_info anchor="bottom" id="Version Control" order="8" weight="0.3293023" />
-      <window_info anchor="bottom" id="Database Changes" order="9" />
-      <window_info anchor="bottom" id="Terminal" order="10" weight="0.3248337" />
+      <window_info anchor="bottom" id="Database Changes" order="9" show_stripe_button="false" />
+      <window_info anchor="bottom" id="Terminal" order="10" visible="true" weight="0.33986175" />
       <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
+      <window_info anchor="right" id="Maven Projects" />
       <window_info anchor="right" id="SciView" order="0" />
       <window_info anchor="right" id="Commander" internal_type="SLIDING" order="1" type="SLIDING" weight="0.4" />
       <window_info anchor="right" id="Ant Build" order="2" weight="0.25" />
@@ -334,6 +300,9 @@
   <component name="TypeScriptGeneratedFilesManager">
     <option name="version" value="1" />
   </component>
+  <component name="VcsContentAnnotationSettings">
+    <option name="myLimit" value="2678400000" />
+  </component>
   <component name="VcsManagerConfiguration">
     <option name="CHECK_CODE_SMELLS_BEFORE_PROJECT_COMMIT" value="false" />
     <option name="CHECK_NEW_TODO" value="false" />
@@ -348,41 +317,6 @@
           <line>98</line>
           <option name="timeStamp" value="1" />
         </line-breakpoint>
-        <line-breakpoint enabled="true" type="DlvLineBreakpoint">
-          <url>file://$PROJECT_DIR$/main.go</url>
-          <line>11</line>
-          <option name="timeStamp" value="2" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DlvLineBreakpoint">
-          <url>file://$PROJECT_DIR$/main.go</url>
-          <line>12</line>
-          <option name="timeStamp" value="3" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DlvLineBreakpoint">
-          <url>file://$PROJECT_DIR$/main.go</url>
-          <line>13</line>
-          <option name="timeStamp" value="4" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DlvLineBreakpoint">
-          <url>file://$PROJECT_DIR$/main.go</url>
-          <line>16</line>
-          <option name="timeStamp" value="5" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DlvLineBreakpoint">
-          <url>file://$PROJECT_DIR$/main.go</url>
-          <line>17</line>
-          <option name="timeStamp" value="6" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DlvLineBreakpoint">
-          <url>file://$PROJECT_DIR$/main.go</url>
-          <line>18</line>
-          <option name="timeStamp" value="7" />
-        </line-breakpoint>
-        <line-breakpoint enabled="true" type="DlvLineBreakpoint">
-          <url>file://$PROJECT_DIR$/main.go</url>
-          <line>10</line>
-          <option name="timeStamp" value="8" />
-        </line-breakpoint>
       </breakpoints>
     </breakpoint-manager>
   </component>
@@ -392,42 +326,12 @@
     <entry file="file://$PROJECT_DIR$/db/dbTablePersons.go" />
     <entry file="file://$PROJECT_DIR$/db/db.go" />
     <entry file="file://$PROJECT_DIR$/db/dbLogger.go" />
-    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/searcher.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1547">
-          <caret line="97" column="5" selection-start-line="97" selection-start-column="5" selection-end-line="97" selection-end-column="5" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/dbself.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="391">
-          <caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../basic.com/valib/logger.git/logger.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="170">
-          <caret line="17" column="4" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="4" />
-        </state>
-      </provider>
-    </entry>
+    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/searcher.go" />
+    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/dbself.go" />
+    <entry file="file://$PROJECT_DIR$/../basic.com/valib/logger.git/logger.go" />
     <entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/a3bd5e95-52ff-4668-b73d-db976a28f634/console.sql" />
-    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/db.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="17">
-          <caret line="94" selection-start-line="94" selection-end-line="94" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../github.com/jinzhu/gorm/main.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="331">
-          <caret line="659" column="1" selection-start-line="659" selection-start-column="1" selection-end-line="659" selection-end-column="1" />
-        </state>
-      </provider>
-    </entry>
+    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/db.go" />
+    <entry file="file://$PROJECT_DIR$/../github.com/jinzhu/gorm/main.go" />
     <entry file="file://$PROJECT_DIR$/androidSync/AndroidSync.java" />
     <entry file="file://$PROJECT_DIR$/README.md">
       <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
@@ -439,65 +343,32 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://D:/program/go/src/runtime/proc.go">
+    <entry file="file://D:/program/go/src/runtime/proc.go" />
+    <entry file="file://D:/program/go/src/runtime/asm_amd64.s" />
+    <entry file="file://D:/program/go/src/os/file.go" />
+    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/agent.go" />
+    <entry file="file://D:/program/go/src/runtime/debug/stack.go" />
+    <entry file="file://$PROJECT_DIR$/main.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="30">
-          <caret line="199" selection-start-line="199" selection-end-line="199" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://D:/program/go/src/runtime/asm_amd64.s">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="168">
-          <caret line="1336" selection-start-line="1336" selection-end-line="1336" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://D:/program/go/src/os/file.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="78">
-          <caret line="140" column="15" selection-start-line="140" selection-start-column="15" selection-end-line="140" selection-end-column="15" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/../basic.com/Android/syncdb.git/agent.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="1230">
-          <caret line="98" column="37" selection-start-line="98" selection-start-column="37" selection-end-line="98" selection-end-column="37" />
+        <state relative-caret-position="365">
+          <caret line="24" column="9" lean-forward="true" selection-start-line="24" selection-start-column="9" selection-end-line="24" selection-end-column="9" />
           <folding>
-            <element signature="e#818#1135#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://D:/program/go/src/runtime/debug/stack.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="150">
-          <caret line="20" column="5" selection-start-line="20" selection-start-column="5" selection-end-line="20" selection-end-column="5" />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/cluster.go">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="2" selection-start-line="2" selection-end-line="2" />
-          <folding>
-            <element signature="e#35#177#0" expanded="true" />
+            <element signature="e#36#97#0" expanded="true" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/sync.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="60">
-          <caret line="2" selection-start-line="2" selection-end-line="2" />
+        <state relative-caret-position="114">
+          <caret line="6" column="19" lean-forward="true" selection-start-line="6" selection-start-column="19" selection-end-line="6" selection-end-column="19" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/main.go">
+    <entry file="file://$PROJECT_DIR$/cluster.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="330">
-          <caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" />
+        <state relative-caret-position="114">
+          <caret line="6" column="37" selection-start-line="6" selection-start-column="37" selection-end-line="6" selection-end-column="37" />
         </state>
       </provider>
     </entry>
diff --git a/cluster.go b/cluster.go
index d7e308a..4f8de28 100644
--- a/cluster.go
+++ b/cluster.go
@@ -19,9 +19,13 @@
 	dBNameClusterNode  = "cluster_node"
 	dBNameTables       = "dbTables"
 	dBNameTablePersons = "dbtablepersons"
+	dbNameOrg = "org"
+	dbNamePerson = "person"
+	dbNamePersonCameraImagePath = "person_camera_image_path"
+	dbNamePersonIdentity = "person_identity"
 )
 
-var syncTables = []string{dBNameCluster, dBNameClusterNode, dBNameTables, dBNameTablePersons}
+var syncTables = []string{ dBNameClusterNode, dBNameCluster, dBNameTablePersons, dBNameTables, dbNameOrg, dbNamePersonCameraImagePath, dbNamePersonIdentity, dbNamePerson }
 var agent *sdb.Agent
 var members *memberlist.Memberlist
 var sqliteDBPath string = defaultSqliteDBPath
diff --git a/sync.go b/sync.go
index 3f25454..0370b53 100755
--- a/sync.go
+++ b/sync.go
@@ -5,9 +5,7 @@
 	sdb "basic.com/Android/syncdb.git"
 	"basic.com/valib/logger.git"
 	"encoding/json"
-	"strconv"
 	"strings"
-	"time"
 )
 type ReceiveSqlInterface2 interface {
 	sdb.ReceiveSqlInterface
@@ -65,6 +63,14 @@
 	return true
 }
 
+func RegisterDbHandler(h sdb.DbHandler) {
+	sdb.RegisterDbHandler(h)
+}
+
+func RegisterDbDumpHandler(h sdb.DbDumpHandler) {
+	sdb.RegisterDbDumpHandler(h)
+}
+
 func JoinByNodeAddrs(strAddrs string) bool {
 	if strAddrs == "" {
 		logger.Error("strAddrs == \"\"")
@@ -87,13 +93,21 @@
 	if isOk { 
 		logger.Debug("dbSync.Init success")
 
-		if ! syncTableDataFromCluster(clusterID, devID, devIP, devName) {
+		if !syncTableDataFromCluster(clusterID, devID, devIP, devName) {
 			logger.Error("鍔犲叆闆嗙兢澶辫触锛侊紒锛�")
+			if agent != nil {
+				agent.Leave()
+				err := agent.Shutdown()
+				if err != nil {
+					logger.Error("syncTableDataFromCluster err,shutdown err:", err)
+				}
+			}
 			return false
 		}
 	} else {
 		logger.Error("dbSync.Init error")
 		if agent != nil {
+			agent.Leave()
 			err := agent.Shutdown()
 			if err != nil {
 				logger.Error("dbSync.Init err,shutdown err:", err)
@@ -116,21 +130,13 @@
 }
 
 func syncTableDataFromCluster(clusterID, devID, devIP, devName string) bool {
-	var err error
-
-	foreignSql := string("PRAGMA foreign_keys=OFF")
-	_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
-	if err != nil {
-		return false
-	}
-
-	var sqls []string
+	var sqls = []string{"PRAGMA foreign_keys=OFF"}
 	var delSql string
 	for _, t := range syncTables {
-		if t == dBNameTables {
-			delSql = "delete from " + t + " where (analyServerId='' or analyServerId=NULL)"
-		} else if t == dBNameTablePersons {
+		if t == dBNameTablePersons {
 			delSql = "delete from " + t + " where tableId in (select id from dbtables where (analyServerId='' or analyServerId=NULL))"
+		} else if t == dBNameTables {
+			delSql = "delete from " + t + " where (analyServerId='' or analyServerId=NULL)"
 		} else {
 			delSql = "delete from " + t
 		}
@@ -145,29 +151,31 @@
 		}
 	}
 
-	logger.Debug("鎴愬姛娣诲姞褰撳墠鑺傜偣鍒伴泦缇よ妭鐐逛腑")
+	logger.Debug("鎴愬姛鑾峰彇闆嗙兢涓暟鎹�")
 
-	timeUnix := time.Now().Unix()
-	fmtTimeStr := time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05")
-
-	sqlSync := "insert into cluster_node(id,cluster_id,node_name,node_id,node_ip,create_time) values ('" +
-		devID + "','" + clusterID + "','" + devName + "','" + devID + "','" +
-		(devIP + ":" + strconv.Itoa(sdb.DefaultBindPort)) + "','" + fmtTimeStr + "')"
-	sqls = append(sqls, sqlSync)
-
-	_, err = sdb.ExecuteWriteSql(sqls, true)
-	if err != nil {
-		logger.Debug("sdb.ExecuteWriteSql ERROR:", err)
+	//timeUnix := time.Now().Unix()
+	//fmtTimeStr := time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05")
+	//
+	//sqlSync := "insert into cluster_node(id,cluster_id,node_name,node_id,node_ip,create_time) values ('" +
+	//	devID + "','" + clusterID + "','" + devName + "','" + devID + "','" +
+	//	(devIP + ":" + strconv.Itoa(sdb.DefaultBindPort)) + "','" + fmtTimeStr + "')"
+	//sqls = append(sqls, sqlSync)
+	sqls = append(sqls, "PRAGMA foreign_keys=ON")
+	sqlDump := strings.Join(sqls, ";")
+	if !sdb.DbHandle.Execute(sqlDump) {
+		logger.Debug("sdb.DbHandle.Execute ret: false")
 		return false
+	} else {
+		logger.Debug("sdb.DbHandle.Execute ret: true")
 	}
 
-	agent.SyncSql([]string{sqlSync})
+	//agent.SyncSql([]string{sqlSync})
 
-	foreignSql = string("PRAGMA foreign_keys=ON")
-	_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
-	if err != nil {
-		return false
-	}
+	//foreignSql = string("PRAGMA foreign_keys=ON")
+	//_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
+	//if err != nil {
+	//	return false
+	//}
 
 	return true
 }

--
Gitblit v1.8.0