From 546d23f0ec50be30824d5a58ff5281ff6e21adbb Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期三, 25 十二月 2019 09:15:39 +0800
Subject: [PATCH] a

---
 sync.go |   84 +++++++++++-------------------------------
 1 files changed, 22 insertions(+), 62 deletions(-)

diff --git a/sync.go b/sync.go
index 328683b..438a3cb 100755
--- a/sync.go
+++ b/sync.go
@@ -1,4 +1,5 @@
 package androidSync
+//package main
 
 import (
 	sdb "basic.com/Android/syncdb.git"
@@ -8,40 +9,43 @@
 	"strings"
 	"time"
 )
+type ReceiveSqlInterface2 interface {
+	sdb.ReceiveSqlInterface
+}
 
-/*
-	姣忔寮�鏈哄悗閮戒細璋冪敤璇ユ帴鍙o紝璇ユ帴鍙d細鍘绘煡璇㈡暟鎹簱锛岀‘瀹炰箣鍓嶆槸鍚﹀凡缁忓姞鍏ヨ繃闆嗙兢锛岃嫢鏄凡缁忓姞鍏ラ泦缇わ紝鍒欏紑鏈鸿嚜鍔ㄥ姞鍏�
- */
+func RegisterReceiveSqlInterfaceFromJava(c ReceiveSqlInterface2) {
+	sdb.RegisterReceiveSqlInterface(c)
+}
+
 func InitAgent(devID string) bool {
+	var nodeIps []string
 	sqlFindAllCluster := string("select * from " + dBNameCluster)
 	clusters, err := sdb.ExecuteQuerySql([]string{sqlFindAllCluster})
-	if err == nil && clusters != nil && len(clusters) > 0 {
+	if err == nil && clusters != nil && len(clusters) > 0 && clusters[0].Values != nil {
 		c := clusters[0]
+
 		sqlFindNodesByClusterId := string("select * from " + dBNameClusterNode + " where cluster_id='" + c.Values[0][1].(string) + "'")
 		nodes, err := sdb.ExecuteQuerySql([]string{sqlFindNodesByClusterId})
 		if err == nil && nodes != nil && len(nodes) > 0 {
-			var nodeIps []string
 			for _, n := range nodes {
-				if n.Values[0][3].(string) != devID {
+				if n.Values != nil && n.Values[0][3].(string) != devID {
 					nodeIps = append(nodeIps, n.Values[0][4].(string))
 				}
 			}
-			agent, err = sdb.Init(c.Values[0][0].(string), c.Values[0][2].(string), devID, nodeIps)
-			if agent != nil {
-				logger.Debug("sync.Agent init success!")
-			} else {
-				logger.Debug("sync.Agent init fail!")
-			}
 		}
+
+		//agent, err = sdb.Init(c.Values[0][0].(string), c.Values[0][2].(string), devID, nodeIps)
+		//if agent != nil {
+		//	logger.Debug("sync.Agent init success!")
+		//} else {
+		//	logger.Debug("sync.Agent init fail!")
+		//}
+
 	}
 
 	return true
 }
 
-/*
-	涔嬪墠娌℃湁闆嗙兢銆傝皟鐢ㄦ鎺ュ彛杩涜闆嗙兢鍒濆鍖栵紝浼犲叆闆嗙兢鍏朵粬鑺傜偣鐨刬p锛屼究浜庡垵濮嬪寲鍚庣洿鎺ュ姞鍏ラ泦缇�
-	strAddrs = "ip1:port1;ip2:port2;ip3:port3"
-*/
 func SyncInit(clusterID string, password string, nodeID string, strAddrs string) bool {
 	var ips []string
 	if strAddrs == "" {
@@ -61,10 +65,6 @@
 	return true
 }
 
-/*
-	鍒濆鍖栨椂锛岃嫢娌¤兘鍔犲叆闆嗙兢锛屽彲浠ラ�氳繃璇ユ帴鍙e姞鍏ラ泦缇ゃ��
-	strAddrs = "ip1:port1;ip2:port2;ip3:port3"
-*/
 func JoinByNodeAddrs(strAddrs string) bool {
 	if strAddrs == "" {
 		logger.Error("strAddrs == \"\"")
@@ -80,15 +80,11 @@
 	return true
 }
 
-/*
-	鍔犲叆闆嗙兢锛屽寘鍚垵濮嬪寲鑺傜偣SyncInit锛屽苟鏍规嵁浼犲叆鐨勯泦缇ゅ叾浠栬妭鐐瑰垪琛ㄨ嚜鍔ㄥ姞鍏ラ泦缇�
-	strAddrs = "ip1:port1;ip2:port2;ip3:port3"
-*/
 func JoinCluster(clusterID, password, strAddrs, devID, devIP, devName string) bool {
 
 	isOk := SyncInit(clusterID, password, devID, strAddrs)
 
-	if isOk { //鍔犲叆鎴愬姛
+	if isOk { 
 		logger.Debug("dbSync.Init success")
 
 		if ! syncTableDataFromCluster(clusterID, devID, devIP, devName) {
@@ -109,22 +105,6 @@
 	return true
 }
 
-/*
-	鍔犲叆闆嗙兢鍚庯紝鍙互閫氳繃璇ユ帴鍙h幏鍙栭泦缇ょ殑鑺傜偣淇℃伅锛屼笉杩囨渶濂界洿鎺ユ煡鍚屾搴撶殑闆嗙兢鑺傜偣琛�
-json vector
-[
-{Node1},
-{Node2},
-...
-{Noden}
-]
-type NodeInfo struct {
-	ClusterID   string `json:"clusterID"`
-	NodeID      string `json:"nodeID"`
-	NodeAddress string `json:"nodeAddress"`
-	IsAlive     int    `json:"isAlive"` //StatusNone:0, StatusAlive:1, StatusLeaving:2, StatusLeft:3, StatusFailed:4
-}
-*/
 func GetNodes() []byte {
 	nodes := agent.GetNodes()
 	strNode, err := json.Marshal(nodes)
@@ -135,20 +115,15 @@
 	return strNode
 }
 
-/*
-	鍔犲叆闆嗙兢鍚�, 娓呯┖鏈湴鐨勫悓姝ュ簱鏁版嵁,骞朵粠闆嗙兢鎷夊彇鏈�鏂扮殑鍚屾搴撴暟鎹�
- */
 func syncTableDataFromCluster(clusterID, devID, devIP, devName string) bool {
 	var err error
 
-	//0.鍏抽棴reference
 	foreignSql := string("PRAGMA foreign_keys=OFF")
 	_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
 	if err != nil {
 		return false
 	}
 
-	//1.鍒犻櫎鏈湴鐨勫悓姝ュ簱鏁版嵁
 	var sqls []string
 	var delSql string
 	for _, t := range syncTables {
@@ -162,7 +137,6 @@
 		sqls = append(sqls, delSql)
 	}
 
-	//2.鎷夊彇闆嗙兢鍐呯殑鍚屾搴撴暟鎹埌鏈湴鏁版嵁搴撹〃涓�
 	var dumpSqls *[]string
 	dumpSqls, err = agent.GetTableDataFromCluster(syncTables)
 	if dumpSqls != nil {
@@ -173,7 +147,6 @@
 
 	logger.Debug("鎴愬姛娣诲姞褰撳墠鑺傜偣鍒伴泦缇よ妭鐐逛腑")
 
-	//3.灏嗘湰鑺傜偣鍔犲叆鍒拌妭鐐瑰垪琛ㄤ腑
 	timeUnix := time.Now().Unix()
 	fmtTimeStr := time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05")
 
@@ -182,17 +155,14 @@
 		(devIP + ":" + strconv.Itoa(sdb.DefaultBindPort)) + "','" + fmtTimeStr + "')"
 	sqls = append(sqls, sqlSync)
 
-	//4. 鍐欏叆鏁版嵁搴�
 	_, err = sdb.ExecuteWriteSql(sqls, true)
 	if err != nil {
 		logger.Debug("sdb.ExecuteWriteSql ERROR:", err)
 		return false
 	}
 
-	//5. 鍚屾璇ヨ妭鐐瑰埌闆嗙兢
 	agent.SyncSql([]string{sqlSync})
 
-	//6.寮�鍚痳eference
 	foreignSql = string("PRAGMA foreign_keys=ON")
 	_, err = sdb.ExecuteWriteSql([]string{foreignSql}, false)
 	if err != nil {
@@ -202,10 +172,6 @@
 	return true
 }
 
-/*
-	鎿嶄綔鏁版嵁搴撳悗锛岄渶瑕佽皟鐢ㄨ鎺ュ彛灏嗗搴旂殑sql璇彞鍚屾鍒伴泦缇�
-	strSql = "sql1;sql2;sql3;...;sqln"
- */
 func SyncSql(strSql string) {
 
 	sqls := strings.Split(strSql, ";")
@@ -213,9 +179,6 @@
 	agent.SyncSql(sqls)
 }
 
-/*
-	鏇存柊闆嗙兢鐨勫悕瀛�
- */
 func UpdateClusterName(clusterName, clusterID string) bool {
 	sql := string("update cluster set cluster_name='" + clusterName + "' where cluster_id='" + clusterID + "'")
 	_, err := sdb.ExecuteWriteSql([]string{sql}, false)
@@ -226,9 +189,6 @@
 	return true
 }
 
-/*
-	閫�鍑洪泦缇�
- */
 func Leave() bool {
 
 	if agent != nil {
@@ -249,4 +209,4 @@
 	}
 
 	return true
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0