diff --git a/.gitignore b/.gitignore index b2f14d6..6c0ba71 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ Thumbs.db /.settings /.buildpath /.project -/runtime \ No newline at end of file +/runtime +/.kunsdd \ No newline at end of file diff --git a/app/admin/controller/Ticket.php b/app/admin/controller/Ticket.php index 86bd935..fa3bb2b 100644 --- a/app/admin/controller/Ticket.php +++ b/app/admin/controller/Ticket.php @@ -20,7 +20,6 @@ class Ticket extends BaseController $params = [ "page" => $this->request->param('page', 1, 'intval'), "limit" => $this->request->param('limit', 20, 'intval'), - "operator_id" => $this->request->param('operator_id', null), "user_id" => $this->request->param('user_id', null), "status" => $this->request->param('status', null), diff --git a/app/common/Trait/ApiResponse.php b/app/common/Trait/ApiResponse.php index a362c10..62d2fc5 100644 --- a/app/common/Trait/ApiResponse.php +++ b/app/common/Trait/ApiResponse.php @@ -1,4 +1,5 @@ jsonResponse($code, $message, $data); + return $this->jsonResponse($message, $data, $code); } /** @@ -25,15 +26,15 @@ trait ApiResponse * @param mixed $data 额外的错误数据(如验证未通过的具体字段) * @return Json */ - protected function error(int $code = 400, string $message = '操作失败', mixed $data = []): Json + protected function error(string $message = '操作失败', mixed $data = [], int $code = 400): Json { - return $this->jsonResponse($code, $message, $data); + return $this->jsonResponse($message, $data, $code); } /** * 统一 JSON 返回格式 */ - private function jsonResponse(int $code, string $message, mixed $data): Json + private function jsonResponse(string $message, mixed $data, int $code): Json { $result = [ 'code' => $code, diff --git a/app/common/service/TicketService.php b/app/common/service/TicketService.php index abdc50b..acb1d9d 100644 --- a/app/common/service/TicketService.php +++ b/app/common/service/TicketService.php @@ -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; }