1 Star 0 Fork 19

dreawu/Discuz-Q-Update

forked from Discuz/Discuz-Q-Update 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
UpdateUserBingType.php 2.22 KB
一键复制 编辑 原始数据 按行查看 历史
<?php
/**
* Copyright (C) 2021 Tencent Cloud.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace App\Console\Commands\Upgrades;
use App\Common\AuthUtils;
use App\Models\User;
use App\Models\UserWechat;
use App\Models\UserQq;
use Discuz\Console\AbstractCommand;
use Exception;
class UpdateUserBingType extends AbstractCommand
{
protected $signature = 'upgrade:bindType';
protected $description = '用户绑定枚举更新';
protected $batchNum = 1000; // 一次性能够批量处理的数据量
protected function handle()
{
User::query()->where('mobile', '<>', '')->update(['bind_type' => AuthUtils::PHONE]);
$userWechatCount = UserWechat::query()->count();
$wechatLoopNum = ceil($userWechatCount / $this->batchNum);
for ($i = 0; $i<$wechatLoopNum; $i++) {
User::query() ->whereIn('id', UserWechat::query()
->limit($this->batchNum)
->offset($i * $this->batchNum)
->get(['user_id']))
->increment('bind_type', AuthUtils::WECHAT);
}
$userQqCount = UserQq::query()->count();
$qqLoopNum = ceil($userQqCount / $this->batchNum);
for ($i = 0; $i<$qqLoopNum; $i++) {
User::query() ->whereIn('id', UserQq::query()
->limit($this->batchNum)
->offset($i * $this->batchNum)
->get(['user_id']))
->increment('bind_type', AuthUtils::QQ);
}
$this->info('success');
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/dreawu/Discuz-Q-Update.git
git@gitee.com:dreawu/Discuz-Q-Update.git
dreawu
Discuz-Q-Update
Discuz-Q-Update
master

搜索帮助