Files
TakeoutSaaS.Prototypes/personal-center-prd.md

5.0 KiB
Raw Blame History

TenantUI 个人中心(第一版)需求草案

更新时间2026-02-09
结论来源:当前 Swagger + 数据库表结构与抽样数据(不改代码)

1. 背景与目标

当前租户端右上角已新增“个人中心”入口,但页面还是占位。
目标是先定义一版可落地的“个人中心可查询内容”,明确:

  1. 哪些内容数据库已有且有数据。
  2. 哪些内容前端可直接复用现有接口。
  3. 哪些内容需要后端补接口。

2. 当前接口现状Swagger

已按规范拉取最新 Swaggerhttps://api-tenant-dev.laosankeji.com/swagger/v1/swagger.json

当前仅 7 个路径:

  • /api/tenant/v1/auth/login
  • /api/tenant/v1/auth/menu
  • /api/tenant/v1/auth/permissions
  • /api/tenant/v1/auth/profile
  • /api/tenant/v1/auth/refresh
  • /api/tenant/v1/Health
  • /api/tenant/v1/merchant/info

结论:个人中心能直接用的接口主要是 /auth/profile/auth/permissions/merchant/info

3. 数据源盘点(按库)

3.1 账号与权限takeout_identity

  • identity_users:账号、昵称、头像、手机号、邮箱、最后登录、失败次数、锁定时间、是否强制改密、状态、门户。
  • user_roles + roles:用户角色关系、角色名称与角色编码。
  • permissions + role_permissions:权限项和角色权限关系。

3.2 商户与租户takeout_app

  • merchants:品牌名、联系方式、经营模式、状态、是否冻结、加入/审核时间等。
  • merchant_documents:资质类型、状态、证号、有效期。
  • tenant_subscriptions + tenant_packages:套餐名、生效/到期、续费、计费日期。
  • tenant_quota_usages:额度上限与已用量。
  • tenant_billing_statements + tenant_payments:账单与支付记录。
  • tenants:租户基础信息(名称、联系人、状态、有效期等)。

3.3 日志与记录takeout_logs

  • operation_logs:操作类型、操作对象、操作者、成功与否、时间。
  • merchant_audit_logs:商户审核动作历史。
  • merchant_change_logs:商户字段变更历史。
  • tenant_audit_logs:租户审核动作历史。

4. 个人中心可查询内容建议(优先级)

P0先做首版上线

  1. 我的账号
    • 账号、昵称、头像、手机号、邮箱、注册时间。
    • 数据源:identity_users
  2. 账号安全
    • 最近登录时间、登录失败次数、锁定状态、是否强制改密。
    • 数据源:identity_users
  3. 我的角色与权限概览
    • 角色名称/编码、权限数量。
    • 数据源:user_rolesrolesrole_permissions
  4. 我的归属信息
    • 租户名称、商户名称、商户状态、套餐名称、到期时间。
    • 数据源:identity_users + tenants + merchants + tenant_subscriptions + tenant_packages

P1增强

  1. 套餐与配额
    • 门店数、账号数、存储、短信、订单额度(上限/已用)。
    • 数据源:tenant_packages + tenant_quota_usages
  2. 账单与支付
    • 最近账单、应付/实付、支付状态、支付方式、支付时间。
    • 数据源:tenant_billing_statements + tenant_payments
  3. 资质状态摘要
    • 资质类型、审核状态、到期提醒。
    • 数据源:merchant_documents

P2后续

  1. 消息中心:通知、公告、已读状态。
  2. 我的操作日志:只看当前用户自身操作。
  3. 变更与审核轨迹:用于追溯关键操作。

5. 页面信息架构建议(前端)

个人中心建议拆 4 个标签页:

  1. 基础信息
  2. 账号安全
  3. 套餐与配额
  4. 账单与记录

首版可先渲染前两页,后两页按接口进度逐步放开。

6. 接口落地建议(给后端)

建议补 1 个聚合接口 + 若干分页子接口,减少前端拼装成本。

6.1 聚合接口(建议优先)

  • GET /api/tenant/v1/personal/overview
    • 返回:账号信息 + 安全信息 + 归属信息 + 套餐摘要 + 配额摘要。

6.2 子接口(按需)

  • GET /api/tenant/v1/personal/roles
  • GET /api/tenant/v1/personal/billing/statements
  • GET /api/tenant/v1/personal/billing/payments
  • GET /api/tenant/v1/personal/operations
  • GET /api/tenant/v1/personal/notifications

7. 安全与展示口径

  1. 手机号、邮箱建议脱敏展示(如 135****5407)。
  2. 严禁返回密码哈希、完整敏感审计参数。
  3. 日志类接口默认仅返回“当前登录用户可见范围”。
  4. 所有 ID 在前端按字符串处理,避免 long 精度问题。

8. 推荐实施顺序

  1. 后端先给 personal/overview
  2. 前端完成“基础信息 + 账号安全”可用页。
  3. 再接“套餐配额”和“账单记录”分页。
  4. 最后补“消息与操作轨迹”。

如确认本草案,可继续输出:

  • 字段级 DTO 草案(请求/响应)。
  • 页面原型字段清单(每个卡片显示哪些字段)。
  • 前后端任务拆分(按 P0/P1/P2