44 lines
1.2 KiB
PHP
44 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Dealer;
|
|
|
|
use App\Enums\DealerEarningStatus;
|
|
use App\Enums\DealerManagerSubsidyStatus;
|
|
use App\Enums\DealerWalletAction;
|
|
use App\Exceptions\BizException;
|
|
use App\Models\DealerEarning;
|
|
use App\Models\DealerManagerSubsidy;
|
|
|
|
class ManagerSubsidyService
|
|
{
|
|
/**
|
|
* @param \App\Models\DealerManagerSubsidy $dealerManagerSubsidy
|
|
* @return void
|
|
*/
|
|
public function pay(DealerManagerSubsidy $dealerManagerSubsidy)
|
|
{
|
|
if (! $dealerManagerSubsidy->isPending()) {
|
|
throw new BizException('管理者津贴 不是待付款状态');
|
|
}
|
|
|
|
$dealerManagerSubsidy->update([
|
|
'status' => DealerManagerSubsidyStatus::Completed,
|
|
]);
|
|
|
|
$dealerManagerSubsidy->earning->update([
|
|
'pay_way' => DealerEarning::PAY_WAY_WALLET,
|
|
'pay_at' => now(),
|
|
'pay_info' => null,
|
|
'status' => DealerEarningStatus::Completed,
|
|
]);
|
|
|
|
(new WalletService())->changeBalance(
|
|
$dealerManagerSubsidy->user,
|
|
$dealerManagerSubsidy->real_amount,
|
|
DealerWalletAction::ManagerSubsidyIn,
|
|
'收入-管理者津贴',
|
|
$dealerManagerSubsidy
|
|
);
|
|
}
|
|
}
|