From b6b8cd3ed293dada67f09a600b307f7ad9c2a975 Mon Sep 17 00:00:00 2001 From: naiba <hi@nai.ba> Date: Wed, 21 Sep 2022 10:01:41 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20tag=20=E7=BB=91=E5=AE=9A=E5=85=B3=E7=B3=BB=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/dashboard/controller/member_api.go | 38 ++++++++++++++------------ 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/cmd/dashboard/controller/member_api.go b/cmd/dashboard/controller/member_api.go index aa52b01..8881c38 100644 --- a/cmd/dashboard/controller/member_api.go +++ b/cmd/dashboard/controller/member_api.go @@ -348,23 +348,25 @@ func (ma *memberAPI) addOrEditServer(c *gin.Context) { delete(singleton.SecretToID, singleton.ServerList[s.ID].Secret) } // 如果修改了Tag - if s.Tag != singleton.ServerList[s.ID].Tag { + oldTag := singleton.ServerList[s.ID].Tag + newTag := s.Tag + if newTag != oldTag { index := -1 - for i := 0; i < len(singleton.ServerTagToIDList[s.Tag]); i++ { - if singleton.ServerTagToIDList[s.Tag][i] == s.ID { + for i := 0; i < len(singleton.ServerTagToIDList[oldTag]); i++ { + if singleton.ServerTagToIDList[oldTag][i] == s.ID { index = i break } } if index > -1 { // 删除旧 Tag-ID 绑定关系 - singleton.ServerTagToIDList[singleton.ServerList[s.ID].Tag] = append(singleton.ServerTagToIDList[singleton.ServerList[s.ID].Tag][:index], singleton.ServerTagToIDList[singleton.ServerList[s.ID].Tag][index+1:]...) + singleton.ServerTagToIDList[oldTag] = append(singleton.ServerTagToIDList[oldTag][:index], singleton.ServerTagToIDList[oldTag][index+1:]...) + if len(singleton.ServerTagToIDList[oldTag]) == 0 { + delete(singleton.ServerTagToIDList, oldTag) + } } // 设置新的 Tag-ID 绑定关系 - singleton.ServerTagToIDList[s.Tag] = append(singleton.ServerTagToIDList[s.Tag], s.ID) - if len(singleton.ServerTagToIDList[s.Tag]) == 0 { - delete(singleton.ServerTagToIDList, s.Tag) - } + singleton.ServerTagToIDList[newTag] = append(singleton.ServerTagToIDList[newTag], s.ID) } singleton.ServerList[s.ID] = &s singleton.ServerLock.Unlock() @@ -575,24 +577,26 @@ func (ma *memberAPI) batchUpdateServerGroup(c *gin.Context) { var s model.Server copier.Copy(&s, singleton.ServerList[serverId]) s.Tag = req.Group - // 如果修改了Tag - if s.Tag != singleton.ServerList[s.ID].Tag { + // 如果修改了Ta + oldTag := singleton.ServerList[serverId].Tag + newTag := s.Tag + if newTag != oldTag { index := -1 - for i := 0; i < len(singleton.ServerTagToIDList[s.Tag]); i++ { - if singleton.ServerTagToIDList[s.Tag][i] == s.ID { + for i := 0; i < len(singleton.ServerTagToIDList[oldTag]); i++ { + if singleton.ServerTagToIDList[oldTag][i] == s.ID { index = i break } } if index > -1 { // 删除旧 Tag-ID 绑定关系 - singleton.ServerTagToIDList[singleton.ServerList[s.ID].Tag] = append(singleton.ServerTagToIDList[singleton.ServerList[s.ID].Tag][:index], singleton.ServerTagToIDList[singleton.ServerList[s.ID].Tag][index+1:]...) + singleton.ServerTagToIDList[oldTag] = append(singleton.ServerTagToIDList[oldTag][:index], singleton.ServerTagToIDList[oldTag][index+1:]...) + if len(singleton.ServerTagToIDList[oldTag]) == 0 { + delete(singleton.ServerTagToIDList, oldTag) + } } // 设置新的 Tag-ID 绑定关系 - singleton.ServerTagToIDList[s.Tag] = append(singleton.ServerTagToIDList[s.Tag], s.ID) - if len(singleton.ServerTagToIDList[s.Tag]) == 0 { - delete(singleton.ServerTagToIDList, s.Tag) - } + singleton.ServerTagToIDList[newTag] = append(singleton.ServerTagToIDList[newTag], s.ID) } singleton.ServerList[s.ID] = &s }