From a1c141010fd616a34494e2b27d675711a8450ebe Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sat, 19 Jun 2021 22:19:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9=E5=85=B3=E8=81=94=E9=9B=86=E7=BE=A4?= =?UTF-8?q?=E7=9A=84Bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/server_dao.go | 33 +++++++++++++-------------- internal/db/models/user_dao.go | 4 ++-- internal/rpc/services/service_user.go | 2 +- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/internal/db/models/server_dao.go b/internal/db/models/server_dao.go index 7bd8ca41..0a1a6e8f 100644 --- a/internal/db/models/server_dao.go +++ b/internal/db/models/server_dao.go @@ -1205,19 +1205,10 @@ func (this *ServerDAO) CheckUserServer(tx *dbs.Tx, userId int64, serverId int64) } // UpdateUserServersClusterId 设置一个用户下的所有服务的所属集群 -func (this *ServerDAO) UpdateUserServersClusterId(tx *dbs.Tx, userId int64, clusterId int64) error { - // 之前的cluster - oldClusterId, err := SharedUserDAO.FindUserClusterId(tx, userId) - if err != nil { - return err - } - if oldClusterId == clusterId { - return nil - } - - _, err = this.Query(tx). +func (this *ServerDAO) UpdateUserServersClusterId(tx *dbs.Tx, userId int64, oldClusterId, newClusterId int64) error { + _, err := this.Query(tx). Attr("userId", userId). - Set("clusterId", clusterId). + Set("clusterId", newClusterId). Update() if err != nil { return err @@ -1232,14 +1223,22 @@ func (this *ServerDAO) UpdateUserServersClusterId(tx *dbs.Tx, userId int64, clus if err != nil { return err } - } - - if clusterId > 0 { - err = SharedNodeTaskDAO.CreateClusterTask(tx, clusterId, NodeTaskTypeConfigChanged) + err = dns.SharedDNSTaskDAO.CreateClusterTask(tx, oldClusterId, dns.DNSTaskTypeClusterChange) if err != nil { return err } - err = SharedNodeTaskDAO.CreateClusterTask(tx, clusterId, NodeTaskTypeIPItemChanged) + } + + if newClusterId > 0 { + err = SharedNodeTaskDAO.CreateClusterTask(tx, newClusterId, NodeTaskTypeConfigChanged) + if err != nil { + return err + } + err = SharedNodeTaskDAO.CreateClusterTask(tx, newClusterId, NodeTaskTypeIPItemChanged) + if err != nil { + return err + } + err = dns.SharedDNSTaskDAO.CreateClusterTask(tx, newClusterId, dns.DNSTaskTypeClusterChange) if err != nil { return err } diff --git a/internal/db/models/user_dao.go b/internal/db/models/user_dao.go index 9c650531..473fb952 100644 --- a/internal/db/models/user_dao.go +++ b/internal/db/models/user_dao.go @@ -108,7 +108,7 @@ func (this *UserDAO) CreateUser(tx *dbs.Tx, username string, password string, fu } // UpdateUser 修改用户 -func (this *UserDAO) UpdateUser(tx *dbs.Tx, userId int64, username string, password string, fullname string, mobile string, tel string, email string, remark string, isOn bool, clusterId int64) error { +func (this *UserDAO) UpdateUser(tx *dbs.Tx, userId int64, username string, password string, fullname string, mobile string, tel string, email string, remark string, isOn bool, nodeClusterId int64) error { if userId <= 0 { return errors.New("invalid userId") } @@ -123,8 +123,8 @@ func (this *UserDAO) UpdateUser(tx *dbs.Tx, userId int64, username string, passw op.Tel = tel op.Email = email op.Remark = remark + op.ClusterId = nodeClusterId op.IsOn = isOn - op.ClusterId = clusterId err := this.Save(tx, op) return err } diff --git a/internal/rpc/services/service_user.go b/internal/rpc/services/service_user.go index baa8f3a5..088d989b 100644 --- a/internal/rpc/services/service_user.go +++ b/internal/rpc/services/service_user.go @@ -53,7 +53,7 @@ func (this *UserService) UpdateUser(ctx context.Context, req *pb.UpdateUserReque } if oldClusterId != req.NodeClusterId { - err = models.SharedServerDAO.UpdateUserServersClusterId(tx, req.UserId, req.NodeClusterId) + err = models.SharedServerDAO.UpdateUserServersClusterId(tx, req.UserId, oldClusterId, req.NodeClusterId) if err != nil { return nil, err }