# 分佣逻辑正确与否验证

> **说明**：内容依旧基于「分佣需要确认逻辑」中的假定方案，目标是向需求方展示目前的理解，并请对“是否满足预期”给出反馈；所有表达均属于待确认状态。

## 1. 文档定位与假设

1. 面向运营、产品与研发，讨论“梯度配置 → 佣金生成 → 冻结/解冻 → 提现”全链路。
2. 最小颗粒度仍假定为 ICCID，系统每日巡检是否满足冻结条件。
3. 返佣梯度模板只提供初始值，真正起效的是写入“代理商-套餐-返佣规则”的快照。
4. 梯度条目新增字段：返佣条件（累计充值/一次充值）、返佣条件目标值、是否三无校验、长期终止方式等，均由需求方补充。

## 2. 佣金记录状态（当前理解）

| 状态         | 拟定定义                                                         | 关键属性（供确认）                                             |
| ------------ | ---------------------------------------------------------------- | -------------------------------------------------------------- |
| 已冻结       | 佣金记录已写入但暂不可提现，等待巡检与运营凭证                   | 送彩金需人工解冻；凭证来自运营商/上游；需解冻密码              |
| 正常         | 认为条件已满足，可进入提现申请                                   | 允许发起提现；等待审批                                         |
| 无效佣金     | 核验发现不满足返佣规则                                           | 永久不可提现；记录无效原因                                     |
| 提取申请中   | 用户提交提现，尚在审批                                           | 资金冻结；需跟踪审批结果                                       |
| 提取驳回     | 审批未通过                                                       | 记录驳回原因，处理完后可再次申请                               |
| 已提取       | 提现审批完成并发放                                               | 记录支付流水与时间                                             |

> 如还需“部分解冻”“自动解冻”等扩展状态，可继续在此表补充。

## 3. 状态切换说明

1. **已冻结 → 正常**：运营导入 ICCID + 凭证（含三无校验结果），输入解冻密码；若上游也确认，则解冻。
2. **已冻结 → 无效佣金**：巡检或上游发现条件不成立（充值不足/未产生流量语音短信等）。
3. **正常 → 提取申请中 → 已提取/提取驳回**：提现走审批链条，记录审批结论。
4. **提取驳回 → 正常**：问题解决后回到可申请状态。

## 4. 冻结与解冻（示例流程）

### 4.1 冻结触发

- ICCID 在某月首次充值，卡状态正常。
- 每日巡检检查：
  1. 当前卡状态是否正常；
  2. 返佣条件类型（累计充值或一次充值）对应的金额是否达标；
  3. 若“是否三无=是”，需确认流量/语音/短信任一指标产生；
  4. 判断类型（销售数量或销售金额）是否命中梯度目标值。
- 满足上述组合后写入“已冻结”佣金。

### 4.2 解冻动作

- 运营通过 Web/Excel 导入需解冻的 ICCID 列表。
- 操作人输入解冻密码（可拓展为双人校验）。
- 系统对比运营商/上游凭证，符合即批量解冻；不符则继续冻结或转为无效。

### 4.3 数据来源

- 运营商官方结算单。
- 上游渠道对账单。
- 其他可信来源（需要在系统内记录来源，以便审计追溯）。

### 4.4 结果

- 凭证齐全 → 状态切到“正常”。
- 不满足条件 → “无效佣金”。
- 信息不足 → 维持“已冻结”。

## 5. 返佣梯度字段（含新增项）

1. **判断类型**：套餐销售数量 / 套餐销售金额。
2. **判断目标值**：对应的数量或金额门槛。
3. **返佣属性**：比例金额 / 固定金额。
4. **返佣假定值**：如 10% / 10 元等。
5. **返佣时效**：即可返佣 / 延迟返佣。
6. **是否长期**：是（每月重复）/ 否（仅一次）。
   - 若选择“是”，需额外配置终止方式：
     - 指定持续月数（例：36 个月内有效）。
     - 或指定终止日期（例：截至 2026-11-20）。
7. **返佣条件类型**：累计充值 / 一次充值。
8. **返佣条件目标值**：具体金额门槛（例：累计 100 元或一次 100 元）。
9. **是否三无**：是 → 必须满足流量/语音/短信任一用量；否 → 默认无需此校验。

### 5.1 示例条目（即时返佣 + 长期到期日）

- 判断类型：套餐销售金额
- 返佣时效：即可返佣
- 返佣条件：累计充值 ≥ 100 元
- 是否三无：否
- 是否长期：是，终止日期 2026-11-20

| 套餐类型     | 判断目标值 | 返佣属性 | 返佣假定值 |
| :----------: | :--------: | :------: | :--------: |
| 套餐销售金额 | 2000 元    | 固定金额 | 10 元      |
| 套餐销售金额 | 4000 元    | 固定金额 | 15 元      |
| 套餐销售金额 | 10000 元   | 比例金额 | 10%        |
| 套餐销售金额 | 50000 元   | 比例金额 | 20%        |

### 5.2 示例条目（延迟返佣 + 长期月数 + 三无）

- 判断类型：销售套餐数量
- 返佣时效：延迟返佣（冻结）
- 返佣条件：一次性充值 ≥ 100 元
- 是否三无：是（需满足流量/语音/短信任一用量）
- 是否长期：是，持续 36 个月

| 套餐类型     | 判断目标值 | 返佣属性 | 返佣假定值 |
| :----------: | :--------: | :------: | :--------: |
| 销售套餐数量 | 20 个      | 固定金额 | 10 元      |
| 销售套餐数量 | 40 个      | 固定金额 | 15 元      |
| 销售套餐数量 | 60 个      | 固定金额 | 20 元      |
| 销售套餐数量 | 120 个     | 比例金额 | 10%        |
| 销售套餐数量 | 130 个     | 比例金额 | 20%        |

### 5.3 模板与快照玩法

1. 预设多套梯度模板（包含全部字段）。
2. 给代理分销套餐时选择模板，写入“代理商-套餐-返佣规则”，这一刻生成快照。
3. 若模板不合适，可即时调参，结果仅作用于该代理的快照，不影响原模板。

## 6. 分佣类型与时效/长期标记

1. **立即返佣**：命中梯度且“返佣时效=即可”，直接生成“正常”佣金，可发起提现。
2. **延迟返佣**：命中梯度但“返佣时效=延迟”，生成“已冻结”佣金，等巡检+凭证后解冻。
3. **长期 vs 一次性**：若标记“长期=是”，每月满足条件都重复以上流程，直至达到配置的终止月份或日期；若“否”，仅首次写入。

## 7. 返佣金额计算

### 7.1 比例返佣

- 按成本价乘以返佣比例。
- 示例：成本 100 元，返佣 10%，代理得 10 元，上级留存 90 元。

### 7.2 固定金额返佣

- 从成本价中拆出固定金额。
- 示例：成本 100 元，固定返佣 10 元，代理每卖一份获得 10 元。

> 若需要多级代理差额分摊，可在后续补充案例。

## 8. 参考流程图（覆盖新字段）

```mermaid
flowchart TD
    A["预设返佣梯度模板<br/>(含判断类型/目标值/时效/条件/三无等)"] --> B[分销套餐选择模板]
    B --> C{需要调整模板值?}
    C -->|否| D[直接写入代理-套餐-返佣规则快照]
    C -->|是| E[按协商修改目标/比例/条件/时效]
    E --> D
    D --> F[代理销售套餐]
    F --> G{达到梯度判断目标?}
    G -->|否| G1[不生成佣金记录]
    G -->|是| H["写入佣金记录<br/>(含时效/长期/条件/三无标记)"]
    H --> I{返佣时效}
    I -->|即可返佣| J["生成正常佣金 → 可发起提现"]
    I -->|延迟返佣| K[生成冻结佣金]
    K --> L["每日巡检<br/>1. 卡状态<br/>2. 返佣条件金额<br/>3. 三无校验"]
    L --> M{巡检结果}
    M -->|不满足| N[标记无效佣金]
    M -->|满足| O[运营提交解冻名单 + 解冻密码]
    O --> P{上游/运营商凭证匹配?}
    P -->|是| Q[状态改为正常]
    P -->|否| R[保持冻结或升级为无效]
    J --> S[提交提现申请]
    Q --> S
    S --> T{审批结果}
    T -->|通过| U[状态=已提取]
    T -->|驳回| V["状态=提取驳回 → 原因记录 → 回到正常"]
```

## 9. 核验清单（滚动更新）

1. **模板即快照**：确认需求方已认可“模板只是初始值，写入后独立”的做法。
2. **字段完整性**：判断类型、目标值、返佣属性/假定值、时效、长期、返佣条件类型与目标值、是否三无，是否还需追加封顶金额、最低到账天数等字段？
3. **巡检周期**：默认每日，是否需要在配置中开放？
4. **三无策略**：仅当“是否三无=是”时才校验流量/语音/短信是否产生，逻辑是否符合需求？
5. **审批链路**：提现审批角色、SLA、驳回原因记录是否需要更细化？
6. **审计/导出**：无效佣金与驳回清单是否需要导出或定期复盘？

## 10. 后续讨论点

1. 延迟返佣 + 长期标记时，是否意味着每月都会触发冻结/解冻循环？
2. 运营商提供的结算文档是否为“全量数据”（即包含可返佣与不可返佣的 ICCID），以便我们比对三无和解冻名单？
---

> 如 `docs/优化说明/分佣需要确认逻辑.md` 有新的补充，请继续同步，本文件将保持“假设 → 核验 → 反馈”的循环输出。

---

> 本文档持续依赖 `docs/优化说明/分佣需要确认逻辑.md` 的最新内容，若原始假设变化，请同步更新此文件以便再次生成。
