fix:代码块类目模块查询优化

This commit is contained in:
xjh 2023-07-05 16:22:25 +08:00
parent cfcb7c40e9
commit f5949188b1
2 changed files with 8 additions and 12 deletions

View File

@ -30,7 +30,7 @@ class CodeModuleCategory extends BaseController
*/
public function getCodeModuleCategoryList(Request $request): array
{
$paging_info = LogicCodeModuleCategory::handleCodeModuleCategoryPaging($request->param());
$paging_info = LogicCodeModuleCategory::handleQueryPaging($request->param());
$tree_data = LogicCodeModuleCategory::buildTreeData($paging_info['guids']);
return msg(0, "获取代码块类目列表成功!", [
'count' => $paging_info['count'],

View File

@ -11,7 +11,7 @@ class CodeModuleCategory
{
/**
* 类目分页处理
* 类目查询分页处理
*
* @param array $params 请求参数
* @return array ['count' => 总数量 ,'guids' => 分页后的主级类目guid数组]
@ -19,7 +19,7 @@ class CodeModuleCategory
* @author xjh
* @since 1.0.0
*/
public static function handleCodeModuleCategoryPaging(array $params): array
public static function handleQueryPaging(array $params): array
{
$con = Tool::getOptionalQuery(
['cmc.code_module_category_name', 'LIKE'],
@ -34,18 +34,14 @@ class CodeModuleCategory
}
$module_category_guids = [];
//【分页处理1】正常情况
//【分页查询处理1】正常情况-仅仅针对主级类目的查询分页处理
$query = ModelCodeModuleCategory::alias('cmc')->leftjoin('customer cust', 'cmc.customer_guid = cust.customer_guid')->scope('master')->where($con);
$module_category_guids = Tool::pageWrapper($query)->column('code_module_category_guid');
//【分页处理2】(当前查询未审核的类目时,原正常情况分页处理查询不到子类目未审核的数据,此时要走这条查询)
//情况:目前查询未审核的类目数据并且分页处理1未能查出任何数据
//该查询会将未审核子类目的所属主类目给查询出来并分页处理
if ($params['code_module_category_audit'] == ModelCodeModuleCategory::AUDIT_UNAUDITED) {
if (!$module_category_guids) {
$query = ModelCodeModuleCategory::alias('cmc')->leftjoin('customer cust', 'cmc.customer_guid = cust.customer_guid')->where($con)->group('code_module_category_parent_guid');
$module_category_guids = Tool::pageWrapper($query)->column('code_module_category_parent_guid');
}
//【分页查询2】特殊情况-当正常情况的查询分页处理无任何数据时,则通过符合查询条件的子级类目来反推出主级类目)
if (!$module_category_guids) {
$query = ModelCodeModuleCategory::alias('cmc')->leftjoin('customer cust', 'cmc.customer_guid = cust.customer_guid')->where($con)->group('code_module_category_parent_guid');
$module_category_guids = Tool::pageWrapper($query)->column('code_module_category_parent_guid');
}
return [