setName('RefreshToken') ->addOption('type', 't', Option::VALUE_OPTIONAL, '要处理的缓存类型,token:刷新微信Token', 'token') ->setDescription('多平台上线刷新Token数据'); } protected function execute(Input $input, Output $output) { Request::instance()->module('admin'); //cli模式下无法获取到当前的项目模块,手动指定一下 $type = $input->getOption('type'); switch ($type) { case 'token': $output->writeln("Type: token 刷新Token"); $this->token($input, $output); break; default: $output->writeln("Type: {$type} 无法识别的类型"); } $output->writeln("处理完毕!"); } /** * 刷新渠道商Token数据 * @param $input * @param $output * @return bool */ private function token(Input $input, Output $output){ try{ $adminConfigModel = new AdminConfig(); $platformModel = new Platform(); $ptokenModel = new Ptoken(); //获取渠道信息 if(!$adminConfig = $adminConfigModel->select()){ $output->info('RefreshToken success msg:没有渠道商'); return true; } //获取平台信息 if(!$platform = $platformModel->where(['status'=>'1','isdefault'=>'1'])->find()){ $output->error('RefreshToken fail msg:没有取到默认平台'); return false; } //拼接SQL foreach($adminConfig as $channel){ if($channel['refresh_token'] && $channel['is_auth']){ $map = ['admin_id'=>$channel['admin_id'],'platform_id'=>$platform['id']]; if($ptoken = $ptokenModel->where($map)->find()){ if(false !== $ptoken->save(['refresh_token'=>$channel['refresh_token']])){ $output->info('RefreshToken success update msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); Log::info('RefreshToken success update msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); }else{ $output->error('RefreshToken fail update msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); Log::error('RefreshToken fail update msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); } }else{ if($insert = $ptokenModel->insertGetId(array_merge($map,['refresh_token'=>$channel['refresh_token']]))){ $output->info('RefreshToken success insert msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); Log::info('RefreshToken success insert msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); }else{ $output->error('RefreshToken fail insert msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); Log::error('RefreshToken fail insert msg:'.var_export(array_merge($map,['refresh_token'=>$channel['refresh_token']]),true)); } } } } }catch (\Exception $e){ $output->error('RefreshToken fail msg:'.$e->getMessage()); } } }