feat: 实时消息与管理端运营能力

新增群聊/私信与公共 WebSocket 总线,站长用户内容档案,并将通知与待审角标改为推送驱动;同步精简管理仪表盘并修复主题换肤 DOM 冲突。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-15 22:58:16 +08:00
parent 29db9ae9b5
commit 42c395a864
55 changed files with 7607 additions and 346 deletions

View File

@@ -3,7 +3,9 @@ package handler
import (
"errors"
"net/http"
"strings"
"github.com/freefire/jiang13-bbs/realtime"
"github.com/freefire/jiang13-bbs/service"
"github.com/gin-gonic/gin"
)
@@ -40,5 +42,11 @@ func (h *Handlers) UpdateSettings(c *gin.Context) {
c.JSON(http.StatusInternalServerError, gin.H{"error": "保存站点设置失败"})
return
}
c.JSON(http.StatusOK, gin.H{"ok": true, "accent": req.Accent})
// 归一化后的值实时广播:所有在线客户端立即热换肤,无需 F5 或等轮询
saved := strings.ToLower(strings.TrimSpace(req.Accent))
h.Hub.BroadcastAll(realtime.Envelope{
Type: realtime.EventSettingsChanged,
Data: map[string]string{"accent": saved},
})
c.JSON(http.StatusOK, gin.H{"ok": true, "accent": saved})
}