mirror of
https://github.com/MirageNetwork/MirageServer.git
synced 2025-09-26 20:41:34 +08:00
修改全局setLastState;在驾驶舱删除司南时的操作进行调整,但疑似还存在偶发问题,大概跟并发有关系,需要后续跟进处理
Signed-off-by: Chenyang Gao <gps949@outlook.com>
This commit is contained in:
@@ -504,6 +504,9 @@ func (h *Mirage) Serve(ctrlChn chan CtrlMsg) error {
|
||||
case "update-config":
|
||||
log.Info().Msg("Received update-config message, updating config")
|
||||
h.cfg = msg.SysCfg
|
||||
case "set-last-update":
|
||||
log.Info().Msg("Received set-last-update message, updating last update time")
|
||||
h.setLastStateChangeToNow()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -610,7 +613,7 @@ func (h *Mirage) setLastStateChangeToNow() {
|
||||
if h.lastStateChange == nil {
|
||||
h.lastStateChange = xsync.NewMapOf[time.Time]()
|
||||
}
|
||||
h.lastStateChange.Store(user.Name, now)
|
||||
h.lastStateChange.Store(user.StableID, now)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -646,7 +649,7 @@ func (h *Mirage) getLastStateChange(users ...User) time.Time {
|
||||
// are past, then use the entier list of users and look for the last update
|
||||
if len(users) > 0 {
|
||||
for _, user := range users {
|
||||
if lastChange, ok := h.lastStateChange.Load(user.Name); ok {
|
||||
if lastChange, ok := h.lastStateChange.Load(user.StableID); ok {
|
||||
times = append(times, lastChange)
|
||||
}
|
||||
}
|
||||
|
@@ -238,7 +238,7 @@ func (c *Cockpit) RevokeAdmin(
|
||||
return
|
||||
}
|
||||
sysAdmin := c.GetAdmin()
|
||||
err := c.db.Delete(sysAdmin).Error
|
||||
err := c.db.Delete(&sysAdmin).Error
|
||||
if err != nil {
|
||||
c.doAPIResponse(w, "解绑超级管理员失败", nil)
|
||||
return
|
||||
|
@@ -371,7 +371,7 @@ func (c *Cockpit) CAPIDelNaviNode(
|
||||
}
|
||||
// TODO: 是否有必要做远程关闭?
|
||||
|
||||
if err := c.db.Delete(naviNode).Error; err != nil {
|
||||
if err := c.db.Delete(&naviNode).Error; err != nil {
|
||||
c.doAPIResponse(w, "数据库删除司南节点失败:"+err.Error(), nil)
|
||||
return
|
||||
}
|
||||
@@ -379,5 +379,8 @@ func (c *Cockpit) CAPIDelNaviNode(
|
||||
delete(c.App.DERPseqnum, naviID)
|
||||
// c.App.LoadDERPMapFromURL(c.App.cfg.DERPURL)
|
||||
|
||||
c.CtrlChn <- CtrlMsg{
|
||||
Msg: "set-last-update",
|
||||
}
|
||||
c.CAPIQueryDERP(w, r)
|
||||
}
|
||||
|
@@ -375,7 +375,7 @@ func (m *Mirage) CAPIDelNaviNode(
|
||||
}
|
||||
// TODO: 是否有必要做远程关闭?
|
||||
|
||||
if err := m.db.Delete(naviNode).Error; err != nil {
|
||||
if err := m.db.Delete(&naviNode).Error; err != nil {
|
||||
m.doAPIResponse(w, "数据库删除司南节点失败:"+err.Error(), nil)
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user