58 lines
1.8 KiB
PHP
58 lines
1.8 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
namespace App\Console\Commands;
|
|||
|
|
|
|||
|
|
use App\Facades\WechatService;
|
|||
|
|
use App\Models\Group;
|
|||
|
|
use Illuminate\Console\Command;
|
|||
|
|
use Illuminate\Support\Facades\Log;
|
|||
|
|
|
|||
|
|
class UpdateGroupChatName extends Command
|
|||
|
|
{
|
|||
|
|
/**
|
|||
|
|
* The name and signature of the console command.
|
|||
|
|
*
|
|||
|
|
* @var string
|
|||
|
|
*/
|
|||
|
|
protected $signature = 'group:chatName';
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* The console command description.
|
|||
|
|
*
|
|||
|
|
* @var string
|
|||
|
|
*/
|
|||
|
|
protected $description = 'Command description';
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* Execute the console command.
|
|||
|
|
*
|
|||
|
|
* @return int
|
|||
|
|
*/
|
|||
|
|
public function handle()
|
|||
|
|
{
|
|||
|
|
Group::whereNull('chat_name')->whereNotNull('chat_id')->chunk(100, function ($groups) {
|
|||
|
|
foreach ($groups as $group) {
|
|||
|
|
Log::info("UpdateGroupChatName group_id: $group->id");
|
|||
|
|
$res = WechatService::groupChat($group->chat_id, 1);
|
|||
|
|
if ($res) {
|
|||
|
|
Log::info(json_encode($res));
|
|||
|
|
if ($res->errcode == 0 && $res->group_chat && $res->group_chat->name) {//成功
|
|||
|
|
$group->update(['chat_name' => $res->group_chat->name]);
|
|||
|
|
continue;
|
|||
|
|
|
|||
|
|
} elseif ($res->errcode == 86003 || $res->errcode == 49008) {//企业群不存在,解除与系统群关系
|
|||
|
|
$group->update(['chat_id' => null]);
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
if ($res->errcode != 0)
|
|||
|
|
throw new \Exception($group->chat_id . "----" . $res->errcode . '----' . $res->errmsg);
|
|||
|
|
}
|
|||
|
|
if (empty($res))
|
|||
|
|
throw new \Exception($group->chat_id . "请求失败");
|
|||
|
|
}
|
|||
|
|
return Command::SUCCESS;
|
|||
|
|
});
|
|||
|
|
return Command::SUCCESS;
|
|||
|
|
}
|
|||
|
|
}
|