12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- namespace app\admin\command;
- use think\console\Command;
- use think\console\Input;
- use think\console\input\Option;
- use think\console\Output;
- use app\common\model\AdminConfig;
- use app\common\model\Ptoken;
- use app\common\model\Platform;
- use think\Log;
- use think\Request;
- class RefreshToken extends Command
- {
- protected function configure()
- {
- $this
- ->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());
- }
- }
- }
|