M7-12 P0 | listSessions 缺少 isDeleted 过滤 + 分页元数据 + isPinned 排序 #100

Closed
opened 2026-06-06 17:12:45 +08:00 by wangdl · 1 comment
Owner

发现位置

rag-chat.service.ts L83-112 listSessions 方法。

问题 1: 未过滤 isDeleted

const where: any = { userId };
// 缺少: where.isDeleted = false

已删除的会话会出现在列表中。

问题 2: 未返回分页元数据

当前只返回 ChatSession[],API Contract 要求:

{ "data": [...], "meta": { "page": 1, "limit": 20, "total": 42 } }

问题 3: 未按 isPinned 优先排序

当前 orderBy: { updatedAt: 'desc' },但设计文档要求:

  1. isPinned === true 优先
  2. 同优先级按 lastMessageAt DESC

修复方案

  1. where.isDeleted = false(默认排除已删除)
  2. 查询 total count,构建 PaginatedResponse
  3. 两级排序:orderBy: [{ isPinned: 'desc' }, { lastMessageAt: 'desc' }]
  4. lastMessageAt 替代 updatedAt 排序

涉及文件

文件 变更
src/modules/rag-chat/rag-chat.service.ts listSessions 修复
## 发现位置 `rag-chat.service.ts` L83-112 `listSessions` 方法。 ### 问题 1: 未过滤 isDeleted ```typescript const where: any = { userId }; // 缺少: where.isDeleted = false ``` 已删除的会话会出现在列表中。 ### 问题 2: 未返回分页元数据 当前只返回 `ChatSession[]`,API Contract 要求: ```json { "data": [...], "meta": { "page": 1, "limit": 20, "total": 42 } } ``` ### 问题 3: 未按 isPinned 优先排序 当前 `orderBy: { updatedAt: 'desc' }`,但设计文档要求: 1. `isPinned === true` 优先 2. 同优先级按 `lastMessageAt DESC` ## 修复方案 1. `where.isDeleted = false`(默认排除已删除) 2. 查询 total count,构建 `PaginatedResponse` 3. 两级排序:`orderBy: [{ isPinned: 'desc' }, { lastMessageAt: 'desc' }]` 4. 用 `lastMessageAt` 替代 `updatedAt` 排序 ## 涉及文件 | 文件 | 变更 | |------|------| | src/modules/rag-chat/rag-chat.service.ts | listSessions 修复 |
wangdl added this to the M7:ChatScope 会话系统 — 学习对象绑定的上下文会话 milestone 2026-06-06 17:12:45 +08:00
Author
Owner

修复

  • where 增加 isDeleted: false(默认排除已删除)
  • isArchived 过滤生效
  • 排序改为 [{isPinned: desc}, {lastMessageAt: desc}]
  • 返回格式改为 {data, meta: {page, limit, total}}
  • 并行执行 findMany + count

涉及: rag-chat.service.ts

## 修复 - where 增加 isDeleted: false(默认排除已删除) - isArchived 过滤生效 - 排序改为 [{isPinned: desc}, {lastMessageAt: desc}] - 返回格式改为 {data, meta: {page, limit, total}} - 并行执行 findMany + count 涉及: rag-chat.service.ts
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#100
No description provided.