70 lines
2.4 KiB
PHP
70 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Actions;
|
|
|
|
use App\Models\UpgradePayment;
|
|
use Encore\Admin\Actions\RowAction;
|
|
use Encore\Admin\Form;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Http\Request;
|
|
use RuLong\Identity\Models\Identity;
|
|
|
|
class UserUpgrade extends RowAction
|
|
{
|
|
public $name = '空升';
|
|
|
|
public function handle(Model $model, Request $request)
|
|
{
|
|
$identity_id = $request->identity_id;
|
|
$model->identityUpdate($identity_id, 'EmptyUp');
|
|
if ($identity_id > 1 && !$model->activationd_at) {
|
|
$model->activationd_at = now();
|
|
$model->save();
|
|
}
|
|
$amount = $model->getIdentityPrice($identity_id);
|
|
if ($amount) {
|
|
$upgrade_payment = UpgradePayment::create([
|
|
'user_id' => $model->id,
|
|
'type' => 'agent',
|
|
'pay_type' => 'ADMIN',
|
|
'amount' => $amount,
|
|
'total' => 0,
|
|
'state' => 'SUCCESS',
|
|
]);
|
|
|
|
if ($identity_id == 1) {
|
|
\App\Bonus\DirectVip::settlement($upgrade_payment);
|
|
|
|
$source = [
|
|
'user_id' => $upgrade_payment->user->id,
|
|
'type' => 'UpgradeVip',
|
|
'payment_id' => $upgrade_payment->id,
|
|
];
|
|
\App\Bonus\AddPerf::settlement($upgrade_payment->user, $upgrade_payment->amount, $source);
|
|
} elseif ($identity_id > 1) {
|
|
\App\Bonus\DirectAgency::settlement($upgrade_payment);
|
|
|
|
$source = [
|
|
'user_id' => $upgrade_payment->user->id,
|
|
'type' => 'UpgradeAgency',
|
|
'payment_id' => $upgrade_payment->id,
|
|
];
|
|
\App\Bonus\AddPerf::settlement($upgrade_payment->user, $upgrade_payment->amount, $source);
|
|
}
|
|
}
|
|
|
|
return $this->response()->success('升级成功')->refresh();
|
|
}
|
|
|
|
public function form(Model $model)
|
|
{
|
|
$identitys = Identity::where('id', '!=', $model->identity_id)->orderBy('id', 'asc')->pluck('title', 'id')->toArray();
|
|
$identitys[0] = '普通用户';
|
|
ksort($identitys);
|
|
$this->text('用户名称')->value($model->info->nickname);
|
|
$this->text('当前等级')->value($model->identity_text);
|
|
$this->select('identity_id', '目标等级')->options($identitys);
|
|
}
|
|
|
|
}
|