- 后端:RlzDispatch/Profit/Promotion/Region 控制器、服务、Mapper、领域模型 - 权限:MethodSecurityConfig + PermissionInterceptor - 管理后台:派单/分润/推广/区域 页面与 API - Android 陪护端:派单/运营/退款 Fragment 及布局 - 小程序:推广员子包、派单/运营/退款/检索子包、自定义 tabBar - 文档:多角色系统方案、角色权限矩阵、用户操作手册等 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9.0 KiB
9.0 KiB
多角色系统与分润 — 需求拆解目录
基于《多角色系统与分润方案.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