wip
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user