* [perf] decrease search params saved in session to improve performance.
This commit is contained in:
@@ -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);
|
||||
|
||||
+34
-9
@@ -28,13 +28,26 @@ class searchModel extends model
|
||||
|
||||
if($this->config->edition != 'open') $searchConfig = $this->searchTao->processBuildinFields($module, $searchConfig);
|
||||
|
||||
$searchParams['module'] = $searchConfig['module'];
|
||||
$searchParams['searchFields'] = json_encode($searchConfig['fields']);
|
||||
$searchParams['fieldParams'] = json_encode($searchConfig['params']);
|
||||
$searchParams['actionURL'] = $searchConfig['actionURL'];
|
||||
$searchParams['style'] = zget($searchConfig, 'style', 'full');
|
||||
$searchParams['onMenuBar'] = zget($searchConfig, 'onMenuBar', 'no');
|
||||
$searchParams['queryID'] = isset($searchConfig['queryID']) ? $searchConfig['queryID'] : 0;
|
||||
$searchParams['module'] = $searchConfig['module'];
|
||||
$searchParams['actionURL'] = $searchConfig['actionURL'];
|
||||
$searchParams['style'] = zget($searchConfig, 'style', 'full');
|
||||
$searchParams['onMenuBar'] = zget($searchConfig, 'onMenuBar', 'no');
|
||||
$searchParams['queryID'] = isset($searchConfig['queryID']) ? $searchConfig['queryID'] : 0;
|
||||
|
||||
$funcArgs = func_get_args();
|
||||
$funcName = $funcArgs[1] ?? '';
|
||||
unset($funcArgs[0], $funcArgs[1]);
|
||||
|
||||
if($funcName)
|
||||
{
|
||||
$searchParams['funcName'] = $funcName;
|
||||
$searchParams['funcArgs'] = $funcArgs;
|
||||
}
|
||||
else
|
||||
{
|
||||
$searchParams['searchFields'] = json_encode($searchConfig['fields']);
|
||||
$searchParams['fieldParams'] = json_encode($searchConfig['params']);
|
||||
}
|
||||
|
||||
$this->session->set($module . 'searchParams', $searchParams);
|
||||
}
|
||||
@@ -97,11 +110,23 @@ class searchModel extends model
|
||||
/* Init vars. */
|
||||
$module = $this->post->module;
|
||||
$searchParams = $module . 'searchParams';
|
||||
$searchFields = json_decode($_SESSION[$searchParams]['searchFields']);
|
||||
$fieldParams = json_decode($_SESSION[$searchParams]['fieldParams']);
|
||||
$groupItems = $this->config->search->groupItems;
|
||||
$groupAndOr = strtoupper($this->post->groupAndOr);
|
||||
if($groupAndOr != 'AND' && $groupAndOr != 'OR') $groupAndOr = 'AND';
|
||||
$funcName = $_SESSION[$searchParams]['funcName'] ?? '';
|
||||
$funcArgs = $_SESSION[$searchParams]['funcArgs'] ?? [];
|
||||
if($funcName)
|
||||
{
|
||||
$funcArgs[] = true; // 处理选项列表。
|
||||
$this->loadModel($module)->$funcName(...$funcArgs);
|
||||
$searchFields = json_decode(json_encode($this->config->$module->search['fields']));
|
||||
$fieldParams = json_decode(json_encode($this->config->$module->search['params']));
|
||||
}
|
||||
else
|
||||
{
|
||||
$searchFields = json_decode($_SESSION[$searchParams]['searchFields']);
|
||||
$fieldParams = json_decode($_SESSION[$searchParams]['fieldParams']);
|
||||
}
|
||||
|
||||
$queryForm = $this->searchTao->initSession($module, $searchFields, $fieldParams);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user