From daac628c64069633787588372dea22499ac35396 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期三, 18 十月 2023 16:52:56 +0800
Subject: [PATCH] 修复集群功能

---
 system-service/serf/handler.go |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/system-service/serf/handler.go b/system-service/serf/handler.go
index c5546db..c9689a3 100644
--- a/system-service/serf/handler.go
+++ b/system-service/serf/handler.go
@@ -4,6 +4,7 @@
 	"basic.com/valib/logger.git"
 	"basic.com/valib/serf.git/serf"
 	"encoding/json"
+	"fmt"
 	"github.com/golang/protobuf/proto"
 	"github.com/hashicorp/memberlist"
 	"github.com/satori/go.uuid"
@@ -239,7 +240,7 @@
 func HandleEventMemberLeave(ev serf.MemberEvent) {
 	if ev.Members != nil && len(ev.Members) == 1 {
 		leaveMember := ev.Members[0]
-		leaveSql := "update cluster_node set isDelete=1 where node_id='" + leaveMember.Name + "'"
+		leaveSql := "update cluster_node set isDelete=1,drift_state='' where node_id='" + leaveMember.Name + "'"
 		flag, e := executeSqlByGorm([]string{leaveSql})
 
 		logger.Info("EventMemberLeave,current Members:", ev.Members)
@@ -260,8 +261,13 @@
 
 func HandleEventMemberJoin(ev serf.MemberEvent) {
 	if ev.Members != nil && len(ev.Members) == 1 {
-		leaveMember := ev.Members[0]
-		joinSql := "update cluster_node set isDelete=0 where node_id='" + leaveMember.Name + "'"
+		joinMember := ev.Members[0]
+
+		timeUnix := time.Now().Unix()
+		fmtTimeStr := time.Unix(timeUnix, 0).Format("2006-01-02 15:04:05")
+
+		//joinSql := "update cluster_node set isDelete=0 where node_id='" + leaveMember.Name + "'"
+		joinSql := fmt.Sprintf("update cluster_node set isDelete=0,drift_state='',node_ip='%s',create_time='%s' where node_id='%s'", joinMember.Addr.String()+":"+strconv.Itoa(int(joinMember.Port)), fmtTimeStr, joinMember.Name)
 		flag, e := executeSqlByGorm([]string{joinSql})
 
 		logger.Info("EventMemberJoin,current Members:", ev.Members)
@@ -276,6 +282,6 @@
 		if e != nil {
 			logErr = e.Error()
 		}
-		executeSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('" + uuid.NewV4().String() + "','" + logLT + "','" + logT + "','" + logSql + "','" + leaveMember.Name + "'," + logResult + ",'" + logErr + "')"})
+		executeSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('" + uuid.NewV4().String() + "','" + logLT + "','" + logT + "','" + logSql + "','" + joinMember.Name + "'," + logResult + ",'" + logErr + "')"})
 	}
 }

--
Gitblit v1.8.0