$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), "searchKeyword" => $this->request->param('search', null), "sortOrder" => $this->request->param('sort_order', 'desc'), ]; $result = $ticketService->getTicketList($params); return $this->success('查询成功', $result); } /** * 新增工单 */ public function createTicket(TicketService $ticketService) { $data = $this->request->post(); try { $result = $ticketService->createTicket($data); return $this->success('创建成功', $result); } catch (\Exception $e) { return $this->error($e->getMessage()); } } /** * 更新工单(后台调用) */ public function updateTicket(TicketService $ticketService, $id) { $adminId = Session::get('id'); // 获取当前登录管理员ID $data = $this->request->post(); $allowFields = ['company_id', 'operator_id', 'user_id', 'website', 'datanum', 'progress', 'status', 'remark']; try { $result = $ticketService->updateTicket($id, $data, $allowFields, $adminId, true); return $this->success('更新成功', $result); } catch (\Exception $e) { return $this->error($e->getMessage()); } } /** * 统计各状态工单数量 */ public function getTicketDashboardStats(TicketService $ticketService) { $result = $ticketService->getTicketDashboardStats(); return $this->success('查询成功', $result); } /** * 批量更新工单 */ public function batchUpdate(TicketService $ticketService) { $adminId = Session::get('user_info.id'); // 获取管理员身份 $data = $this->request->post(); $ids = $data['ids'] ?? []; if (!is_array($ids) || empty($ids)) { return $this->error('ids 必须是非空数组'); } $allowFields = ['status', 'lock_time']; try { $result = $ticketService->batchUpdateTickets($ids, $data, $allowFields, $adminId, true); return $this->success('批量更新成功', $result); } catch (\Exception $e) { return $this->error($e->getMessage()); } } /** * 删除一个工单(仅后台可调用) */ public function deleteTicket($id) { $ticket = Tickets::find($id); if (!$ticket) return $this->error('工单不存在'); return $ticket->delete() ? $this->success('删除成功', []) : $this->error('删除失败', []); } }