This commit is contained in:
2026-07-21 16:40:38 +08:00
parent 9f8d6d629a
commit 9789a64ebb
4 changed files with 24 additions and 27 deletions

View File

@@ -15,11 +15,14 @@ class TicketService
* 获取工单列表业务逻辑
* @param array $params 外部传入的过滤参数
*/
public function getTicketList(array $params)
{
$page = max(intval($params['page'] ?? 1), 1);
$limit = min(max(intval($params['limit'] ?? 20), 1), 100);
$order = strtolower($params['sortOrder']) === 'asc' ? 'asc' : 'desc';
$query = Tickets::with(['ticketStaff', 'ticketCompany', 'ticketOperator']); // 查询构造器
// 查询构造器
$query = Tickets::with(['ticketStaff', 'ticketCompany', 'ticketOperator']);
$equalFilters = ['operator_id', 'user_id', 'status'];
foreach ($equalFilters as $field) {
@@ -28,7 +31,6 @@ class TicketService
}
}
// 关键词(模糊搜索)
if (!empty($params['searchKeyword'])) {
$query->where(function ($q) use ($params) {
@@ -37,23 +39,17 @@ class TicketService
});
}
$order = strtolower($params['sortOrder']) === 'asc' ? 'asc' : 'desc';
$list = $query->order('create_time', $order)->paginate(
$params['limit'],
false,
[
'page' => $params['page'],
'query' => $params // 保持分页链接的查询参数
]
);
$list->each(function ($item) {
$item->hidden(['ticketStaff', 'ticketCompany', 'ticketOperator', 'company_id', 'operator_id', 'user_id']);
$item->append(['username', 'company_name', 'operator_name']);
return $item;
});
$list = $query->order('create_time', $order)
->hidden(['ticketStaff', 'ticketCompany', 'ticketOperator', 'company_id', 'operator_id', 'user_id'])
->append(['username', 'company_name', 'operator_name'])
->paginate(
$limit,
false,
[
'page' => $page,
'query' => $params
]
);
return $list;
}