二级分销系统通过推荐人id建立上下级关系,要求一、二级推荐人均有效且不可跨级;佣金在订单完成后按实付金额分层计算(一级10%、二级3%),到账后支持余额提现与审核打款。

二级分销关系的建立与验证
用户注册时需支持填写推荐人ID,系统自动记录上下级关系。推荐关系必须满足:一级推荐人(直接上级)和二级推荐人(上级的上级)均需处于有效状态(未被禁用、未注销),且二级关系链不可跨级跳转。例如,A推荐B,B推荐C,则C的一级上级是B,二级上级是A;若C试图手动填写A为推荐人,系统应拒绝并提示“仅支持直接推荐关系”。数据库中建议用 user_id、parent_id、top_parent_id 三个字段存储,其中 top_parent_id 在用户注册或上级变更时通过递归或预设逻辑实时更新,避免每次查询都遍历树。
订单佣金的触发与分层计算规则
佣金在订单完成(如确认收货或系统自动完成)后触发,非支付成功即结算。二级分销采用固定比例分佣:一级推荐人获订单实付金额的 10%,二级推荐人获 3%(比例可配置,但需独立存入配置表)。注意三点:一是佣金基数为“买家实际付款金额-退款金额-平台优惠券”,不含运费与税费;二是同一订单不重复计佣,即便用户后续复购,仍按首次绑定的推荐关系结算;三是若二级上级不存在(如B无上级),则3%部分不发放,不转移给一级。代码中建议封装 calculateCommission($order) 方法,返回结构化数组:['level1' => ['uid'=>1001, 'amount'=>25.5], 'level2' => ['uid'=>1002, 'amount'=>7.65]]。
佣金到账与提现申请流程
佣金计算完成后,写入 commission_log 表并增加对应用户的 available_balance(可用余额)。用户可在前端发起提现,需校验:余额 ≥ 最小提现额(如10元)、当日/当月未超频次限制(如每天1次、每月5次)、账户已完成实名认证且银行卡信息有效。提交后生成 withdraw_apply 记录,状态为“待审核”。此时冻结对应金额(从 available_balance 扣减,计入 frozen_balance),确保不会被重复提现或消费。
后台提现审核与资金结算
运营人员在后台查看待审列表,支持批量通过或拒绝。审核通过后:调用财务接口打款(或生成批量打款文件),更新提现记录状态为“已打款”,并写入打款时间与流水号;同时将该笔金额从 frozen_balance 转为 withdrawn_balance(已提现余额)。若审核拒绝,解冻金额并回写至 available_balance,推送站内信说明原因(如“银行卡信息不符”)。关键点在于状态机设计:pending → approved/rejected → (→ paid),所有状态变更需记录操作人和时间,且禁止越级修改(如 pending 不可直跳 paid)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











