* @version : HUOSDK 8.0 */ namespace huo\controller\integral; use huo\controller\common\Base; use huo\model\integral\IntegralActivityModel; use huolib\status\IntegralStatus; use think\Cache; class IaCache extends Base { /** * 实例化 * * @return static */ public static function ins() { return new static(); } /** * @param int $ia_id * * @return int|array */ public function getIa($ia_id = 0) { if (empty($ia_id)) { return IntegralStatus::ITG_IA_ID_EMPTY; } $_ias = $this->getIas(); if (!isset($_ias[$ia_id])) { return IntegralStatus::ITG_IA_ERROR; } return $_ias[$ia_id]; } /** * 获取积分活动KEY * * * @return string */ public function getIasKey() { return 'itg_acts'; } /** * 获取积分活动数据 * * @return array|bool|mixed */ public function getIas() { $_key = $this->getIasKey(); $_ias_data_json = Cache::get($_key); $_ias_data = json_decode($_ias_data_json, true); if(!is_array($_ias_data)){ $_ias_data = $_ias_data_json; } if (!is_array($_ias_data) || empty($_ias_data)) { $_ias_data = (new IntegralActivityModel())->getIas(); if (empty($_ias_data)) { return false; } $this->saveIasCache($_ias_data); } return $_ias_data; } /** * 设置积分活动数据 * * @param array $ias_data * @param int $ttl */ public function saveIasCache($ias_data, $ttl = 3600) { $_key = $this->getIasKey(); Cache::set($_key, json_encode($ias_data), $ttl); } /** * 更新积分活动信息 * * @param int $ia_id * @param array $ia_data * * @return bool */ public function updateIa($ia_id, $ia_data) { $_key = $this->getIasKey(); Cache::rm($_key); return (new IntegralActivityModel())->updateIa($ia_data, $ia_id); } }