dev #1
3
.gitignore
vendored
3
.gitignore
vendored
@@ -10,4 +10,5 @@ Thumbs.db
|
|||||||
/.settings
|
/.settings
|
||||||
/.buildpath
|
/.buildpath
|
||||||
/.project
|
/.project
|
||||||
/runtime
|
/runtime
|
||||||
|
/.kunsdd
|
||||||
@@ -20,7 +20,6 @@ class Ticket extends BaseController
|
|||||||
$params = [
|
$params = [
|
||||||
"page" => $this->request->param('page', 1, 'intval'),
|
"page" => $this->request->param('page', 1, 'intval'),
|
||||||
"limit" => $this->request->param('limit', 20, 'intval'),
|
"limit" => $this->request->param('limit', 20, 'intval'),
|
||||||
|
|
||||||
"operator_id" => $this->request->param('operator_id', null),
|
"operator_id" => $this->request->param('operator_id', null),
|
||||||
"user_id" => $this->request->param('user_id', null),
|
"user_id" => $this->request->param('user_id', null),
|
||||||
"status" => $this->request->param('status', null),
|
"status" => $this->request->param('status', null),
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace app\common\Trait;
|
namespace app\common\Trait;
|
||||||
|
|
||||||
use think\Response;
|
use think\Response;
|
||||||
@@ -13,9 +14,9 @@ trait ApiResponse
|
|||||||
* @param int $code 自定义业务状态码
|
* @param int $code 自定义业务状态码
|
||||||
* @return Json
|
* @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 额外的错误数据(如验证未通过的具体字段)
|
* @param mixed $data 额外的错误数据(如验证未通过的具体字段)
|
||||||
* @return Json
|
* @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 返回格式
|
* 统一 JSON 返回格式
|
||||||
*/
|
*/
|
||||||
private function jsonResponse(int $code, string $message, mixed $data): Json
|
private function jsonResponse(string $message, mixed $data, int $code): Json
|
||||||
{
|
{
|
||||||
$result = [
|
$result = [
|
||||||
'code' => $code,
|
'code' => $code,
|
||||||
|
|||||||
@@ -15,11 +15,14 @@ class TicketService
|
|||||||
* 获取工单列表业务逻辑
|
* 获取工单列表业务逻辑
|
||||||
* @param array $params 外部传入的过滤参数
|
* @param array $params 外部传入的过滤参数
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function getTicketList(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'];
|
$equalFilters = ['operator_id', 'user_id', 'status'];
|
||||||
foreach ($equalFilters as $field) {
|
foreach ($equalFilters as $field) {
|
||||||
@@ -28,7 +31,6 @@ class TicketService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 关键词(模糊搜索)
|
// 关键词(模糊搜索)
|
||||||
if (!empty($params['searchKeyword'])) {
|
if (!empty($params['searchKeyword'])) {
|
||||||
$query->where(function ($q) use ($params) {
|
$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)
|
||||||
|
->hidden(['ticketStaff', 'ticketCompany', 'ticketOperator', 'company_id', 'operator_id', 'user_id'])
|
||||||
$list = $query->order('create_time', $order)->paginate(
|
->append(['username', 'company_name', 'operator_name'])
|
||||||
$params['limit'],
|
->paginate(
|
||||||
false,
|
$limit,
|
||||||
[
|
false,
|
||||||
'page' => $params['page'],
|
[
|
||||||
'query' => $params // 保持分页链接的查询参数
|
'page' => $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;
|
|
||||||
});
|
|
||||||
|
|
||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user