0, 'access_token' => '', ]; if ($fromDb == false) { $data = Redis::instance()->hMGet($redisKey, ['account_id', 'access_token', 'access_token_expire_time']); if ($data['account_id'] !== false) { if ($data['account_id'] > 0) { if ($data['access_token_expire_time'] <= time()) { $fromDb = true; } else { $result['account_id'] = $data['account_id']; $result['access_token'] = $data['access_token']; } } } else { $fromDb = true; } } if ($fromDb) { $row = $this->find(); if ($row) { $data = $row->toArray(); //需要检测token有效期 if ($data['access_token_expire_time'] <= time()) { $config = Env::get("tdc"); $access_token = GdtService::instance()->apiUpdateAccessToken($data['account_id'], $data['refresh_token'], $config); if (is_null($access_token)) { Log::error("TDC刷新access_token失败:admin_id:0"); $result = [ 'account_id' => 0, 'access_token' => '', ]; } else { //更新数据库 $this->update(['access_token' => $access_token, 'access_token_expire_time' => time() + 85400, 'updatetime' => time()], ['id' => $data['id']]); $data['access_token'] = $access_token; $data['access_token_expire_time'] = time() + 85400; $result = [ 'account_id' => $data['account_id'], 'access_token' => $access_token, ]; } } else { $result = [ 'account_id' => $data['account_id'], 'access_token' => $data['access_token'], ]; } } else { $data = [ 'admin_id' => 0, 'account_id' => 0, 'access_token' => '', 'access_token_expire_time' => 0, ]; } Redis::instance()->hMSet($redisKey, $data); Redis::instance()->expire($redisKey, 83400); } return $result; } }