feat: 线上自助充值不再扣代理余额(系统直充)

会员通过第三方支付通道线上充值时,不再检查/扣减总代理余额。
真金白银从支付通道进来,直接加分给会员。

改动覆盖全部9个支付通道trait:
- 删除下单时的代理余额检查(不再拦截"余额不足")
- 回调时只检查代理是否存在,不检查余额
- 不扣减代理money字段
- 充值记录标记为"系统直充"而非"扣取总代理余分"

代理手动给会员上分(信用盘模式)不受影响,仍然扣代理自己的分。
This commit is contained in:
2026-05-24 19:25:05 +08:00
parent 0186f561c4
commit 0bf387f7d5
9 changed files with 53 additions and 106 deletions
@@ -73,10 +73,6 @@ trait alinPay
if (!$zdl) {
return json(['status' => 0, 'message' => '所属代理账号异常,暂不能充值']);
}
if ($zdl['money'] < $money) {
return json(['status' => 0, 'message' => '所属代理余额不足,暂不能充值']);
}
$pay_list = config('pay_list');
$pay_orderid = 'E' . date("YmdHis") . rand(100000, 999999);
$notify_url = $pay_list['alinPay']['notify_url'];
@@ -232,9 +228,9 @@ trait alinPay
'agent' => 1,
])->lock(true)->find();
if (!$zdl || $zdl['money'] < $order['money']) {
if (!$zdl) {
Db::rollback();
addLogToFile('代收结算失败:代理余额不足 order=' . $orderNo, 'alin_callback_error', 'alin');
addLogToFile('代收结算失败:无法找到总代理 order=' . $orderNo, 'alin_callback_error', 'alin');
return;
}
@@ -248,7 +244,7 @@ trait alinPay
'zdl_id' => $zdl['id'],
'zdl_username' => $zdl['username'],
'zdl_money_before' => $zdl['money'],
'zdl_money_after' => $zdl['money'] - $order['money'],
'zdl_money_after' => $zdl['money'],
'money_before' => $user['money'],
'money_after' => $user['money'] + $order['money'],
]);
@@ -272,9 +268,9 @@ trait alinPay
'controller_id' => $zdl['id'],
'controller_username' => $zdl['username'],
'controller_nickname' => $zdl['nickname'],
'controller_type' => '越南第三方充值平台充值,扣取总代理余分',
'controller_type' => '越南第三方充值平台充值,系统直充',
'controller_old_money' => $zdl['money'],
'controller_new_money' => $zdl['money'] - $order['money'],
'controller_new_money' => $zdl['money'],
'user_id' => $order['user_id'],
'user_type' => $user['agent'],
'user_agent_level' => 0,
@@ -288,9 +284,8 @@ trait alinPay
'remake' => '越南AlinPay第三方充值成功',
]);
// 4. 扣代理余额
// 4. 更新代理统计(不扣余额
Db::name('user')->where('id', $zdl['id'])->update([
'money' => $zdl['money'] - $order['money'],
'last_recharge_out' => $order['money'],
'last_recharge_out_time' => time(),
'recharge_out_count' => $zdl['recharge_out_count'] + 1,