dev #1

Merged
Ggy_shinidie merged 14 commits from dev into main 2026-08-14 13:44:59 +08:00
4 changed files with 24 additions and 27 deletions
Showing only changes of commit 9789a64ebb - Show all commits

1
.gitignore vendored
View File

@@ -11,3 +11,4 @@ Thumbs.db
/.buildpath
/.project
/runtime
/.kunsdd

View File

@@ -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),

View File

@@ -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,

View File

@@ -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,24 +39,18 @@ class TicketService
});
}
$order = strtolower($params['sortOrder']) === 'asc' ? 'asc' : 'desc';
$list = $query->order('create_time', $order)->paginate(
$params['limit'],
$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' => $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;
}