修改提现手续费用

This commit is contained in:
邹景立 2021-03-18 16:05:12 +08:00
parent 8eedb40308
commit 0eaf0be9b7
2 changed files with 13 additions and 6 deletions

View File

@ -55,7 +55,17 @@ class Transfer extends Auth
} }
// 扣除手续费 // 扣除手续费
$chargeRate = floatval(UserTransferService::instance()->config('transfer_charge')); $chargeRate = floatval(UserTransferService::instance()->config('transfer_charge'));
$data['charge'] = $chargeRate * $data['amount'] / 100; $data['charge_rate'] = $chargeRate;
$data['charge_amount'] = $chargeRate * $data['amount'] / 100;
// 检查可提现余额
[$total, $count] = UserRebateService::instance()->amount($this->uuid);
if ($total - $count < $data['amount']) $this->error('可提现余额不足!');
// 如果手续费不够扣时,提现金额减少
if ($total - $count < $data['amount'] + $data['charge_amount']) {
$data['amount'] = $data['amount'] - $data['charge_amount'];
$data['charge_amount'] = $chargeRate * $data['amount'] / 100;
$data['amount'] = $total - $count - $data['charge_amount'];
}
// 提现方式处理 // 提现方式处理
if (in_array($data['type'], ['alipay_account'])) { if (in_array($data['type'], ['alipay_account'])) {
$data = array_merge($data, $this->_vali([ $data = array_merge($data, $this->_vali([
@ -76,9 +86,6 @@ class Transfer extends Auth
} elseif (!in_array($data['type'], ['wechat_wallet'])) { } elseif (!in_array($data['type'], ['wechat_wallet'])) {
$this->error('转账方式不存在!'); $this->error('转账方式不存在!');
} }
// 检查可提现余额
[$total, $count] = UserRebateService::instance()->amount($this->uuid);
if ($total - $count < $data['amount']) $this->error('可提现余额不足!');
// 当日提现次数限制 // 当日提现次数限制
$map = ['uid' => $this->uuid, 'type' => $data['type'], 'date' => $data['date']]; $map = ['uid' => $this->uuid, 'type' => $data['type'], 'date' => $data['date']];
$count = $this->app->db->name($this->table)->where($map)->count(); $count = $this->app->db->name($this->table)->where($map)->count();

View File

@ -20,14 +20,14 @@ class UserRebateService extends Service
public function amount(int $uuid): array public function amount(int $uuid): array
{ {
if ($uuid > 0) { if ($uuid > 0) {
$count = abs($this->app->db->name('DataUserTransfer')->whereRaw("uid='{$uuid}' and status>0")->sum('amount'));
$total = abs($this->app->db->name('DataUserRebate')->whereRaw("uid='{$uuid}' and status=1 and deleted=0")->sum('amount')); $total = abs($this->app->db->name('DataUserRebate')->whereRaw("uid='{$uuid}' and status=1 and deleted=0")->sum('amount'));
$locks = abs($this->app->db->name('DataUserRebate')->whereRaw("uid='{$uuid}' and status=0 and deleted=0")->sum('amount')); $locks = abs($this->app->db->name('DataUserRebate')->whereRaw("uid='{$uuid}' and status=0 and deleted=0")->sum('amount'));
$count = abs($this->app->db->name('DataUserTransfer')->whereRaw("uid='{$uuid}' and status>0")->sum('amount+charge_amount'));
$this->app->db->name('DataUser')->where(['id' => $uuid])->update(['rebate_total' => $total, 'rebate_used' => $count, 'rebate_lock' => $locks]); $this->app->db->name('DataUser')->where(['id' => $uuid])->update(['rebate_total' => $total, 'rebate_used' => $count, 'rebate_lock' => $locks]);
} else { } else {
$count = abs($this->app->db->name('DataUserTransfer')->whereRaw("status>0")->sum('amount'));
$total = abs($this->app->db->name('DataUserRebate')->whereRaw("status=1 and deleted=0")->sum('amount')); $total = abs($this->app->db->name('DataUserRebate')->whereRaw("status=1 and deleted=0")->sum('amount'));
$locks = abs($this->app->db->name('DataUserRebate')->whereRaw("status=0 and deleted=0")->sum('amount')); $locks = abs($this->app->db->name('DataUserRebate')->whereRaw("status=0 and deleted=0")->sum('amount'));
$count = abs($this->app->db->name('DataUserTransfer')->whereRaw("status>0")->sum('amount+charge_amount'));
} }
return [$total, $count, $locks]; return [$total, $count, $locks];
} }