public function actionPublish() { $accountId = $this->getAccountId(); $redis = Yii::$app->cache->redis; $settings = $redis->get(self::SELF_SETTING_PREFIX . $accountId); $selfHelpDeskSetting = SelfHelpDeskSetting::findOne(['accountId' => new MongoId($accountId)]); if (!empty($settings)) { $settings = unserialize($settings); $settings['isPublished'] = true; $redis->set(self::SELF_SETTING_PREFIX . $accountId, serialize($settings)); if (empty($selfHelpDeskSetting)) { $selfHelpDeskSetting = new SelfHelpDeskSetting(); } $selfHelpDeskSetting['settings'] = $settings['settings']; $selfHelpDeskSetting['accountId'] = $settings['accountId']; if ($selfHelpDeskSetting->save()) { return ['status' => 'ok']; } else { return ['status' => 'failed']; } } else { if (!empty($selfHelpDeskSetting)) { $selfHelpDeskSetting->delete(); } return ['status' => 'ok']; } }