|
...
|
...
|
@@ -25,9 +25,9 @@ class AsideTicketController extends BaseController |
|
|
|
* 1. 超管看所有工单
|
|
|
|
* 2. 其他查看和自己有关的工单
|
|
|
|
*/
|
|
|
|
$lists = TicketLog::with([
|
|
|
|
'ticket.project.projectV6:id,company,title',
|
|
|
|
'ticket.logs.engineer:id,name',
|
|
|
|
$lists = Tickets::with([
|
|
|
|
'logs.engineer:id,name',
|
|
|
|
'project',
|
|
|
|
])
|
|
|
|
->when($this, function ($query) {
|
|
|
|
$role = $this->manage['role'];
|
|
...
|
...
|
@@ -36,29 +36,32 @@ class AsideTicketController extends BaseController |
|
|
|
return $query;
|
|
|
|
}
|
|
|
|
// 其他角色查自己参与的工单
|
|
|
|
return $query->where('engineer_id', $this->manage['id']);
|
|
|
|
return $query->where(function ($q) {
|
|
|
|
$q->where('submit_user_id', $this->manage['id'])
|
|
|
|
->orWhereHas('logs', function ($q1) {
|
|
|
|
$q1->where('engineer_id', $this->manage['id']);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
})
|
|
|
|
->when($request->input('project_id') !== null, function ($query) use ($request) {
|
|
|
|
// project_id 查 gl_ticket_projects.uuid
|
|
|
|
return $query->whereHas('ticket.project', function ($q) use ($request) {
|
|
|
|
$q->where('uuid', $request->input('project_id'));
|
|
|
|
$projectId = $request->input('project_id');
|
|
|
|
return $query->whereHas('project', function ($q) use ($projectId) {
|
|
|
|
$q->where('uuid', $projectId);
|
|
|
|
});
|
|
|
|
})
|
|
|
|
->when($request->input('status') !== null, function ($query) use ($request) {
|
|
|
|
// status 查 gl_tickets.status
|
|
|
|
return $query->whereHas('ticket', function ($q) use ($request) {
|
|
|
|
$q->where('status', $request->input('status'));
|
|
|
|
});
|
|
|
|
$status = $request->input('status');
|
|
|
|
return $query->where('status', $status);
|
|
|
|
})
|
|
|
|
->when($request->input('search'), function ($query) use ($request) {
|
|
|
|
// search 查 gl_tickets.title 或 gl_ticket_projects.title 或 gl_ticket_projects.company_name
|
|
|
|
$search = $request->input('search');
|
|
|
|
$query->where(function ($q) use ($search) {
|
|
|
|
$q->whereHas('ticket', function ($q1) use ($search) {
|
|
|
|
$q1->where('title', 'like', '%' . $search . '%');
|
|
|
|
})
|
|
|
|
->orWhereHas('ticket.project', function ($q2) use ($search) {
|
|
|
|
$q2->where('title', 'like', '%' . $search . '%')
|
|
|
|
return $query->where(function ($q) use ($search) {
|
|
|
|
$q->where('title', 'like', '%' . $search . '%')
|
|
|
|
->orWhereHas('project', function ($q1) use ($search) {
|
|
|
|
$q1->where('title', 'like', '%' . $search . '%')
|
|
|
|
->orWhere('company_name', 'like', '%' . $search . '%');
|
|
|
|
});
|
|
|
|
});
|
|
...
|
...
|
@@ -70,17 +73,11 @@ class AsideTicketController extends BaseController |
|
|
|
|
|
|
|
public function getProjects($search)
|
|
|
|
{
|
|
|
|
$projects = TicketProject::with([
|
|
|
|
'projectV6:id,company,title',
|
|
|
|
])
|
|
|
|
->where('is_del', 0)
|
|
|
|
$projects = TicketProject::where('is_del', 0)
|
|
|
|
->where(function ($query) use ($search) {
|
|
|
|
// 查找项目名称或公司名称
|
|
|
|
$query->where('title', 'like', '%' . $search . '%')
|
|
|
|
->orWhere('company_name', 'like', '%' . $search . '%')
|
|
|
|
->orWhereHas('projectV6', function ($q) use ($search) {
|
|
|
|
$q->where('company', 'like', '%' . $search . '%')
|
|
|
|
->orWhere('title', 'like', '%' . $search . '%');
|
|
|
|
});
|
|
|
|
->orWhere('company_name', 'like', '%' . $search . '%');
|
|
|
|
})
|
|
|
|
->get();
|
|
|
|
$this->response('success', Code::SUCCESS, $projects);
|
|
...
|
...
|
@@ -189,7 +186,6 @@ class AsideTicketController extends BaseController |
|
|
|
|
|
|
|
$ticket->reply = $request->input('reply', null);
|
|
|
|
$ticket->status = $request->input('status', $ticket->status);
|
|
|
|
$ticket->save();
|
|
|
|
if ($ticket->status == Tickets::STATUS_COMPLETED)
|
|
|
|
{
|
|
|
|
// 完成工单,把子任务里面未完成的工单改为完成
|
|
...
|
...
|
@@ -197,6 +193,7 @@ class AsideTicketController extends BaseController |
|
|
|
$ticket->logs()->where('status', '<', TicketLog::STATUS_COMPLETED)
|
|
|
|
->update(['status' => TicketLog::STATUS_COMPLETED, 'end_at' => now()]);
|
|
|
|
}
|
|
|
|
$ticket->save();
|
|
|
|
return $ticket;
|
|
|
|
});
|
|
|
|
$this->response('success', Code::SUCCESS, $result->toArray());
|
...
|
...
|
|