From 33af2cc54ac9790aa7c7425d64e26911b01ec814 Mon Sep 17 00:00:00 2001 From: summer <> Date: Mon, 20 Oct 2025 15:20:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(1.0):=E8=B0=83=E6=95=B4=E6=9C=AA=E8=AF=BB?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docs.go | 4 ++++ docs/swagger.json | 4 ++++ docs/swagger.yaml | 3 +++ internal/api/app/app_latest_messages.go | 13 ++++++++----- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/docs/docs.go b/docs/docs.go index 8fb11b0..89177cb 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1808,6 +1808,10 @@ const docTemplate = `{ "sender_name": { "description": "发送人昵称", "type": "string" + }, + "unread_count": { + "description": "未读消息数量", + "type": "integer" } } }, diff --git a/docs/swagger.json b/docs/swagger.json index a35ec05..a8897f1 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -1800,6 +1800,10 @@ "sender_name": { "description": "发送人昵称", "type": "string" + }, + "unread_count": { + "description": "未读消息数量", + "type": "integer" } } }, diff --git a/docs/swagger.yaml b/docs/swagger.yaml index ff7d2ee..d531bcb 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -287,6 +287,9 @@ definitions: sender_name: description: 发送人昵称 type: string + unread_count: + description: 未读消息数量 + type: integer type: object app.listData: properties: diff --git a/internal/api/app/app_latest_messages.go b/internal/api/app/app_latest_messages.go index 0302b5e..1fbe8aa 100644 --- a/internal/api/app/app_latest_messages.go +++ b/internal/api/app/app_latest_messages.go @@ -22,6 +22,7 @@ type latestMessageData struct { SenderID string `json:"sender_id"` // 发送人ID SenderName string `json:"sender_name"` // 发送人昵称 SenderAvatar string `json:"sender_avatar"` // 发送人头像 + UnreadCount int `json:"unread_count"` // 未读消息数量 } type latestMessageByAppIdResponse struct { @@ -75,10 +76,11 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc { } type unreadMessageResult struct { - SenderID string `json:"sender_id"` - SenderName string `json:"sender_name"` - SendTime time.Time `json:"send_time"` - AvatarURL string `json:"avatar_url"` + SenderID string `json:"sender_id"` + SenderName string `json:"sender_name"` + SendTime time.Time `json:"send_time"` + AvatarURL string `json:"avatar_url"` + UnreadCount int `json:"unread_count"` } var results []unreadMessageResult @@ -101,7 +103,7 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc { } resultErr := h.db.GetDbR().Table("app_message_log m"). - Select("max(m.send_time) as send_time, m.sender_id, max(m.sender_name) as sender_name, max(u.user_avatar) as avatar_url"). + Select("max(m.send_time) as send_time, m.sender_id, max(m.sender_name) as sender_name, max(u.user_avatar) as avatar_url, (SELECT COUNT(*) FROM app_message_log WHERE sender_id = m.sender_id AND is_read = 0) as unread_count"). Joins("LEFT JOIN app_user u ON m.sender_id = u.user_id"). Where("m.app_id = ? AND m.sender_id != ?", req.AppID, "888888"). Group("m.sender_id"). @@ -140,6 +142,7 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc { SenderID: v.SenderID, SenderName: v.SenderName, SenderAvatar: v.AvatarURL, + UnreadCount: v.UnreadCount, } }