ShareUser.php 2.6 KB
<?php

namespace App\Console\Commands\AyrShare;
use App\Helper\AyrShare as AyrShareHelper;
use App\Models\AyrShare\AyrRelease as AyrReleaseModel;
use Carbon\Carbon;
use App\Models\AyrShare\AyrShare as AyrShareModel;
use Illuminate\Console\Command;

class ShareUser extends Command
{
    public $error = 0;
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'share_user';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '用户一周内无记录清除Ayr_share';
    /**
     * @name   :(定时执行)handle
     * @author :lyh
     * @method :post
     * @time   :2023/5/12 14:48
     */
    public function handle()
    {
        $this->user_operator_record();
    }

    /**
     * @name   : 检测用户是否无操作记录
     * @author :lyh
     * @method :post
     * @time   :2023/5/12 14:55
     */
    protected function user_operator_record(){
        //获取所有ayr_share用户
        $ayr_share_model = new AyrShareModel();
        $ayr_share_list = $ayr_share_model->list();
        foreach ($ayr_share_list as $k => $v){
            //查询当前用户是否有未推送的博文
            $ayr_release = new AyrReleaseModel();
            $release_info = $ayr_release->read(['idempotency_key'=>['<',date('Y-m-d H:i:s',time())],'share_id'=>$v['id']]);
            //有推文时,直接跳出循环
            if($release_info !== false){
                continue;
            }
            //查看用户是否在一周内有发送博客
            $start_at = Carbon::now()->modify('-7 days')->toDateString();
            $end_at = Carbon::now()->toDateString();
            $release_info = $ayr_release->read(['created_at'=>['between',[$start_at,$end_at]]]);
            //有发送博文,则跳出循环
            if($release_info  == false){
                continue;
            }
            //删除用户第三方配置
            $ayr_share_helper = new AyrShareHelper();
            $res = $ayr_share_helper->deleted_profiles();
            if($res['status'] == 'fail'){
                $this->error++;
                continue;
            }
            //更新数据库
            $data = [
                'title'=>null,
                'bind_plat_from'=>null,
                'profile_key'=>null,
                'ref_id'=>null,
            ];
            $res = $ayr_share_model->edit($data,['id'=>$v['id']]);
            if($res == false){
                $this->error++;
            }
        }
        return $this->error;
    }
}