From c02c0ac5e06ee1a556107baa071ef0c80a387a13 Mon Sep 17 00:00:00 2001
From: liuxiaolong <736321739@qq.com>
Date: 星期六, 28 九月 2019 10:34:43 +0800
Subject: [PATCH] rm ltime save and get from sqlite

---
 dbself.go |   89 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 70 insertions(+), 19 deletions(-)

diff --git a/dbself.go b/dbself.go
index c2c1826..49c4d34 100644
--- a/dbself.go
+++ b/dbself.go
@@ -6,13 +6,17 @@
 	"os"
 	"os/exec"
 	"path/filepath"
+	"strconv"
 	"strings"
 	"sync"
 	"github.com/jinzhu/gorm"
+	"basic.com/valib/logger.git"
 )
 
 const (
 	PersonSqliteDBPath = "~/workspace/gitblit/dbserver/config/testdb.db"
+	DbT_TableName = "dbtables"
+	DBP_TableName = "dbtablepersons"
 )
 
 var syncMut sync.Mutex
@@ -25,15 +29,15 @@
 		dbPath = PersonSqliteDBPath
 	}
 
-	fmt.Println("self: ========>", dbPath)
+	logger.Info("self: ========>", dbPath)
 	db, err := New(dbPath, "", false)
 	if err != nil {
-		fmt.Println("new db database: ", err)
+		logger.Error("new db database: ", err)
 		return err
 	}
 	dbConn, err := db.Connect()
 	if err != nil {
-		fmt.Println("new db conn error; ", err)
+		logger.Error("new db conn error; ", err)
 		return err
 	}
 
@@ -46,21 +50,21 @@
 
 	path, err := getCurrentPath()
 	if err != nil {
-		fmt.Println("getCurrentPath error; ", err)
+		logger.Error("getCurrentPath error; ", err)
 		return "", err
 	}
 
 	filepath := path + "tmp.db"
-	fmt.Println("filepath:", filepath)
+	logger.Info("filepath:", filepath)
 	db, err := New(filepath, "", false)
 	if err != nil {
-		fmt.Println("new db database: ", err)
+		logger.Error("new db database: ", err)
 		return "", err
 	}
 
 	tmpconn, err := db.Connect()
 	if err != nil {
-		fmt.Println("new db conn error; ", err)
+		logger.Error("new db conn error; ", err)
 		return "", err
 	}
 	defer tmpconn.Close()
@@ -78,7 +82,7 @@
 	defer syncMut.Unlock()
 	allResults, err := SerfDbConn.Execute(sqlString, false, false)
 	if err != nil {
-		fmt.Println("execute error!", err)
+		logger.Error("execute error!", err)
 		return nil, err
 	}
 	return allResults, nil
@@ -95,7 +99,7 @@
 	defer syncMut.Unlock()
 	rows, err := SerfDbConn.Query(sqlString, false, false)
 	if err != nil {
-		fmt.Println("execute error!", err)
+		logger.Error("execute error!", err)
 		return nil, err
 	}
 	return rows, nil
@@ -114,11 +118,12 @@
 		}()
 		for _,sql :=range sqls {
 			result := tx.Exec(sql)
-			if result.Error !=nil {
+			err = result.Error
+			if err !=nil {
 				return false,result.Error
 			}
 			if result.RowsAffected == 0{
-				fmt.Println("ExecuteSqlByGorm fail")
+				logger.Error("ExecuteSqlByGorm fail")
 				return false,errors.New("ExecuteSqlByGorm fail")
 			}
 		}
@@ -126,6 +131,39 @@
 		return true,nil
 	}
 	return false,errors.New("localDb is nil")
+}
+
+type SyncSerf struct {
+	LamportTime string `json:"lamport_time"`
+}
+
+func QueryLTimeFromDbByGorm() uint64 {
+	if localDb != nil {
+		var syncSerf []SyncSerf
+		err := localDb.Raw("select * from sync_serf").Scan(&syncSerf).Error
+		if err == nil {
+			if len(syncSerf) > 0{
+				ltStr := syncSerf[0].LamportTime
+				logger.Info("db.LamportTime str:", ltStr)
+				t, e := strconv.ParseUint(ltStr, 10, 64)
+				if e != nil {
+					logger.Error("db.LamportTime parseUint err:", e)
+				} else {
+					curLTime = t
+				}
+				logger.Info("db.LamportTime:", ltStr)
+			}else {
+				err = localDb.Exec("insert into sync_serf values('0')").Error
+				if err !=nil {
+					logger.Error("sync_serf lamport_time init err:",err)
+				}
+			}
+
+		} else {
+			logger.Error("get db.LamportTime err:", err)
+		}
+	}
+	return 0
 }
 
 type TableDesc struct {
@@ -155,7 +193,7 @@
 			if err !=nil {
 				return nil,errors.New("tableDesc err")
 			}
-			fmt.Println(table,"'Columns is:",tDescArr)
+			logger.Info(table,"'Columns is:",tDescArr)
 			if tDescArr == nil || len(tDescArr) == 0 {
 				return nil,errors.New(table+" has no column")
 			}
@@ -163,11 +201,24 @@
 			for _,col :=range tDescArr {
 				columnNames = append(columnNames, fmt.Sprintf(`'||quote("%s")||'`, col.Name))
 			}
-			tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' as sql FROM "%s";`,
-				table,
-				strings.Join(columnNames, ","),
-				table)
-			fmt.Println("tSql:",tSql)
+			if table == DbT_TableName {
+				tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' as sql FROM "%s" where (analyServerId='' or analyServerId is NULL);`,
+					table,
+					strings.Join(columnNames, ","),
+					table)
+			} else if table == DBP_TableName {
+				tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' as sql FROM "%s" where tableId in (select id from dbTables where (analyServerId='' or analyServerId is NULL));`,
+					table,
+					strings.Join(columnNames, ","),
+					table)
+			} else {
+				tSql = fmt.Sprintf(`SELECT 'INSERT INTO "%s" VALUES(%s)' as sql FROM "%s";`,
+					table,
+					strings.Join(columnNames, ","),
+					table)
+			}
+
+			logger.Info("tSql:",tSql)
 
 			err = localDb.Raw(tSql).Scan(&dumpSql).Error
 			if err !=nil {
@@ -190,9 +241,9 @@
 
 	var b strings.Builder
 	if err := SerfDbConn.Dump(&b); err != nil {
-		fmt.Println("dump file ", err.Error())
+		logger.Error("dump file ", err.Error())
 	}
-	fmt.Printf("%T\n", b)
+	logger.Info("%T\n", b)
 }
 
 // get current path

--
Gitblit v1.8.0