From 95a2187f95b16608f443dafc67f5359b22db0d2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Wed, 25 May 2022 11:44:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96API/=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E9=9B=86=E7=BE=A4=E4=B8=8D=E5=BD=B1=E5=93=8D?= =?UTF-8?q?=E5=A5=97=E9=A4=90=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/node_dao.go | 16 +++++++++++++--- internal/db/models/server_dao.go | 1 + internal/db/models/user_dao.go | 2 +- internal/rpc/services/service_node.go | 2 +- internal/tasks/health_check_executor.go | 2 +- 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 65171504..b38b1059 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -664,13 +664,23 @@ func (this *NodeDAO) FindAllNodeIdsMatch(tx *dbs.Tx, clusterId int64, includeSec } // FindAllEnabledNodesWithClusterId 获取一个集群的所有节点 -func (this *NodeDAO) FindAllEnabledNodesWithClusterId(tx *dbs.Tx, clusterId int64) (result []*Node, err error) { - _, err = this.Query(tx). +func (this *NodeDAO) FindAllEnabledNodesWithClusterId(tx *dbs.Tx, clusterId int64, includeSecondary bool) (result []*Node, err error) { + var query = this.Query(tx) + + if includeSecondary { + query.Where("(clusterId=:primaryClusterId OR JSON_CONTAINS(secondaryClusterIds, :primaryClusterIdString))"). + Param("primaryClusterId", clusterId). + Param("primaryClusterIdString", types.String(clusterId)) + } else { + query.Attr("clusterId", clusterId) + } + + _, err = query. State(NodeStateEnabled). - Attr("clusterId", clusterId). DescPk(). Slice(&result). FindAll() + return } diff --git a/internal/db/models/server_dao.go b/internal/db/models/server_dao.go index 73a15f32..ddd51e8c 100644 --- a/internal/db/models/server_dao.go +++ b/internal/db/models/server_dao.go @@ -1650,6 +1650,7 @@ func (this *ServerDAO) CheckUserServer(tx *dbs.Tx, userId int64, serverId int64) func (this *ServerDAO) UpdateUserServersClusterId(tx *dbs.Tx, userId int64, oldClusterId, newClusterId int64) error { _, err := this.Query(tx). Attr("userId", userId). + Attr("userPlanId", 0). Set("clusterId", newClusterId). Update() if err != nil { diff --git a/internal/db/models/user_dao.go b/internal/db/models/user_dao.go index fd550226..cc32a513 100644 --- a/internal/db/models/user_dao.go +++ b/internal/db/models/user_dao.go @@ -169,7 +169,7 @@ func (this *UserDAO) UpdateUser(tx *dbs.Tx, userId int64, username string, passw if userId <= 0 { return errors.New("invalid userId") } - op := NewUserOperator() + var op = NewUserOperator() op.Id = userId op.Username = username if len(password) > 0 { diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index 43457745..b1abe969 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -400,7 +400,7 @@ func (this *NodeService) FindAllEnabledNodesWithNodeClusterId(ctx context.Contex tx := this.NullTx() - nodes, err := models.SharedNodeDAO.FindAllEnabledNodesWithClusterId(tx, req.NodeClusterId) + nodes, err := models.SharedNodeDAO.FindAllEnabledNodesWithClusterId(tx, req.NodeClusterId, req.IncludeSecondary) if err != nil { return nil, err } diff --git a/internal/tasks/health_check_executor.go b/internal/tasks/health_check_executor.go index 0719261b..fafae227 100644 --- a/internal/tasks/health_check_executor.go +++ b/internal/tasks/health_check_executor.go @@ -52,7 +52,7 @@ func (this *HealthCheckExecutor) Run() ([]*HealthCheckResult, error) { } var results = []*HealthCheckResult{} - nodes, err := models.NewNodeDAO().FindAllEnabledNodesWithClusterId(nil, this.clusterId) + nodes, err := models.NewNodeDAO().FindAllEnabledNodesWithClusterId(nil, this.clusterId, false) if err != nil { return nil, err }