* [perf] decrease search params saved in session to improve performance.

This commit is contained in:
liugang
2025-07-08 13:29:50 +08:00
parent a5975e92e1
commit f862f6d46b
2 changed files with 62 additions and 13 deletions
+28 -4
View File
@@ -34,9 +34,21 @@ class search extends control
$module = empty($module) ? $this->session->searchParams['module'] : $module;
$searchParams = $module . 'searchParams';
$searchForm = $module . 'Form';
$funcName = $_SESSION[$searchParams]['funcName'] ?? '';
$funcArgs = $_SESSION[$searchParams]['funcArgs'] ?? [];
$fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields;
$params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params;
if($funcName)
{
$funcArgs[] = true; // 处理选项列表。
$this->loadModel($module)->$funcName(...$funcArgs);
$fields = empty($fields) ? $this->config->$module->search['fields'] : $fields;
$params = empty($params) ? $this->config->$module->search['params'] : $params;
}
else
{
$fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields;
$params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params;
}
$_SESSION['searchParams']['module'] = $module;
if(empty($_SESSION[$searchForm])) $this->search->initSession($module, $fields, $params);
@@ -82,9 +94,21 @@ class search extends control
$module = empty($module) ? $this->session->searchParams['module'] : $module;
$searchParams = $module . 'searchParams';
$searchForm = $module . 'Form';
$funcName = $_SESSION[$searchParams]['funcName'] ?? '';
$funcArgs = $_SESSION[$searchParams]['funcArgs'] ?? [];
$fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields;
$params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params;
if($funcName)
{
$funcArgs[] = true; // 处理选项列表。
$this->loadModel($module)->$funcName(...$funcArgs);
$fields = empty($fields) ? $this->config->$module->search['fields'] : $fields;
$params = empty($params) ? $this->config->$module->search['params'] : $params;
}
else
{
$fields = empty($fields) ? json_decode($_SESSION[$searchParams]['searchFields'], true) : $fields;
$params = empty($params) ? json_decode($_SESSION[$searchParams]['fieldParams'], true) : $params;
}
$_SESSION['searchParams']['module'] = $module;
if(empty($_SESSION[$searchForm])) $this->search->initOldSession($module, $fields, $params);