Files
ProxyPanel/app/Observers/UserObserver.php
兔姬桑 f25f2aea62 优化数据库 与 简化控制器 & more
1. 继续修改表表关系,与关联字段的限制;
2. 通过表表关系,简化一部分代码,自动让Laravel建立关联;
3. 拆分验证 与 优化数据创建与修改的获取数据操作;
4. 修改部分无意义的数据名称;
2020-12-28 12:09:20 +08:00

45 lines
1.2 KiB
PHP

<?php
namespace App\Observers;
use App\Components\Helpers;
use App\Jobs\VNet\addUser;
use App\Jobs\VNet\delUser;
use App\Jobs\VNet\editUser;
use App\Models\User;
use App\Models\UserSubscribe;
use Arr;
class UserObserver
{
public function created(User $user): void
{
$subscribe = new UserSubscribe();
$subscribe->user_id = $user->id;
$subscribe->code = Helpers::makeSubscribeCode();
$subscribe->save();
$allowNodes = $user->nodes()->whereType(4)->pluck('id');
if ($allowNodes) {
addUser::dispatch($user->id, $allowNodes);
}
}
public function updated(User $user): void
{
$changes = $user->getChanges();
$allowNodes = $user->nodes()->whereType(4)->get();
if ($allowNodes->isNotEmpty() && Arr::hasAny($changes, ['level', 'group_id', 'port', 'passwd', 'speed_limit', 'enable'])) {
editUser::dispatch($user, $allowNodes);
}
}
public function deleted(User $user): void
{
$allowNodes = $user->nodes()->whereType(4)->get();
if ($allowNodes->isNotEmpty()) {
delUser::dispatch($user->id, $allowNodes);
}
}
}