Files
webman-buildadmin/docs/分红说明文档.md
2026-04-20 10:50:00 +08:00

6.9 KiB
Raw Blame History

分红说明文档(现状分析 + 简化设计建议)

1. 文档目的

本文用于回答两个问题:

  1. 甲方管理员是否容易看懂当前分红方式?
  2. 是否有更简单、更容易执行和对账的分红设计?

并给出推荐方案与落地路径。


2. 当前分红设计现状(按代码实际行为)

2.1 配置层面(看起来是三级)

历史上后台有三处比例字段(其中后两项已下线):

  • channel:渠道分红参数(turnover_share_rateaffiliate_* 等)
  • admin_group:角色组 commission_rate(已删除)
  • admin:管理员 commission_rate(已删除)

从“配置界面”角度,容易被理解为:
渠道比例 -> 角色组比例 -> 管理员比例 的三级链路。

2.2 结算层面(实际执行是单层)

当前手动结算逻辑在 Channel 控制器中:

  • 按渠道下注汇总计算 total_bet_amount / platform_profit_amount
  • 根据 channel.agent_mode 计算佣金基数与佣金比例
  • 生成 agent_settlement_periodagent_commission_record

关键点:佣金记录只写了一条 admin_id渠道下首个管理员,并未按角色组/管理员比例拆分多条佣金明细。
也就是说,目前“角色组比例、管理员比例”主要在新增/编辑时做约束校验,但没有进入最终结算分账公式


3. 当前方案对甲方可理解性的评估

结论:一般不容易看懂,且容易产生“配置了却不生效”的认知落差。

主要原因:

  1. 心智复杂:甲方要同时理解渠道模式(返水/联营)、角色组比例、管理员比例三层规则。
  2. 口径不一致:界面上有三级比例,但结算时是渠道单层落账,容易质疑“为什么不是按我配的三级比例发放”。
  3. 对账难:财务看到佣金记录时只能看到渠道维度,不容易反推角色组和管理员分配关系。
  4. 运维负担高:层级变化(调组、换管理员)后,历史解释成本高。

4. 更简单的分红设计方式(推荐)

4.1 推荐方案:渠道结算 + 渠道内二次分配(两层)

将分红流程拆为两个明确步骤:

A. 一级:渠道结算(平台对渠道)

  • 保留当前 channel.agent_mode 的计算方式turnover/affiliate
  • 先得到一个渠道应发佣金:channel_commission_amount
  • 生成渠道结算单(当前已具备)

B. 二级:渠道内分配(渠道对管理员)

  • 不再使用“角色组分红比例”参与金额运算(角色组只负责权限)
  • 仅维护“渠道下管理员分配权重”(例如总和=100%
  • 自动拆分:admin_commission = channel_commission_amount × admin_weight
  • 为每个管理员生成独立佣金记录(多条)

这样甲方只需要理解一句话:
平台先算渠道总佣金,再按渠道内管理员权重拆分。

4.2 为什么推荐该方案

  1. 业务更直观:甲方看“渠道总佣金 + 管理员占比”即可。
  2. 和现有代码贴近:你们当前已经是“先算渠道佣金”,只需补“二次拆分”。
  3. 对账容易:每个管理员佣金来源清晰,可直接汇总对账。
  4. 后续可扩展:以后要按团队、按代理线拆分,可以在“二次分配”层升级,不影响一级结算。

5. 备选方案对比

5.1 方案A现状表象渠道 -> 角色组 -> 管理员三级

  • 优点:理论上精细
  • 缺点:配置理解成本高、维护复杂、容易和实际结算脱节
  • 适用:组织结构非常稳定、财务系统成熟的大盘

5.2 方案B推荐渠道 -> 管理员两级

  • 优点:简单、易讲、易对账、改造成本低
  • 缺点:若强依赖“角色组抽成”会减少一层表达
  • 适用:当前阶段(快速上线、减少运营误解)

5.3 方案C最简仅渠道一级

  • 优点:最简单
  • 缺点:无法直接落地到管理员收益,不利于激励
  • 适用:仅用于统计,不用于发佣

6. 建议的产品口径(给甲方的话术)

建议统一说明为:

  1. 渠道分红:系统按渠道配置(返水或联营)自动计算该周期渠道总佣金。
  2. 人员分配:渠道总佣金按“渠道内管理员分配比例”自动拆分。
  3. 角色组作用:角色组只负责菜单权限与数据权限,不参与金额运算。
  4. 结算可追溯:每条管理员佣金都能追溯到对应渠道结算单。

7. 数据与实现改造建议(按最小改动)

7.1 数据字段建议

  • 保留:channel 的分红计算参数(现有)
  • 建议新增(任选其一):
    • admin 增加 channel_share_rate(该管理员在所属渠道的拆分比例)
    • 或新增 channel_admin_share(channel_id, admin_id, share_rate)

7.2 逻辑改造建议

  1. 渠道结算得到 commission_amount
  2. 拉取该渠道有效管理员分配比例列表(总和=100%
  3. 按比例拆分并批量写入 agent_commission_record
  4. 若分配比例未配置:
    • 方案一默认100%给渠道负责人
    • 方案二:阻止结算并提示“请先配置渠道管理员分配比例”

7.3 风险控制建议

  • 分配比例总和强校验(必须=100%
  • 管理员离职/禁用时自动重算或禁止结算
  • 结算后锁单,后改比例不影响历史账单

8. 迁移策略建议

分三步上线:

  1. 第1步兼容期:保留现有字段,新增“渠道内管理员分配比例”配置
  2. 第2步双轨期:结算时同时产出“旧口径结果 + 新口径预览”用于核对
  3. 第3步切换期:正式切到“渠道+管理员两级”,角色组比例仅保留展示或下线

9. 最终建议结论

从“甲方能否看懂”和“系统可维护性”来看,建议采用:

渠道结算 + 渠道内管理员二次分配(两级)

这是在你们当前代码基础上改造成本最低、解释成本最低、财务对账最清晰的方案。
不建议继续强化“渠道->角色组->管理员”三级分红公式作为主线。


10. 本次已落地改造2026-04-18

已在系统中完成以下改造:

  1. 新增渠道管理员分配表:channel_admin_share
  2. 下线并删除旧字段:admin_group.commission_rateadmin.commission_rate
  3. 新增后台接口:
    • channelAdminShareList:读取渠道管理员分配配置
    • saveChannelAdminShare保存渠道管理员分配配置启用项合计必须100%
  4. 手动结算改造:
    • 先算渠道总佣金
    • 再按 channel_admin_share 比例拆分为多条 agent_commission_record
    • 结算预览支持查看拆分明细
  5. 渠道后台页面新增“分配比例”按钮与配置弹窗,用于维护管理员分配比例
  6. 角色组与管理员页面已移除旧分红比例字段展示与编辑项

说明:

  • 若未配置 channel_admin_share系统会回退为“渠道首个管理员100%”以保证兼容历史流程。