1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?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\Node;
- use App\Models\User;
- use App\Models\UserSubscribe;
- use Arr;
- use DB;
- use Exception;
- use Log;
- class UserObserver
- {
- public function created(User $user): void
- {
- $subscribe = new UserSubscribe();
- $subscribe->user_id = $user->id;
- $subscribe->code = Helpers::makeSubscribeCode();
- $subscribe->save();
- $allowNodes = Node::userAllowNodes($user->group_id, $user->level)
- ->whereType(4)
- ->get();
- if ($allowNodes) {
- addUser::dispatchNow($user->id, $allowNodes);
- }
- }
- public function updated(User $user): void
- {
- $changes = $user->getChanges();
- $allowNodes = Node::userAllowNodes($user->group_id, $user->level)
- ->whereType(4)
- ->get();
- if ($allowNodes
- && Arr::exists($changes, 'level')
- || Arr::exists($changes, 'group_id')
- || Arr::exists($changes, 'port')
- || Arr::exists($changes, 'passwd')
- || Arr::exists($changes, 'speed_limit')
- || Arr::exists($changes, 'enable')) {
- editUser::dispatchNow($user, $allowNodes);
- }
- }
- public function deleting(User $user): void
- {
- try {
- DB::beginTransaction();
- // 邀请关系脱钩
- $user->invites()->delete();
- $user->invitees()->update(['inviter_id' => 0]);
- $user->commissionSettlements()->delete();
- $user->commissionLogs()->delete();
- $user->subscribe()->delete();
- $user->subscribeLogs()->delete();
- // 清理日志
- $user->orders()->delete();
- $user->payments()->delete();
- $user->onlineIpLogs()->delete();
- $user->ruleLogs()->delete();
- $user->tickets()->delete();
- $user->ticketReplies()->delete();
- $user->banedLogs()->delete();
- $user->creditLogs()->delete();
- $user->dailyDataFlows()->delete();
- $user->dataFlowLogs()->delete();
- $user->dataModifyLogs()->delete();
- $user->hourlyDataFlows()->delete();
- $user->loginLogs()->delete();
- $user->verify()->delete();
- DB::commit();
- } catch (Exception $e) {
- Log::error('删除用户相关信息错误:' . $e->getMessage());
- DB::rollBack();
- }
- }
- public function deleted(User $user): void
- {
- $allowNodes = Node::userAllowNodes($user->group_id, $user->level)
- ->whereType(4)
- ->get();
- if ($allowNodes) {
- delUser::dispatchNow($user->id, $allowNodes);
- }
- }
- }
|