This commit is contained in:
2026-06-30 10:43:11 +07:00
parent d9c8e3930b
commit 6e284e66fa
10 changed files with 247 additions and 51 deletions

View File

@@ -13,8 +13,8 @@ import (
"gorm.io/gorm"
)
func chatMessageDTO(m models.ChatMessage, staffName string) fiber.Map {
return fiber.Map{
func chatMessageDTO(m models.ChatMessage, staffName string) map[string]any {
return map[string]any{
"id": m.ID,
"staffId": m.StaffID,
"studentRkId": m.StudentRkID,

View File

@@ -58,15 +58,15 @@ func (h *WsHub) PushChatToStudent(studentRkID int64, data map[string]any) {
}
func (h *WsHub) PushChatToStaff(staffID uint, data map[string]any) {
h.mu.RLock()
addrs := append([]string(nil), h.teachersByStaff[staffID]...)
h.mu.RUnlock()
if data == nil {
data = map[string]any{}
}
data["targetStaffId"] = staffID
msg := SocketMsg{Event: "chat:message", Data: data}
for _, addr := range addrs {
h.mu.RLock()
t, found := h.teachers[addr]
h.mu.RUnlock()
if found && t != nil {
h.mu.RLock()
defer h.mu.RUnlock()
for _, t := range h.teachers {
if t != nil && t.Role == "teacher" {
_ = t.Conn.WriteJSON(msg)
}
}