SyncMobile.php 2.7 KB
<?php
/**
 * @remark :
 * @name   :SyncMobile.php
 * @author :lyh
 * @method :post
 * @time   :2023/12/25 15:00
 */

namespace App\Console\Commands\Sync;

use App\Models\Manage\Manage;
use App\Models\Manage\Mobile;
use App\Models\User\User;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;

class SyncMobile extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'sync_manager';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '同步手机号码库';

    /**
     * @remark :统一更新
     * @name   :handle
     * @author :lyh
     * @method :post
     * @time   :2023/11/20 15:13
     */
    public function handle(){
        $url = 'https://www.quanqiusou.cn/extend_api/saas/get_phone.php';
//        $data = curlGet($url);//TODO::获取号码库
        $client = new \GuzzleHttp\Client();
        try {
            $data = $client->request('GET', $url, [
                'proxy' => env('CURL_PROXY'), // 代理服务器地址和端口号
            ])->getBody()->getContents();
        }catch (\Exception $e){
            echo date('Y-m-d H:i:s').':未拉起到数据'.PHP_EOL;
        }
        $saveData = [];
        if(!empty($data)){
            $mobileModel = new Mobile();
            $mobileModel->truncate();
            $data = json_decode($data, true);
            $userModel = new User();
            foreach ($data as $mobile){
                $saveData[] = $mobile;
                $param = [
                    'mobile'=>$mobile,
                    'created_at'=>date('Y-m-d H:i:s')
                ];
                $mobileModel->insert($param);
                //查看当前用户是否存在
                $info = $userModel->read(['mobile'=>$mobile,'project_id'=>1],['id']);
                if($info === false){
                    $userModel->add([
                        'mobile'=>$mobile,
                        'password'=>base64_encode(md5('123456')),
                        'project_id'=>1,
                        'name'=>$mobile,
                        'type'=>$userModel::TYPE_ONE
                    ]);
                }
            }
            $saveData[] = '13083988828';
            $managerModel = new Manage();
            $mobileArr = $managerModel->selectField(['status'=>1],'mobile');
            $saveData = array_values(array_unique(array_merge($saveData,$mobileArr)));
            $userModel->edit(['status'=>1],['project_id'=>1,'mobile'=>['not in',$saveData]]);
            $userModel->edit(['status'=>0],['project_id'=>1,'mobile'=>['in',$saveData]]);
        }
        echo 'end.'.PHP_EOL;
        return true;
    }
}