5.0 KiB
5.0 KiB
TenantUI 个人中心(第一版)需求草案
更新时间:2026-02-09
结论来源:当前 Swagger + 数据库表结构与抽样数据(不改代码)
1. 背景与目标
当前租户端右上角已新增“个人中心”入口,但页面还是占位。
目标是先定义一版可落地的“个人中心可查询内容”,明确:
- 哪些内容数据库已有且有数据。
- 哪些内容前端可直接复用现有接口。
- 哪些内容需要后端补接口。
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(先做,首版上线)
- 我的账号
- 账号、昵称、头像、手机号、邮箱、注册时间。
- 数据源:
identity_users。
- 账号安全
- 最近登录时间、登录失败次数、锁定状态、是否强制改密。
- 数据源:
identity_users。
- 我的角色与权限概览
- 角色名称/编码、权限数量。
- 数据源:
user_roles、roles、role_permissions。
- 我的归属信息
- 租户名称、商户名称、商户状态、套餐名称、到期时间。
- 数据源:
identity_users+tenants+merchants+tenant_subscriptions+tenant_packages。
P1(增强)
- 套餐与配额
- 门店数、账号数、存储、短信、订单额度(上限/已用)。
- 数据源:
tenant_packages+tenant_quota_usages。
- 账单与支付
- 最近账单、应付/实付、支付状态、支付方式、支付时间。
- 数据源:
tenant_billing_statements+tenant_payments。
- 资质状态摘要
- 资质类型、审核状态、到期提醒。
- 数据源:
merchant_documents。
P2(后续)
- 消息中心:通知、公告、已读状态。
- 我的操作日志:只看当前用户自身操作。
- 变更与审核轨迹:用于追溯关键操作。
5. 页面信息架构建议(前端)
个人中心建议拆 4 个标签页:
基础信息账号安全套餐与配额账单与记录
首版可先渲染前两页,后两页按接口进度逐步放开。
6. 接口落地建议(给后端)
建议补 1 个聚合接口 + 若干分页子接口,减少前端拼装成本。
6.1 聚合接口(建议优先)
GET /api/tenant/v1/personal/overview- 返回:账号信息 + 安全信息 + 归属信息 + 套餐摘要 + 配额摘要。
6.2 子接口(按需)
GET /api/tenant/v1/personal/rolesGET /api/tenant/v1/personal/billing/statementsGET /api/tenant/v1/personal/billing/paymentsGET /api/tenant/v1/personal/operationsGET /api/tenant/v1/personal/notifications
7. 安全与展示口径
- 手机号、邮箱建议脱敏展示(如
135****5407)。 - 严禁返回密码哈希、完整敏感审计参数。
- 日志类接口默认仅返回“当前登录用户可见范围”。
- 所有 ID 在前端按字符串处理,避免 long 精度问题。
8. 推荐实施顺序
- 后端先给
personal/overview。 - 前端完成“基础信息 + 账号安全”可用页。
- 再接“套餐配额”和“账单记录”分页。
- 最后补“消息与操作轨迹”。
如确认本草案,可继续输出:
- 字段级 DTO 草案(请求/响应)。
- 页面原型字段清单(每个卡片显示哪些字段)。
- 前后端任务拆分(按 P0/P1/P2)。