feat(1.0):调整未读列表

This commit is contained in:
summer 2025-10-20 14:21:42 +08:00
parent ba0630b2da
commit 5156a25019
4 changed files with 17 additions and 31 deletions

View File

@ -1808,10 +1808,6 @@ const docTemplate = `{
"sender_name": { "sender_name": {
"description": "发送人昵称", "description": "发送人昵称",
"type": "string" "type": "string"
},
"unread_count": {
"description": "未读数量",
"type": "integer"
} }
} }
}, },

View File

@ -1800,10 +1800,6 @@
"sender_name": { "sender_name": {
"description": "发送人昵称", "description": "发送人昵称",
"type": "string" "type": "string"
},
"unread_count": {
"description": "未读数量",
"type": "integer"
} }
} }
}, },

View File

@ -287,9 +287,6 @@ definitions:
sender_name: sender_name:
description: 发送人昵称 description: 发送人昵称
type: string type: string
unread_count:
description: 未读数量
type: integer
type: object type: object
app.listData: app.listData:
properties: properties:

View File

@ -22,7 +22,6 @@ type latestMessageData struct {
SenderID string `json:"sender_id"` // 发送人ID SenderID string `json:"sender_id"` // 发送人ID
SenderName string `json:"sender_name"` // 发送人昵称 SenderName string `json:"sender_name"` // 发送人昵称
SenderAvatar string `json:"sender_avatar"` // 发送人头像 SenderAvatar string `json:"sender_avatar"` // 发送人头像
UnreadCount int64 `json:"unread_count"` // 未读数量
} }
type latestMessageByAppIdResponse struct { type latestMessageByAppIdResponse struct {
@ -76,20 +75,19 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
} }
type unreadMessageResult struct { type unreadMessageResult struct {
SenderID string `json:"sender_id"` SenderID string `json:"sender_id"`
SenderName string `json:"sender_name"` SenderName string `json:"sender_name"`
SendTime time.Time `json:"send_time"` SendTime time.Time `json:"send_time"`
AvatarURL string `json:"avatar_url"` AvatarURL string `json:"avatar_url"`
UnreadCount int64 `json:"unread_count"`
} }
var results []unreadMessageResult var results []unreadMessageResult
var total int64 var total int64
countErr := h.db.GetDbR().Table("app_message_log m"). countErr := h.db.GetDbR().Table("app_message_log m").
Select("m.send_time, m.sender_id, m.sender_name, u.user_avatar as avatar_url, COUNT(*) as unread_count"). Select("m.send_time, m.sender_id, m.sender_name, u.user_avatar as avatar_url").
Joins("LEFT JOIN app_user u ON m.sender_id = u.user_id"). Joins("LEFT JOIN app_user u ON m.sender_id = u.user_id").
Where("m.app_id = ? AND m.sender_id != ? AND m.is_read = 1", req.AppID, "888888"). Where("m.app_id = ? AND m.sender_id != ?", req.AppID, "888888").
Group("m.sender_id"). Group("m.sender_id").
Count(&total). Count(&total).
Error Error
@ -103,11 +101,11 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
} }
resultErr := h.db.GetDbR().Table("app_message_log m"). 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, COUNT(*) as unread_count"). 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").
Joins("LEFT JOIN app_user u ON m.sender_id = u.user_id"). Joins("LEFT JOIN app_user u ON m.sender_id = u.user_id").
Where("m.app_id = ? AND m.sender_id != ? AND m.is_read = 1", req.AppID, "888888"). Where("m.app_id = ? AND m.sender_id != ?", req.AppID, "888888").
Group("m.sender_id"). Group("m.sender_id").
Order("unread_count DESC"). Order("send_time DESC").
Offset((req.Page - 1) * req.PageSize). Offset((req.Page - 1) * req.PageSize).
Limit(req.PageSize). Limit(req.PageSize).
Find(&results). Find(&results).
@ -122,14 +120,14 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
} }
// 自动标记该appid下的所有消息为已读管理端访问时 // 自动标记该appid下的所有消息为已读管理端访问时
_, err := h.writeDB.AppMessageLog.WithContext(ctx.RequestContext()). //_, err := h.writeDB.AppMessageLog.WithContext(ctx.RequestContext()).
Where(h.writeDB.AppMessageLog.AppID.Eq(req.AppID)). // Where(h.writeDB.AppMessageLog.AppID.Eq(req.AppID)).
Where(h.writeDB.AppMessageLog.IsRead.Eq(0)). // Where(h.writeDB.AppMessageLog.IsRead.Eq(0)).
Update(h.writeDB.AppMessageLog.IsRead, 1) // Update(h.writeDB.AppMessageLog.IsRead, 1)
if err != nil { //if err != nil {
// 记录错误但不影响查询结果 // // 记录错误但不影响查询结果
// TODO: 可以添加日志记录 // // TODO: 可以添加日志记录
} //}
res.Page = req.Page res.Page = req.Page
res.PageSize = req.PageSize res.PageSize = req.PageSize
@ -142,7 +140,6 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
SenderID: v.SenderID, SenderID: v.SenderID,
SenderName: v.SenderName, SenderName: v.SenderName,
SenderAvatar: v.AvatarURL, SenderAvatar: v.AvatarURL,
UnreadCount: v.UnreadCount,
} }
} }