12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- /**
- * SdkPluginCache.php UTF-8
- * SDK更新缓存
- *
- * @date : 2018/6/1 14:32
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : chenbingling <cbl@huosdk.com>
- * @version : HUOSDK 8.0
- */
- namespace huo\controller\app;
- use huo\controller\common\Base;
- use huo\logic\app\SdkPluginConfLogic;
- use huo\model\app\SdkPluginConfModel;
- use think\Cache;
- class SdkPluginCache extends Base {
- public static function ins() {
- return new static();
- }
- protected $cache_tag = 'sdk_plugin_name';
- /**
- * 获取插件KEY
- *
- * @param string $client_id
- *
- * @return string
- */
- private function getPluginKey($client_id) {
- return 'plugin_client_id_key_'.$client_id;
- }
- /**
- * 获取插件列表
- *
- * @param string client_id
- *
- * @return array|bool|mixed
- * @throws \think\Exception
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\ModelNotFoundException
- * @throws \think\exception\DbException
- */
- public function getInfoByClient($client_id) {
- $_key = $this->getPluginKey($client_id);
- $_plugin_data_json = Cache::get($_key);
- $_plugin_data = json_decode($_plugin_data_json, true);
- if(!is_array($_plugin_data)){
- $_plugin_data = $_plugin_data_json;
- }
- if (!is_array($_plugin_data) || empty($_plugin_data)) {
- $_plugin_data = (new SdkPluginConfLogic())->getPluginByClientId($client_id);
- if (empty($_plugin_data)) {
- return false;
- }
- $this->savePluginsCache($client_id, $_plugin_data);
- }
- return $_plugin_data;
- }
- /**
- * 保存插件cache 数据
- *
- * @param $client_id
- * @param $_plugin_data
- * @param int $ttl
- */
- public function savePluginsCache($client_id, $_plugin_data, $ttl = 3600) {
- $_key = $this->getPluginKey($client_id);
- Cache::tag($this->cache_tag)->set($_key, json_encode($_plugin_data), $ttl);
- }
- /**
- * 更新插件信息
- *
- * @param $param
- * @param $_map
- *
- * @return SdkPluginConfModel
- */
- public function updateSdkPlugin($param, $_map) {
- Cache::clear($this->cache_tag);
- return (new SdkPluginConfModel())->update($param, $_map, true);
- }
- }
|