feat(1.0):调整未读列表
This commit is contained in:
parent
33af2cc54a
commit
6357e653f8
@ -1793,6 +1793,14 @@ const docTemplate = `{
|
||||
"app.latestMessageData": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"description": "消息内容",
|
||||
"type": "string"
|
||||
},
|
||||
"msg_type": {
|
||||
"description": "消息类型(1:文本 2:图片)",
|
||||
"type": "integer"
|
||||
},
|
||||
"send_time": {
|
||||
"description": "发送时间",
|
||||
"type": "string"
|
||||
|
||||
@ -1785,6 +1785,14 @@
|
||||
"app.latestMessageData": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"content": {
|
||||
"description": "消息内容",
|
||||
"type": "string"
|
||||
},
|
||||
"msg_type": {
|
||||
"description": "消息类型(1:文本 2:图片)",
|
||||
"type": "integer"
|
||||
},
|
||||
"send_time": {
|
||||
"description": "发送时间",
|
||||
"type": "string"
|
||||
|
||||
@ -275,6 +275,12 @@ definitions:
|
||||
type: object
|
||||
app.latestMessageData:
|
||||
properties:
|
||||
content:
|
||||
description: 消息内容
|
||||
type: string
|
||||
msg_type:
|
||||
description: 消息类型(1:文本 2:图片)
|
||||
type: integer
|
||||
send_time:
|
||||
description: 发送时间
|
||||
type: string
|
||||
|
||||
@ -23,6 +23,8 @@ type latestMessageData struct {
|
||||
SenderName string `json:"sender_name"` // 发送人昵称
|
||||
SenderAvatar string `json:"sender_avatar"` // 发送人头像
|
||||
UnreadCount int `json:"unread_count"` // 未读消息数量
|
||||
Content string `json:"content"` // 消息内容
|
||||
MsgType int32 `json:"msg_type"` // 消息类型(1:文本 2:图片)
|
||||
}
|
||||
|
||||
type latestMessageByAppIdResponse struct {
|
||||
@ -81,6 +83,8 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
|
||||
SendTime time.Time `json:"send_time"`
|
||||
AvatarURL string `json:"avatar_url"`
|
||||
UnreadCount int `json:"unread_count"`
|
||||
Content string `json:"content"` // 消息内容
|
||||
MsgType int32 `json:"msg_type"` // 消息类型(1:文本 2:图片)
|
||||
}
|
||||
|
||||
var results []unreadMessageResult
|
||||
@ -102,12 +106,18 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
|
||||
return
|
||||
}
|
||||
|
||||
subQuery := h.db.GetDbR().Table("app_message_log").
|
||||
Select("sender_id, MAX(send_time) as latest_time").
|
||||
Where("app_id = ? AND sender_id != ?", req.AppID, "888888").
|
||||
Group("sender_id")
|
||||
|
||||
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 COUNT(*) FROM app_message_log WHERE sender_id = m.sender_id AND is_read = 0) as unread_count").
|
||||
Select("m.send_time, m.content, m.msg_type, m.sender_id, m.sender_name, 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").
|
||||
Joins("JOIN (?) as latest ON m.sender_id = latest.sender_id AND m.send_time = latest.latest_time", subQuery).
|
||||
Where("m.app_id = ? AND m.sender_id != ?", req.AppID, "888888").
|
||||
Group("m.sender_id").
|
||||
Order("send_time DESC").
|
||||
Group("m.sender_id").
|
||||
Offset((req.Page - 1) * req.PageSize).
|
||||
Limit(req.PageSize).
|
||||
Find(&results).
|
||||
@ -143,6 +153,8 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
|
||||
SenderName: v.SenderName,
|
||||
SenderAvatar: v.AvatarURL,
|
||||
UnreadCount: v.UnreadCount,
|
||||
Content: v.Content,
|
||||
MsgType: v.MsgType,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ func (d *dbRepo) DbWClose() error {
|
||||
}
|
||||
|
||||
func dbConnect(user, pass, addr, dbName string) (*gorm.DB, error) {
|
||||
dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=%t&loc=%s",
|
||||
dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=%t&loc=%s&sql_mode=TRADITIONAL",
|
||||
user,
|
||||
pass,
|
||||
addr,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user