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": {
"description": "发送人昵称",
"type": "string"
},
"unread_count": {
"description": "未读数量",
"type": "integer"
}
}
},

View File

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

View File

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

View File

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