优化配置缓存

This commit is contained in:
evoxwht 2023-04-12 17:37:35 +08:00
parent 70659e5cc9
commit 91ae0c4edc
6 changed files with 57 additions and 41 deletions

View File

@ -402,7 +402,7 @@ class Common extends AuthController
'info' => ''
]);
}
\crmeb\services\CacheService::clear();
$services->cacheDriver()->clear();
return app('json')->success(100000);
}

View File

@ -10,9 +10,9 @@
// +----------------------------------------------------------------------
namespace app\adminapi\controller\v1\notification\sms;
use app\services\system\config\SystemConfigServices;
use app\services\yihaotong\SmsAdminServices;
use app\services\serve\ServeServices;
use crmeb\services\CacheService;
use app\adminapi\controller\AuthController;
use think\facade\App;
@ -64,7 +64,8 @@ class SmsConfig extends AuthController
*/
public function is_login(ServeServices $services)
{
$sms_info = CacheService::get('sms_account');
$configServices = app()->make(SystemConfigServices::class);
$sms_info = $configServices->cacheDriver()->get('sms_account');
$data = ['status' => false, 'info' => ''];
if ($sms_info) {
try {
@ -80,14 +81,14 @@ class SmsConfig extends AuthController
}
return app('json')->success($data);
} else {
CacheService::clear();
$configServices->cacheDriver()->clear();
$account = sys_config('sms_account');
$password = sys_config('sms_token');
//没有退出登录 清空这两个数据 自动登录
if ($account && $password) {
$res = $services->user()->login($account, $password);
if ($res) {
CacheService::set('sms_account', $account);
$configServices->cacheDriver()->set('sms_account', $account);
$data['status'] = true;
$data['info'] = $account;
}
@ -103,9 +104,10 @@ class SmsConfig extends AuthController
*/
public function logout()
{
CacheService::delete('sms_account');
$configServices = app()->make(SystemConfigServices::class);
$configServices->cacheDriver()->delete('sms_account');
$this->services->updateSmsConfig('', '');
CacheService::clear();
$configServices->cacheDriver()->clear();
return app('json')->success(100042);
}

View File

@ -12,7 +12,6 @@ namespace app\adminapi\controller\v1\setting;
use app\adminapi\controller\AuthController;
use app\Request;
use app\services\order\StoreOrderServices;
use app\services\system\config\SystemConfigServices;
use app\services\system\config\SystemConfigTabServices;
use think\facade\App;
@ -38,8 +37,10 @@ class SystemConfig extends AuthController
/**
* 显示资源列表
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function index()
{
@ -58,8 +59,11 @@ class SystemConfig extends AuthController
/**
* 显示创建资源表单页.
* @param $type
* @return \think\Response
* @throws \FormBuilder\Exception\FormBuilderException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function create()
{
@ -72,7 +76,6 @@ class SystemConfig extends AuthController
/**
* 保存新建的资源
*
* @return \think\Response
*/
public function save()
@ -120,7 +123,7 @@ class SystemConfig extends AuthController
} else {
$this->services->save($data);
}
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(400284);
}
@ -186,13 +189,12 @@ class SystemConfig extends AuthController
}
$data['value'] = json_encode($data['value']);
$this->services->update($id, $data);
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100001);
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
@ -201,7 +203,7 @@ class SystemConfig extends AuthController
if (!$this->services->delete($id))
return app('json')->fail(100008);
else {
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100002);
}
}
@ -218,7 +220,7 @@ class SystemConfig extends AuthController
return app('json')->fail(100100);
}
$this->services->update($id, ['status' => $status]);
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100014);
}
@ -336,7 +338,7 @@ class SystemConfig extends AuthController
$this->services->update($k, ['value' => json_encode($v)], 'menu_name');
}
}
\crmeb\services\CacheService::clear();
$this->services->cacheDriver()->clear();
return app('json')->success(100001);
}

View File

@ -185,6 +185,7 @@ class SystemConfigServices extends BaseServices
/**
* SystemConfigServices constructor.
* @param SystemConfigDao $dao
* @param FormBuilder $builder
*/
public function __construct(SystemConfigDao $dao, FormBuilder $builder)
{
@ -192,6 +193,12 @@ class SystemConfigServices extends BaseServices
$this->builder = $builder;
}
/**
* @return array|int[]|string[]
* @author 吴汐
* @email 442384644@qq.com
* @date 2023/04/12
*/
public function getSonConfig()
{
$sonConfig = [];
@ -214,6 +221,7 @@ class SystemConfigServices extends BaseServices
* @param string $configName
* @param null $default
* @return mixed|null
* @throws \ReflectionException
*/
public function getConfigValue(string $configName, $default = null)
{
@ -225,6 +233,7 @@ class SystemConfigServices extends BaseServices
* 获取全部配置
* @param array $configName
* @return array
* @throws \ReflectionException
*/
public function getConfigAll(array $configName = [])
{
@ -575,14 +584,12 @@ class SystemConfigServices extends BaseServices
/**
* 获取系统配置表单
* @param int $id
* @param array $formData
* @param $data
* @param bool $control
* @param array $controle_two
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @throws \FormBuilder\Exception\FormBuilderException
*/
public function formTypeShine($data, $control = false, $controle_two = [])
{
@ -813,6 +820,7 @@ class SystemConfigServices extends BaseServices
/**
* 系统配置form表单创建
* @param $url
* @param int $tabId
* @return array
* @throws \FormBuilder\Exception\FormBuilderException
@ -982,6 +990,10 @@ class SystemConfigServices extends BaseServices
* @param int $type
* @param int $tab_id
* @return array
* @throws \FormBuilder\Exception\FormBuilderException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function createFormRule(int $type, int $tab_id): array
{
@ -1115,7 +1127,8 @@ class SystemConfigServices extends BaseServices
}
}
/**保存平台电子面单打印信息
/**
* 保存平台电子面单打印信息
* @param array $data
* @return bool
*/
@ -1132,7 +1145,7 @@ class SystemConfigServices extends BaseServices
foreach ($data as $key => $value) {
$this->dao->update(['menu_name' => 'config_export_' . $key], ['value' => json_encode($value)]);
}
\crmeb\services\CacheService::clear();
$this->cacheDriver()->clear();
return true;
}
@ -1149,7 +1162,7 @@ class SystemConfigServices extends BaseServices
if ($banner) {
$banner = array_column($banner, 'pic');
$this->dao->update(['menu_name' => 'spread_banner'], ['value' => json_encode($banner)]);
\crmeb\services\CacheService::clear();
$this->cacheDriver()->clear();
}
}
return $banner;

View File

@ -15,7 +15,6 @@ namespace app\services\yihaotong;
use app\dao\system\config\SystemConfigDao;
use app\services\BaseServices;
use crmeb\exceptions\AdminException;
use crmeb\services\CacheService;
use crmeb\services\HttpService;
use crmeb\services\sms\Sms;
@ -47,7 +46,7 @@ class SmsAdminServices extends BaseServices
return $this->transaction(function () use ($account, $password) {
$this->dao->update('sms_account', ['value' => json_encode($account)], 'menu_name');
$this->dao->update('sms_token', ['value' => json_encode($password)], 'menu_name');
CacheService::clear();
$this->cacheDriver()->clear();
});
}
@ -70,7 +69,6 @@ class SmsAdminServices extends BaseServices
throw new AdminException(400462, ['msg' => $status['msg']]);
}
$this->updateSmsConfig($account, $password);
CacheService::clear();
return $status;
}
@ -120,8 +118,7 @@ class SmsAdminServices extends BaseServices
$sms->use($v['id'], $v['templateid']);
}
}
CacheService::clear();
CacheService::set('sms_account', $account);
$this->cacheDriver()->set('sms_account', $account);
return true;
} else {
return false;

View File

@ -24,16 +24,17 @@ class SystemConfigService
/**
* 获取单个配置效率更高
* @param $key
* @param string $default
* @param string $key
* @param $default
* @param bool $isCaChe 是否获取缓存配置
* @return bool|mixed|string
*/
public static function get(string $key, $default = '', bool $isCaChe = false)
{
$callable = function () use ($key) {
/** @var SystemConfigServices $service */
$service = app()->make(SystemConfigServices::class);
/** @var SystemConfigServices $service */
$service = app()->make(SystemConfigServices::class);
$callable = function () use ($service, $key) {
return $service->getConfigValue($key);
};
@ -41,7 +42,7 @@ class SystemConfigService
if ($isCaChe) {
return $callable();
}
return CacheService::remember(self::CACHE_SYSTEM . ':' . $key, $callable);
return $service->cacheDriver()->remember(self::CACHE_SYSTEM . ':' . $key, $callable);
} catch (\Throwable $e) {
return $default;
}
@ -55,16 +56,17 @@ class SystemConfigService
*/
public static function more(array $keys, bool $isCaChe = false)
{
$callable = function () use ($keys) {
/** @var SystemConfigServices $service */
$service = app()->make(SystemConfigServices::class);
/** @var SystemConfigServices $service */
$service = app()->make(SystemConfigServices::class);
$callable = function () use ($service, $keys) {
return Arr::getDefaultValue($keys, $service->getConfigAll($keys));
};
try {
if ($isCaChe)
return $callable();
return CacheService::remember(self::CACHE_SYSTEM . ':' . md5(implode(',', $keys)), $callable);
return $service->cacheDriver()->remember(self::CACHE_SYSTEM . ':' . md5(implode(',', $keys)), $callable);
} catch (\Throwable $e) {
return Arr::getDefaultValue($keys);
}