Files
water-back/modules/User/Http/Controllers/Admin/Actions/JoinIdentity.php
2023-01-12 14:47:38 +08:00

70 lines
2.2 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();
//
// $user->joinIdentity($identity_id, 'System', [
// 'remark' => $remark,
// ]);
return $this->response()->success('加入身份成功')->refresh();
} catch (Exception $e) {
return $this->response()->error($e->getMessage())->refresh();
}
}
public function form(User $user)
{
$userIdentity = $user->identityFirst();
if (empty($userIdentity)) {
$identities = Identity::whereIn('order', [2, 3, 4, 5])->pluck('name', 'id');
} elseif ($userIdentity->job == Identity::JOB_YK) {
$identities = Identity::whereIn('order', [2, 3, 4, 5])->pluck('name', 'id');
} else {
$identities = Identity::where('order', '>', $userIdentity->order)->pluck('name', 'id');
}
$this->select('join_identity_id', '加入身份')
->options($identities)
->required();
$this->text('remark', '加入备注');
$this->confirm('确认加入该身份?');
}
}