* @version : HUOSDK 8.0 */ namespace huo\controller\wap; use huo\controller\common\Base; use huo\model\option\OptionModel; use think\Cache; class OptionCache extends Base { public static function ins() { return new static(); } /** * 获取optionKEY * * @param string $option_id * * @return string */ private function getOptionKey($option_name) { return 'option_name_key_'.$option_name; } /** * 获取Option信息 * * @param string $option_id * * @return array|bool|mixed */ public function getInfoByOptionName($option_name, $autoload = 1, $auto_add = false, $auto_add_data = '') { $_key = $this->getOptionKey($option_name); $_option_data_json = Cache::get($_key); $_option_data = json_decode($_option_data_json, true); if (!is_array($_option_data)) { $_option_data = $_option_data_json; } if (!is_array($_option_data) || empty($_option_data)) { $_option_data = (new OptionModel())->getOptionData($option_name, $autoload, $auto_add, $auto_add_data); if (empty($_option_data)) { return false; } $this->saveOptionCache($option_name, $_option_data); } return $_option_data; } /** * 保存Option cache 数据 * * @param $option_id * @param $_option_data * @param int $ttl */ public function saveOptionCache($option_name, $_option_data, $ttl = 3600) { $_key = $this->getOptionKey($option_name); Cache::set($_key, json_encode($_option_data), $ttl); } /** * 更新option信息 * * @param string $option_name * @param array $option_data * * @return bool */ public function updateOption($option_name, $option_data) { $this->saveOptionCache($option_name, $option_data); $_rs = (new OptionModel())->saveOptionData($option_name, $option_data); $this->deleteOptionCache($option_name); return $_rs; } /** * 删除option cache 数据 * * @param string $option_name * * @return void * @author chenbingling * @date 2018/5/9 14:15 */ public function deleteOptionCache($option_name) { $_key = $this->getOptionKey($option_name); Cache::rm($_key); } }