# TenantUI 个人中心(第一版)需求草案 > 更新时间:2026-02-09 > 结论来源:当前 Swagger + 数据库表结构与抽样数据(不改代码) ## 1. 背景与目标 当前租户端右上角已新增“个人中心”入口,但页面还是占位。 目标是先定义一版可落地的“个人中心可查询内容”,明确: 1. 哪些内容数据库已有且有数据。 2. 哪些内容前端可直接复用现有接口。 3. 哪些内容需要后端补接口。 ## 2. 当前接口现状(Swagger) 已按规范拉取最新 Swagger:`https://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_roles`、`roles`、`role_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)。