feat(1.0):调整未读列表
This commit is contained in:
parent
33af2cc54a
commit
6357e653f8
@ -1793,6 +1793,14 @@ const docTemplate = `{
|
|||||||
"app.latestMessageData": {
|
"app.latestMessageData": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"content": {
|
||||||
|
"description": "消息内容",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"msg_type": {
|
||||||
|
"description": "消息类型(1:文本 2:图片)",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"send_time": {
|
"send_time": {
|
||||||
"description": "发送时间",
|
"description": "发送时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|||||||
@ -1785,6 +1785,14 @@
|
|||||||
"app.latestMessageData": {
|
"app.latestMessageData": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"content": {
|
||||||
|
"description": "消息内容",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"msg_type": {
|
||||||
|
"description": "消息类型(1:文本 2:图片)",
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"send_time": {
|
"send_time": {
|
||||||
"description": "发送时间",
|
"description": "发送时间",
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|||||||
@ -275,6 +275,12 @@ definitions:
|
|||||||
type: object
|
type: object
|
||||||
app.latestMessageData:
|
app.latestMessageData:
|
||||||
properties:
|
properties:
|
||||||
|
content:
|
||||||
|
description: 消息内容
|
||||||
|
type: string
|
||||||
|
msg_type:
|
||||||
|
description: 消息类型(1:文本 2:图片)
|
||||||
|
type: integer
|
||||||
send_time:
|
send_time:
|
||||||
description: 发送时间
|
description: 发送时间
|
||||||
type: string
|
type: string
|
||||||
|
|||||||
@ -23,6 +23,8 @@ type latestMessageData struct {
|
|||||||
SenderName string `json:"sender_name"` // 发送人昵称
|
SenderName string `json:"sender_name"` // 发送人昵称
|
||||||
SenderAvatar string `json:"sender_avatar"` // 发送人头像
|
SenderAvatar string `json:"sender_avatar"` // 发送人头像
|
||||||
UnreadCount int `json:"unread_count"` // 未读消息数量
|
UnreadCount int `json:"unread_count"` // 未读消息数量
|
||||||
|
Content string `json:"content"` // 消息内容
|
||||||
|
MsgType int32 `json:"msg_type"` // 消息类型(1:文本 2:图片)
|
||||||
}
|
}
|
||||||
|
|
||||||
type latestMessageByAppIdResponse struct {
|
type latestMessageByAppIdResponse struct {
|
||||||
@ -81,6 +83,8 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
|
|||||||
SendTime time.Time `json:"send_time"`
|
SendTime time.Time `json:"send_time"`
|
||||||
AvatarURL string `json:"avatar_url"`
|
AvatarURL string `json:"avatar_url"`
|
||||||
UnreadCount int `json:"unread_count"`
|
UnreadCount int `json:"unread_count"`
|
||||||
|
Content string `json:"content"` // 消息内容
|
||||||
|
MsgType int32 `json:"msg_type"` // 消息类型(1:文本 2:图片)
|
||||||
}
|
}
|
||||||
|
|
||||||
var results []unreadMessageResult
|
var results []unreadMessageResult
|
||||||
@ -102,12 +106,18 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
|
|||||||
return
|
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").
|
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("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").
|
Where("m.app_id = ? AND m.sender_id != ?", req.AppID, "888888").
|
||||||
Group("m.sender_id").
|
|
||||||
Order("send_time DESC").
|
Order("send_time DESC").
|
||||||
|
Group("m.sender_id").
|
||||||
Offset((req.Page - 1) * req.PageSize).
|
Offset((req.Page - 1) * req.PageSize).
|
||||||
Limit(req.PageSize).
|
Limit(req.PageSize).
|
||||||
Find(&results).
|
Find(&results).
|
||||||
@ -143,6 +153,8 @@ func (h *handler) LatestMessageByAppId() core.HandlerFunc {
|
|||||||
SenderName: v.SenderName,
|
SenderName: v.SenderName,
|
||||||
SenderAvatar: v.AvatarURL,
|
SenderAvatar: v.AvatarURL,
|
||||||
UnreadCount: v.UnreadCount,
|
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) {
|
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,
|
user,
|
||||||
pass,
|
pass,
|
||||||
addr,
|
addr,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user