1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
- namespace App\Observers;
- use App\Jobs\VNet\addUser;
- use App\Jobs\VNet\delUser;
- use App\Jobs\VNet\editUser;
- use App\Models\Node;
- use App\Models\User;
- use Arr;
- use DB;
- use Exception;
- use Log;
- class UserObserver {
- public function created(User $user): void {
- $allowNodes = Node::userAllowNodes($user->group_id, $user->level)->whereType(4)->get();
- if($allowNodes){
- addUser::dispatch($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::dispatch($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::dispatch($user->id, $allowNodes);
- }
- }
- }
|