| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 | <?php/** * IaCache.php UTF-8 * 积分活动 * * @date    : 2018/5/5 13:59 * * @license 这不是一个自由软件,未经授权不许任何使用和传播。 * @author  : wuyonghong <wyh@huosdk.com> * @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);    }}
 |