mirror of
https://github.com/nezhahq/nezha.git
synced 2025-02-02 01:28:13 -05:00
🐛 修复更新 tag 绑定关系导致的问题
This commit is contained in:
parent
3aada1798b
commit
b6b8cd3ed2
@ -348,23 +348,25 @@ func (ma *memberAPI) addOrEditServer(c *gin.Context) {
|
|||||||
delete(singleton.SecretToID, singleton.ServerList[s.ID].Secret)
|
delete(singleton.SecretToID, singleton.ServerList[s.ID].Secret)
|
||||||
}
|
}
|
||||||
// 如果修改了Tag
|
// 如果修改了Tag
|
||||||
if s.Tag != singleton.ServerList[s.ID].Tag {
|
oldTag := singleton.ServerList[s.ID].Tag
|
||||||
|
newTag := s.Tag
|
||||||
|
if newTag != oldTag {
|
||||||
index := -1
|
index := -1
|
||||||
for i := 0; i < len(singleton.ServerTagToIDList[s.Tag]); i++ {
|
for i := 0; i < len(singleton.ServerTagToIDList[oldTag]); i++ {
|
||||||
if singleton.ServerTagToIDList[s.Tag][i] == s.ID {
|
if singleton.ServerTagToIDList[oldTag][i] == s.ID {
|
||||||
index = i
|
index = i
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if index > -1 {
|
if index > -1 {
|
||||||
// 删除旧 Tag-ID 绑定关系
|
// 删除旧 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 绑定关系
|
// 设置新的 Tag-ID 绑定关系
|
||||||
singleton.ServerTagToIDList[s.Tag] = append(singleton.ServerTagToIDList[s.Tag], s.ID)
|
singleton.ServerTagToIDList[newTag] = append(singleton.ServerTagToIDList[newTag], s.ID)
|
||||||
if len(singleton.ServerTagToIDList[s.Tag]) == 0 {
|
|
||||||
delete(singleton.ServerTagToIDList, s.Tag)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
singleton.ServerList[s.ID] = &s
|
singleton.ServerList[s.ID] = &s
|
||||||
singleton.ServerLock.Unlock()
|
singleton.ServerLock.Unlock()
|
||||||
@ -575,24 +577,26 @@ func (ma *memberAPI) batchUpdateServerGroup(c *gin.Context) {
|
|||||||
var s model.Server
|
var s model.Server
|
||||||
copier.Copy(&s, singleton.ServerList[serverId])
|
copier.Copy(&s, singleton.ServerList[serverId])
|
||||||
s.Tag = req.Group
|
s.Tag = req.Group
|
||||||
// 如果修改了Tag
|
// 如果修改了Ta
|
||||||
if s.Tag != singleton.ServerList[s.ID].Tag {
|
oldTag := singleton.ServerList[serverId].Tag
|
||||||
|
newTag := s.Tag
|
||||||
|
if newTag != oldTag {
|
||||||
index := -1
|
index := -1
|
||||||
for i := 0; i < len(singleton.ServerTagToIDList[s.Tag]); i++ {
|
for i := 0; i < len(singleton.ServerTagToIDList[oldTag]); i++ {
|
||||||
if singleton.ServerTagToIDList[s.Tag][i] == s.ID {
|
if singleton.ServerTagToIDList[oldTag][i] == s.ID {
|
||||||
index = i
|
index = i
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if index > -1 {
|
if index > -1 {
|
||||||
// 删除旧 Tag-ID 绑定关系
|
// 删除旧 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 绑定关系
|
// 设置新的 Tag-ID 绑定关系
|
||||||
singleton.ServerTagToIDList[s.Tag] = append(singleton.ServerTagToIDList[s.Tag], s.ID)
|
singleton.ServerTagToIDList[newTag] = append(singleton.ServerTagToIDList[newTag], s.ID)
|
||||||
if len(singleton.ServerTagToIDList[s.Tag]) == 0 {
|
|
||||||
delete(singleton.ServerTagToIDList, s.Tag)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
singleton.ServerList[s.ID] = &s
|
singleton.ServerList[s.ID] = &s
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user