作者 ZhengBing He

order + status

@@ -25,7 +25,7 @@ class AsideTicketController extends BaseController @@ -25,7 +25,7 @@ class AsideTicketController extends BaseController
25 public function index(AsideTicketListRequest $request) 25 public function index(AsideTicketListRequest $request)
26 { 26 {
27 $validated = $request->validated(); 27 $validated = $request->validated();
28 - $lists = Tickets::with([ 28 + $query = Tickets::with([
29 'logs.engineer', 29 'logs.engineer',
30 'project.pm', 30 'project.pm',
31 'project.projectV6', 31 'project.projectV6',
@@ -66,9 +66,15 @@ class AsideTicketController extends BaseController @@ -66,9 +66,15 @@ class AsideTicketController extends BaseController
66 ->orWhere('company_name', 'like', '%' . $search . '%'); 66 ->orWhere('company_name', 'like', '%' . $search . '%');
67 }); 67 });
68 }); 68 });
69 - })  
70 - ->orderBy('id', 'desc')  
71 - ->paginate($this->row, ['*'], 'page', $this->page); 69 + });
  70 +
  71 + // 添加排序功能
  72 + $sortField = $request->input('sort_field', 'plan_end_at');
  73 + $sortOrder = strtolower($request->input('sort_order', 'asc'));
  74 + $query->orderBy($sortField, $sortOrder);
  75 + // 添加次要排序:按状态升序排列
  76 + $query->orderBy('status', 'asc');
  77 + $lists = $query->paginate($this->row, ['*'], 'page', $this->page);
72 $this->response('success', Code::SUCCESS, $lists); 78 $this->response('success', Code::SUCCESS, $lists);
73 } 79 }
74 80
@@ -95,6 +95,8 @@ class AsideTicketLogController extends BaseController @@ -95,6 +95,8 @@ class AsideTicketLogController extends BaseController
95 if ($project->wechat_switch && !$ticket->close_wechat) 95 if ($project->wechat_switch && !$ticket->close_wechat)
96 $project->pushWechatGroupMsg("工单(ID:{$ticket->id})已全部完成,请访问查看详情!"); 96 $project->pushWechatGroupMsg("工单(ID:{$ticket->id})已全部完成,请访问查看详情!");
97 $ticket->pushDing('finish'); 97 $ticket->pushDing('finish');
  98 + }else{
  99 + $ticket->status = Tickets::STATUS_YANSHOU;
98 } 100 }
99 } 101 }
100 $ticket->save(); 102 $ticket->save();
@@ -24,7 +24,7 @@ class TicketListRequest extends FormRequest @@ -24,7 +24,7 @@ class TicketListRequest extends FormRequest
24 public function rules() 24 public function rules()
25 { 25 {
26 return [ 26 return [
27 - 'status' => 'nullable|in:0,1,2,3|integer', 27 + 'status' => 'nullable|in:0,1,2,3,9|integer',
28 'search' => 'nullable|string', // 搜索关键词 28 'search' => 'nullable|string', // 搜索关键词
29 'page' => 'nullable|integer', 29 'page' => 'nullable|integer',
30 'size' => 'nullable|integer', 30 'size' => 'nullable|integer',
@@ -25,12 +25,14 @@ class AsideTicketListRequest extends FormRequest @@ -25,12 +25,14 @@ class AsideTicketListRequest extends FormRequest
25 { 25 {
26 return [ 26 return [
27 'project_id' => 'nullable|string', 27 'project_id' => 'nullable|string',
28 - 'status' => 'nullable|in:0,1,2,3|integer', 28 + 'status' => 'nullable|in:0,1,2,3,9|integer',
29 'star' => 'nullable|in:1,2,3|integer', 29 'star' => 'nullable|in:1,2,3|integer',
30 'search' => 'nullable|string', // 搜索关键词 30 'search' => 'nullable|string', // 搜索关键词
31 'engineer_id' => 'nullable|integer', // 工程师ID 31 'engineer_id' => 'nullable|integer', // 工程师ID
32 'page' => 'nullable|integer', 32 'page' => 'nullable|integer',
33 'size' => 'nullable|integer', 33 'size' => 'nullable|integer',
  34 + 'sort_field' => 'nullable|in:id,plan_end_at',
  35 + 'sort_order' => 'nullable|in:asc,desc',
34 ]; 36 ];
35 } 37 }
36 } 38 }
@@ -27,7 +27,7 @@ class AsideTicketUpdateRequest extends FormRequest @@ -27,7 +27,7 @@ class AsideTicketUpdateRequest extends FormRequest
27 'title' => 'nullable|string', 27 'title' => 'nullable|string',
28 'content' => 'nullable|string', 28 'content' => 'nullable|string',
29 'files' => 'nullable|array', 29 'files' => 'nullable|array',
30 - 'status' => 'nullable|in:0,1,2,3|integer', 30 + 'status' => 'nullable|in:0,1,2,3,9|integer',
31 'engineer_ids' => 'nullable|array', 31 'engineer_ids' => 'nullable|array',
32 'star' => 'nullable|in:1,2,3|integer', 32 'star' => 'nullable|in:1,2,3|integer',
33 'plan_end_at' => 'nullable|date', 33 'plan_end_at' => 'nullable|date',
@@ -15,8 +15,9 @@ class Tickets extends Base @@ -15,8 +15,9 @@ class Tickets extends Base
15 15
16 const STATUS_PEDDING = 0; // 待处理 16 const STATUS_PEDDING = 0; // 待处理
17 const STATUS_PROCESSING = 1; // 处理中 17 const STATUS_PROCESSING = 1; // 处理中
18 - const STATUS_COMPLETED = 2; // 已完成  
19 - const STATUS_CLOSED = 3; // 已关闭,已失效 18 + const STATUS_YANSHOU = 2; // 验收中
  19 + const STATUS_COMPLETED = 3; // 已完成
  20 + const STATUS_CLOSED = 9; // 已关闭,已失效,审核不通过,结束工单设置大一点,方便中途又要加状态
20 21
21 /** 22 /**
22 * @return void 23 * @return void