fix(observability): 治理SSE慢请求虚报、客户端取消日志污染、退款重试刷屏与会话计数慢查询

This commit is contained in:
yml2213
2026-09-10 20:02:54 +08:00
parent ee0e70ccad
commit 784ffb5f72
7 changed files with 24 additions and 8 deletions
@@ -1,6 +1,7 @@
package chat
import (
"context"
"errors"
"net/http"
@@ -10,6 +11,9 @@ import (
)
func writeChatError(c *gin.Context, err error) {
if errors.Is(err, context.Canceled) || errors.Is(c.Request.Context().Err(), context.Canceled) {
return
}
response.RecordError(c, err)
switch {
case errors.Is(err, ErrDependencyUnavailable):
+1 -1
View File
@@ -229,6 +229,7 @@ func (r *Repository) listAdminConversations(ctx context.Context, principal Princ
var rows []conversationRow
offset := (page - 1) * pageSize
queryDB := r.adminConversationBase(ctx, principal, keyword).
Joins("LEFT JOIN chat_messages AS lm ON lm.id = c.last_message_id").
Select(`c.id, c.order_id, c.listing_id, c.type, c.support_scene, c.title, c.status, c.last_message_id,
c.last_message_preview, c.last_message_at, c.created_at, c.updated_at,
COALESCE(cp_me.role, 'admin') AS role,
@@ -302,7 +303,6 @@ func (r *Repository) adminConversationBase(ctx context.Context, principal Princi
db := r.db.WithContext(ctx).Table("chat_conversations AS c").
Joins("LEFT JOIN chat_participants AS cp_me ON cp_me.conversation_id = c.id AND cp_me.participant_type = ? AND cp_me.participant_id = ?", principal.Type, principal.ID).
Joins("LEFT JOIN chat_admin_conversation_states AS cas ON cas.conversation_id = c.id AND cas.admin_user_id = ?", principal.ID).
Joins("LEFT JOIN chat_messages AS lm ON lm.id = c.last_message_id").
Joins("LEFT JOIN rental_orders AS explicit_lo ON explicit_lo.id = c.order_id").
Joins("LEFT JOIN rental_listings AS l ON l.id = COALESCE(explicit_lo.listing_id, c.listing_id)")
if keyword != "" {