diff --git a/app/admin/controller/Ticket.php b/app/admin/controller/Ticket.php index be9a123..8812e0e 100644 --- a/app/admin/controller/Ticket.php +++ b/app/admin/controller/Ticket.php @@ -49,6 +49,9 @@ class Ticket extends BaseController $result = $ticketService->createTicket($data); return $this->success('创建成功', $result); } catch (\Exception $e) { + if ($e->getCode() === 409) { + return $this->error($e->getMessage(), ['confirm' => true], 409); + } return $this->error($e->getMessage()); } } diff --git a/app/common/service/TicketService.php b/app/common/service/TicketService.php index c6b85c9..7d3e921 100644 --- a/app/common/service/TicketService.php +++ b/app/common/service/TicketService.php @@ -61,8 +61,8 @@ class TicketService */ public function createTicket(array $data) { - if (isset($data['website']) && $data['website'] === '') { // isset检查键存在且不为null - throw new \Exception('网站不能为空'); + if (!isset($data['website']) || trim((string)$data['website'] === '')) { // isset检查键存在且不为null + throw new \Exception('网站输入不能为空'); } $website = trim($data['website']); @@ -72,7 +72,9 @@ class TicketService ->find(); if ($unfinishedTicket) { - throw new \Exception('已存在未完成的同网站工单,无法创建'); + if (empty($data['confirm'])) { + throw new \Exception('已存在未分配或进行中的相同工单,是否继续创建?', 409); + } } // 当前无相同网站