Files
water_new/modules/User/Http/Controllers/Admin/Actions/JoinIdentity.php
2023-03-09 11:54:13 +08:00

61 lines
1.8 KiB
PHP

<?php
namespace Modules\User\Http\Controllers\Admin\Actions;
use Encore\Admin\Actions\Response;
use Encore\Admin\Actions\RowAction;
use Exception;
use Illuminate\Http\Request;
use Modules\User\Models\Identity;
use Modules\User\Models\Order;
use Modules\User\Models\User;
class JoinIdentity extends RowAction
{
public $name = '加入身份';
public function handle(User $user, Request $request): Response
{
try {
$identity_id = $request->join_identity_id;
$remark = $request->remark;
$identity = Identity::find($identity_id);
$price = $identity->getCondition('price', '0');
$data = [
'user_id' => $user->id,
'identity_id' => $identity_id,
'year' => 1,
'type' => 1,
'stock' => $identity->stock,
'name' => '',
'card_no' => '',
'cover' => '',
'state' => Order::STATE_INIT,
'price' => $price,
];
$order = Order::create($data);
$order->pay();
return $this->response()->success('加入身份成功')->refresh();
} catch (Exception $e) {
return $this->response()->error($e->getMessage())->refresh();
}
}
public function form(User $user)
{
$userIdentity = $user->identityFirst();
$identities = Identity::where('order', '>', $userIdentity->order)->pluck('name', 'id');
$this->select('join_identity_id', '加入身份')
->options($identities)
->required();
$this->text('remark', '加入备注');
$this->confirm('确认加入该身份?');
}
}