Appearance
03 — 收益发放
收益发放分为个人收益和团队收益两条线,均由后台定时任务自动执行。个人收益按日利率计算,团队收益按下单时预算好的分润链发放,V5–V7 用户需额外通过月度考核。
一、个人收益发放
任务执行时间
每天 00:00(凌晨) 自动执行。
计算公式
当日个人收益 = 本金 × 0.0038例:质押 10,000 USDT,每日收益 = 10,000 × 0.0038 = 38 USDT
发放流程
发放条件(全部满足)
| 条件 | 说明 |
|---|---|
| 订单状态 | 已支付(state=2)、已启用(status=1)、未到期(expired=1) |
| 发放天数 | 已发天数(person_stage)< 总周期(days=365) |
| 付款时间 | 订单付款时间 < 当天 00:00(当日付款不参与当日发放) |
防重保护
- 使用 Redis 分布式锁(TTL 1 小时),防止同一任务并发重复执行
订单到期处理
订单发满 365 天后自动处理:
- 标记订单为已到期
- 从用户和团队业绩中扣减本订单贡献的业绩
- 关闭该订单对应的分润链
二、团队收益发放
任务执行时间
每天 07:00 自动执行(晚于个人收益,确保日志时序清晰)。
发放原理
团队收益不是实时计算,而是在用户下单时已经预算好各层节点的应得金额,存储在升级订单的 stat_relations 字段中。每日任务直接读取并发放,效率高且一致性强。
发放流程
V5–V7 发放条件(四项全部满足)
| 条件 | 说明 |
|---|---|
| 有有效理财订单 | 上级节点本身须有生效中的质押订单 |
| 业绩达到等级门槛 | 个人业绩和团队业绩均达到对应等级标准 |
| 月度考核通过 | 当前考核周期内业绩达标(见下方说明) |
| 分润开关开启 | 等级对应的分润开关(t_in=2)处于开启状态 |
满足任一豁免条件可直接发放:
- 节点等级为 V8 或 V9(level 5、6)
- 处于免考核保护期内(新晋级后的保护窗口期)
三、月度考核机制
设计目的
确保 V5–V7 用户保持活跃业绩,防止"躺赚"。用户每个考核周期(30 天)需完成一定新增业绩,否则停发团队收益。
考核标准
| 等级 | 30 天最低新增业绩 |
|---|---|
| V5(level 2) | 1,500 |
| V6(level 3) | 3,500 |
| V7(level 4) | 7,000 |
注意:上述数值与代码实际执行的
kaohe30Map一致。部分历史注释中的旧版数值(20000/45000/100000)已废弃,请以此为准。
考核周期管理
免考核保护期
- 新晋某等级时,享受一段免考核保护期
- 保护期内:团队收益正常发放,不受考核结果影响
- 保护期结束后:考核结果开始生效
四、发放时序总览
每日 00:00 → 个人收益发放任务
每日 07:00 → 团队收益发放任务
每月周期末 → 月度考核统计任务(通常随团队发放脚本联动)五、关键规则汇总
| 规则 | 说明 |
|---|---|
| 个人收益当日到账 | 每日 0 点结算,累积在订单余额,用户申请提现后到账 |
| 团队收益按预算发放 | 金额在下单时已确定,不因后续业绩变化而调整 |
| 当日付款不享当日发放 | 避免刷单套利 |
| Redis 防重锁 | 个人和团队任务各有独立锁,互不干扰 |
| 跳过记录可追溯 | 被跳过的节点会记录详细原因,便于运营排查 |
所属文件:console/controllers/invest/IncomePersonController.php、console/controllers/invest/IncomeTeamController.php、console/controllers/invest/MonthKaoheController.php、backend/services/invest/FtgInvestIncomeService.php、backend/services/invest/MonthKaoheService.php