<?php namespace App\Console\Commands; use App\Components\QQInfo; use App\Models\User; use Illuminate\Console\Command; use Log; class updateUserName extends Command { protected $signature = 'updateUserName'; protected $description = '升级用户昵称'; public function handle(): void { Log::info('----------------------------【升级用户昵称】开始----------------------------'); $userList = User::all(); foreach ($userList as $user) { $name = process($user->id); $user->update(['username' => $name]); Log::info('---用户[ID:'.$user->id.' - '.$user->email.'] :'.$user->username.'---'); } foreach ($userList as $user) { if ($user->email === $user->username) { $name = process($user->id); $user->update(['username' => $name]); Log::info('---用户[ID:'.$user->id.' - '.$user->email.'] :'.$user->username.'---'); } } Log::info('----------------------------【升级用户昵称】结束----------------------------'); } } function process($id) { $user = User::find($id); // 先设个默认值 $name = $user->email; // 用户是否设置了QQ号 if ($user->qq) { $name = QQInfo::getName3($user->qq); // 检测用户注册是否为QQ邮箱 } elseif (stripos($user->email, '@qq') !== false) { // 分离QQ邮箱后缀 $email = explode('@', $user->email, 2); if (is_numeric($email[0])) { $name = QQInfo::getName3($email[0]); } elseif (str_contains($email[0], '.')) { $temp = explode('.', $email[0]); if (is_numeric($temp[1])) { $name = QQInfo::getName3($temp[1]); } else { echo $user->email.PHP_EOL; } } } if ($name === false) { $name = $user->email; } return $name; }