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 }