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