Files
Neo-ZQYY/docs/prd/specs/P10-tenant-admin-web.md

4.5 KiB
Raw Permalink Blame History

P10租户管理后台 — tenant-admin-web

优先级P10依赖 P1 + P3可与 P4-P9 并行) 预估工作量:中等


需求Requirements

用户故事

  1. 作为租户管理员,我需要独立的 Web 管理后台来审核用户申请。
  2. 作为租户管理员,我需要管理用户(编辑身份、店铺归属、关联助教)。
  3. 作为租户管理员,我需要上传 Excel 数据(财务支出/团购收入/助教奖罚/充值业绩归属)。
  4. 作为租户管理员,上传 Excel 时如果发现主键冲突,我需要逐条确认替换或保留(类似 diff 交互)。
  5. 作为系统,租户管理员只能看到自己租户下的店铺数据。

验收标准

  • AC1租户管理后台是独立 Web 应用,独立登录入口
  • AC2租户管理员只能看到自己租户下的店铺和用户
  • AC3用户审核页面申请列表、状态筛选、球房ID+手机号关联建议、审核操作
  • AC4Excel 上传校验:必填、金额精度、表头格式、类型合法
  • AC5主键冲突时前端展示 diff 交互,逐条确认后保存
  • AC6助教奖罚支持同一助教同月多笔

设计要点

技术栈

  • 独立 Web 应用React + Vite + Ant Designapps/admin-web/ 同技术栈)
  • 部署路径:apps/tenant-admin/
  • 后端复用 apps/backend/ 的 FastAPI新增租户管理路由模块

登录体系

  • 独立凭据:每个租户有若干管理员账号(用户名+密码)
  • 租户级管理员:可管理租户下所有店铺
  • 店铺级管理员:只能管理指定店铺
  • 与系统管理后台(apps/admin-web/)完全隔离

Excel 4 种模板

1. 财务支出(按月)

列名 类型 必填 说明
月份 YYYY-MM 提交月份
支出类别 文本 房租/水电/物业/食品饮料进货/耗材/报销/固定人员工资/其他费用
金额 数值(2) 支出金额
备注 文本

主键:月份 + 支出类别

2. 团购平台收入(按月)

列名 类型 必填 说明
月份 YYYY-MM
平台名称 文本
收入金额 数值(2)
备注 文本

主键:月份 + 平台名称

3. 助教奖罚(按月)

列名 类型 必填 说明
月份 YYYY-MM
助教姓名 文本
助教编号 文本
类型 文本 扣款/奖金
金额 数值(2)
原因 文本

主键:月份 + 助教姓名 + 助教编号 + 类型 + 原因(同一助教同月可多笔)

4. 充值业绩归属(按月)

列名 类型 必填 说明
充值日期 YYYY-MM-DD
会员名称 文本
充值金额 数值(2)
归属助教 文本
奖励金额 数值(2)

主键:充值日期 + 会员名称 + 归属助教

冲突处理流程

上传 Excel → 后端解析+校验 → 返回校验结果
  ├── 无冲突 → 直接写入
  └── 有冲突 → 返回冲突列表(旧值 vs 新值)
        → 前端展示 diff 交互
        → 用户逐条选择"替换"或"保留"
        → 提交确认 → 后端按选择写入

新建表

biz.salary_adjustments
  - id, site_id, assistant_id, assistant_name, assistant_number
  - salary_month, adjustment_type (deduction/bonus)
  - amount, reason
  - upload_batch_id, created_at

biz.excel_upload_log
  - id, site_id, upload_type (expense/platform_income/salary_adj/recharge_commission)
  - file_name, uploaded_by, row_count
  - conflict_count, resolved_count
  - status (pending/confirmed/failed)
  - created_at

任务清单

  • T1创建 apps/tenant-admin/ 项目骨架React + Vite + Ant Design
  • T2实现租户管理员登录独立凭据
  • T3实现用户审核页面申请列表 + 状态筛选 + 关联建议 + 审核操作)
  • T4实现用户管理页面用户列表 + 身份编辑 + 店铺归属)
  • T5创建 biz.salary_adjustments + biz.excel_upload_log
  • T6实现 Excel 上传后端(解析 + 校验 + 冲突检测)
  • T7实现 Excel 上传前端(模板下载 + 上传 + diff 交互 + 确认)
  • T8实现 4 种 Excel 模板的校验规则
  • T9实现助教姓名+编号匹配校验(对照 dim_assistant