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 }