wip
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -11,3 +11,4 @@ Thumbs.db
|
||||
/.buildpath
|
||||
/.project
|
||||
/runtime
|
||||
/.kunsdd
|
||||
@@ -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),
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\Trait;
|
||||
|
||||
use think\Response;
|
||||
@@ -13,9 +14,9 @@ trait ApiResponse
|
||||
* @param int $code 自定义业务状态码
|
||||
* @return Json
|
||||
*/
|
||||
protected function success(int $code = 200, string $message = '操作成功', mixed $data = []): Json
|
||||
protected function success(string $message = '操作成功', mixed $data = [], int $code = 200): Json
|
||||
{
|
||||
return $this->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,
|
||||
|
||||
@@ -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