From 803d0c6344b8c9a15c3c1d6e64851d891aa32ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Wed, 23 Dec 2020 19:44:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7=E6=89=80?= =?UTF-8?q?=E5=B1=9E=E9=9B=86=E7=BE=A4=E7=9A=84=E6=97=B6=E5=80=99=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E4=BF=AE=E6=94=B9=E5=85=B6=E4=B8=8B=E7=9A=84=E6=89=80?= =?UTF-8?q?=E6=9C=89=E6=9C=8D=E5=8A=A1=E6=89=80=E5=B1=9E=E9=9B=86=E7=BE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/node_dao.go | 1 + internal/db/models/server_dao.go | 9 +++++++++ internal/rpc/services/service_node.go | 15 ++++++++------- internal/rpc/services/service_server.go | 17 +++++++++++++++++ internal/rpc/services/service_user.go | 23 +++++++++++++++++++++++ 5 files changed, 58 insertions(+), 7 deletions(-) diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index d405da53..13eb815b 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -148,6 +148,7 @@ func (this *NodeDAO) IncreaseAllNodesLatestVersionMatch(clusterId int64) error { Attr("clusterId", clusterId). Set("latestVersion", dbs.SQL("latestVersion+1")). Update() + return err } diff --git a/internal/db/models/server_dao.go b/internal/db/models/server_dao.go index 703cfc21..d6345250 100644 --- a/internal/db/models/server_dao.go +++ b/internal/db/models/server_dao.go @@ -1055,6 +1055,15 @@ func (this *ServerDAO) CheckUserServer(serverId int64, userId int64) error { return nil } +// 设置一个用户下的所有服务的所属集群 +func (this *ServerDAO) UpdateUserServersClusterId(userId int64, clusterId int64) error { + _, err := this.Query(). + Attr("userId", userId). + Set("clusterId", clusterId). + Update() + return err +} + // 生成DNS Name func (this *ServerDAO) genDNSName() (string, error) { for { diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index 0cbf3c60..695f8559 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -1142,13 +1142,14 @@ func (this *NodeService) FindEnabledNodeDNS(ctx context.Context, req *pb.FindEna return &pb.FindEnabledNodeDNSResponse{ Node: &pb.NodeDNSInfo{ - Id: int64(node.Id), - Name: node.Name, - IpAddr: ipAddr, - Routes: pbRoutes, - NodeClusterId: clusterId, - DnsDomainId: dnsDomainId, - DnsDomainName: dnsDomainName, + Id: int64(node.Id), + Name: node.Name, + IpAddr: ipAddr, + Routes: pbRoutes, + NodeClusterId: clusterId, + NodeClusterDNSName: clusterDNS.DnsName, + DnsDomainId: dnsDomainId, + DnsDomainName: dnsDomainName, }, }, nil } diff --git a/internal/rpc/services/service_server.go b/internal/rpc/services/service_server.go index bc097462..84106a64 100644 --- a/internal/rpc/services/service_server.go +++ b/internal/rpc/services/service_server.go @@ -645,6 +645,22 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn } } + // 用户信息 + var pbUser *pb.User = nil + if server.UserId > 0 { + user, err := models.SharedUserDAO.FindEnabledBasicUser(int64(server.UserId)) + if err != nil { + return nil, err + } + if user != nil { + pbUser = &pb.User{ + Id: int64(user.Id), + Username: user.Username, + Fullname: user.Fullname, + } + } + } + return &pb.FindEnabledServerResponse{Server: &pb.Server{ Id: int64(server.Id), IsOn: server.IsOn == 1, @@ -671,6 +687,7 @@ func (this *ServerService) FindEnabledServer(ctx context.Context, req *pb.FindEn Name: clusterName, }, Groups: pbGroups, + User: pbUser, }}, nil } diff --git a/internal/rpc/services/service_user.go b/internal/rpc/services/service_user.go index 3de55ef3..3397efdb 100644 --- a/internal/rpc/services/service_user.go +++ b/internal/rpc/services/service_user.go @@ -37,10 +37,33 @@ func (this *UserService) UpdateUser(ctx context.Context, req *pb.UpdateUserReque return nil, err } + oldClusterId, err := models.SharedUserDAO.FindUserClusterId(req.UserId) + if err != nil { + return nil, err + } + err = models.SharedUserDAO.UpdateUser(req.UserId, req.Username, req.Password, req.Fullname, req.Mobile, req.Tel, req.Email, req.Remark, req.IsOn, req.NodeClusterId) if err != nil { return nil, err } + + if oldClusterId != req.NodeClusterId { + err = models.SharedServerDAO.UpdateUserServersClusterId(req.UserId, req.NodeClusterId) + if err != nil { + return nil, err + } + + err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(oldClusterId) + if err != nil { + return nil, err + } + + err = models.SharedNodeDAO.IncreaseAllNodesLatestVersionMatch(req.NodeClusterId) + if err != nil { + return nil, err + } + } + return this.Success() }