Files
rlz/docs/多角色系统需求目录.md
renjianbo 805ed0298b feat: 新增多角色系统(派单/分润/推广/区域)
- 后端:RlzDispatch/Profit/Promotion/Region 控制器、服务、Mapper、领域模型
- 权限:MethodSecurityConfig + PermissionInterceptor
- 管理后台:派单/分润/推广/区域 页面与 API
- Android 陪护端:派单/运营/退款 Fragment 及布局
- 小程序:推广员子包、派单/运营/退款/检索子包、自定义 tabBar
- 文档:多角色系统方案、角色权限矩阵、用户操作手册等

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-10-12 00:09:45 +08:00

9.0 KiB
Raw Permalink Blame History

多角色系统与分润 — 需求拆解目录

基于《多角色系统与分润方案.md》 用于任务分配和进度追踪


1. 安全整改(前置)

  • 1.1 JWT 签名密钥强化 → 迁移到环境变量,使用强随机密钥
  • 1.2 微信支付密钥迁移 → APIv3 Key / RSA 私钥移出源码,从环境变量读取
  • 1.3 生产环境加固 → 关闭 Druid 监控面板 / Swagger API 文档的外网访问
  • 1.4 短信接口限流 → 单手机号每分钟 N 次,单 IP 每日 N 次
  • 1.5 日志脱敏 → sys_oper_log 和 System.out.print 过滤手机号、密码、验证码

2. 数据库

2.1 新建表

  • 2.1.1 rlz_promotion_relation — 推广关系表(promoter_id, invited_user_id, level, parent_promoter_id)
  • 2.1.2 rlz_profit_record — 分润记录表(order_id, user_id, role_type, profit_type, amount, rate, status)
  • 2.1.3 rlz_promoter_config — 推广佣金配置表(config_key, config_value, description)
  • 2.1.4 rlz_region — 运营区域表(name, parent_id, level, manager_id, status)

2.2 现有表扩展

  • 2.2.1 sys_user — userType 枚举扩展(00/03/04/05/06/C/B),新增 promotion_code、parent_promoter_id、region_id
  • 2.2.2 rlz_order — 新增 promoter_id、dispatch_type(auto/manual)、dispatcher_id
  • 2.2.3 sys_menu — 新增推广端、调度端、客服端、运营端菜单项
  • 2.2.4 sys_role — 新增运营经理(03)、客服(04)、调度(05)、推广员(06) 角色记录

3. 后端(Spring Boot)

3.1 推广服务 RlzPromotionService

  • 3.1.1 生成唯一邀请码接口
  • 3.1.2 绑定推广关系接口(扫码/链接 → 写入 rlz_promotion_relation)
  • 3.1.3 查询推广数据接口(邀请人数、团队层级、推广订单数)
  • 3.1.4 查询推广团队接口(一/二/三级下级列表)

3.2 分润引擎 RlzProfitService

  • 3.2.1 分润计算核心逻辑(陪诊师 80% + 调度 1~2% + 推广三级 5/3/2%)
  • 3.2.2 支付回调集成 → 订单支付成功自动触发分润计算
  • 3.2.3 分润记录写入 rlz_profit_record
  • 3.2.4 分润结算接口(管理员确认 → 更新各角色余额 → 生成 jiaoyi_detail)
  • 3.2.5 分润记录查询接口(按角色/订单/时间筛选)
  • 3.2.6 运营经理区域流水月结逻辑

3.3 调度服务 RlzDispatchService

  • 3.3.1 待接单订单列表接口(status=0)
  • 3.3.2 手动指派陪诊师接口(绑定 bId + dispatch_type=manual + dispatcher_id)
  • 3.3.3 改派接口(更换 bId,记录改派日志)
  • 3.3.4 区域内的陪诊师列表接口(供调度选择)

3.4 区域服务 RlzRegionService

  • 3.4.1 区域 CRUD(省/市/区三级)
  • 3.4.2 区域绑定运营经理
  • 3.4.3 区域订单/流水统计接口

3.5 权限改造

  • 3.5.1 各角色 @PreAuthorize 注解补充(目前约 95% 接口无细粒度权限)
  • 3.5.2 数据权限隔离(运营经理只看本区域数据,陪诊师只看自己的订单)
  • 3.5.3 小程序端接口角色校验(userType 匹配检查)

3.6 新增 Controller

  • 3.6.1 RlzPromotionController — /system/promotion/*
  • 3.6.2 RlzProfitController — /system/profit/*
  • 3.6.3 RlzDispatchController — /system/dispatch/*
  • 3.6.4 RlzRegionController — /system/region/*

4. 管理后台(Vue2)

4.1 角色与权限

  • 4.1.1 用户管理 → 增加 userType 多选下拉筛选(全角色)
  • 4.1.2 用户管理 → 新增/编辑用户时可分配多角色
  • 4.1.3 角色管理 → 新增运营经理/客服/调度/推广员角色及对应菜单权限

4.2 推广管理

  • 4.2.1 推广员列表页(搜索、筛选、邀请人数、推广订单数、佣金总额)
  • 4.2.2 推广关系树查看(某个推广员的上下级关系图)
  • 4.2.3 推广佣金记录(按推广员/时间/订单查看佣金明细)

4.3 调度管理

  • 4.3.1 调度面板(待接单列表 + 区域筛选 + 超时标红)
  • 4.3.2 手动指派弹窗(选择区域内空闲陪诊师 + 确认指派)
  • 4.3.3 改派操作(已指派订单 → 更换陪诊师 + 原因记录)

4.4 客服工单

  • 4.4.1 退款审核列表(status=5 申请退款订单)
  • 4.4.2 退款审核操作(通过 → status=6 退款中 / 驳回 → status 回退 + 驳回原因)
  • 4.4.3 工单处理记录(每笔工单的处理人、处理时间、处理结果)

4.5 财务扩展

  • 4.5.1 分润管理页(全角色分润记录 + 筛选 + 汇总统计)
  • 4.5.2 结算管理页(待结算列表 + 单个/批量结算 + 打款确认)
  • 4.5.3 平台配置页(推广佣金比例、调度分润比例、运营分润比例、自动结算开关)

4.6 运营看板

  • 4.6.1 区域数据总览(各区域订单量、流水、陪诊师数、推广员数)
  • 4.6.2 订单趋势图(按日/周/月聚合,折线图)
  • 4.6.3 陪诊师服务排行(柱状图,按接单数/收入排序)
  • 4.6.4 推广效果排行(邀请人数/推广收入排行)

4.7 区域管理

  • 4.7.1 区域列表页(省/市/区三级树形结构)
  • 4.7.2 区域新增/编辑/删除 + 绑定运营经理

5. 微信小程序

5.1 基础设施

  • 5.1.1 自定义 TabBar 组件(custom-tab-bar/,根据 userType 动态渲染底部导航)
  • 5.1.2 注册页 → 增加身份选择(我需要服务 / 我提供服务 / 我推广赚佣金)
  • 5.1.3 我的页 → 增加"身份管理"入口 + 当前角色标识 + 角色切换
  • 5.1.4 首页 → 根据 userType 展示不同的首页内容
  • 5.1.5 app.json → 注册新子包路径(pages-promoter、pages-work)

5.2 推广端子包 pages-promoter/

  • 5.2.1 推广数据看板 → 累计邀请人数、推广订单数、佣金总额、趋势简图
  • 5.2.2 我的团队 → 一/二/三级下级推广员列表 + 每人邀请数 + 贡献佣金
  • 5.2.3 佣金明细 → 每笔佣金来源(用户+订单)、金额、状态(待结算/已到账)
  • 5.2.4 提现 → 佣金提现到微信零钱(复用现有 withdrawal 页面逻辑)
  • 5.2.5 分享工具 → 生成带邀请码的分享海报/小程序码,一键转发好友/群

5.3 工作台子包 pages-work/

  • 5.3.1 调度面板 → 待接单列表 + 点击指派陪诊师弹窗 + 改派 + 超时提醒
  • 5.3.2 退款审核 → 退款申请列表 + 通过/驳回 + 驳回原因填写 + 进度跟踪
  • 5.3.3 运营看板 → 区域数据(订单数/收入/陪诊师排行),可先用 WebView 加载后台页面
  • 5.3.4 订单搜索 → 全平台订单搜索 + 状态筛选 + 详情查看

5.4 陪诊师轻量入口(现有页面改造)

  • 5.4.1 陪诊师 Tab → 待接单列表 / 进行中 / 已完成,三个子 Tab
  • 5.4.2 接单/拒单操作 → 复用现有接口,增加确认弹窗
  • 5.4.3 开始服务 / 完成服务 → 状态流转按钮
  • 5.4.4 陪诊师收入 → 收益明细 + 余额 + 提现入口

6. Android App(peizhen 工程)

6.1 框架改造

  • 6.1.1 MainActivity 动态 Tab → 从写死 3 个改为根据 userType 组装 Fragment 集合
  • 6.1.2 角色判断入口 → SplashActivity → login → 后端返回 userType → 决定加载模式
  • 6.1.3 MyFragment 改造 → 增加多角色收益分项展示(服务费/调度费/推广佣金)

6.2 调度员界面

  • 6.2.1 DispatchFragment → 待派单列表(status=0 订单)
  • 6.2.2 指派弹窗 → 选择区域内空闲陪诊师 + 确认指派
  • 6.2.3 改派操作 → 已指派订单更换陪诊师 + 原因

6.3 客服界面

  • 6.3.1 RefundFragment → 退款审核列表(status=5 订单)
  • 6.3.2 退款处理 → 通过/驳回 + 原因填写弹窗

6.4 运营看板

  • 6.4.1 OpsFragment → WebView 加载后台运营看板页面(快速上线方案)

6.5 网络层

  • 6.5.1 HttpConstants → 补充调度/退款/统计相关 API URL
  • 6.5.2 请求/响应实体类 → dispatch、refund、profit 相关 Bean

7. 联调与测试

  • 7.1 患者下单 → 支付 → 分润计算 → 各角色收益生成(端到端)
  • 7.2 推广员三级关系 → 下单 → 三级佣金正确分配
  • 7.3 调度员手动派单 → 陪诊师接单 → 完成服务 → 分润正确
  • 7.4 退款审核流程 → 客服通过/驳回 → 状态流转正确
  • 7.5 运营经理查看区域数据 → 数据与订单实际一致
  • 7.6 多角色切换 → TabBar 正确切换 → 权限隔离生效
  • 7.7 提现流程 → 各角色钱包操作正确 → 微信打款到账

8. 文档与部署

  • 8.1 运维文档(建表 DDL、配置项说明、角色权限矩阵表)
  • 8.2 用户操作手册(各角色小程序/App/后台使用说明)
  • 8.3 部署上线(后端 docker build + 小程序上传审核 + Android 打包)

统计:共 75 项子任务,按阶段 0~4 顺序执行。 详细方案见 多角色系统与分润方案.md