12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- <?php
- 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';
-
- private function getPluginKey($client_id) {
- return 'plugin_client_id_key_'.$client_id;
- }
-
- 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;
- }
-
- 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);
- }
-
- public function updateSdkPlugin($param, $_map) {
- Cache::clear($this->cache_tag);
- return (new SdkPluginConfModel())->update($param, $_map, true);
- }
- }
|