|
@@ -25,9 +25,9 @@ class AsideTicketController extends BaseController |
|
@@ -25,9 +25,9 @@ class AsideTicketController extends BaseController |
|
25
|
* 1. 超管看所有工单
|
25
|
* 1. 超管看所有工单
|
|
26
|
* 2. 其他查看和自己有关的工单
|
26
|
* 2. 其他查看和自己有关的工单
|
|
27
|
*/
|
27
|
*/
|
|
28
|
- $lists = TicketLog::with([
|
|
|
|
29
|
- 'ticket.project.projectV6:id,company,title',
|
|
|
|
30
|
- 'ticket.logs.engineer:id,name',
|
28
|
+ $lists = Tickets::with([
|
|
|
|
29
|
+ 'logs.engineer:id,name',
|
|
|
|
30
|
+ 'project',
|
|
31
|
])
|
31
|
])
|
|
32
|
->when($this, function ($query) {
|
32
|
->when($this, function ($query) {
|
|
33
|
$role = $this->manage['role'];
|
33
|
$role = $this->manage['role'];
|
|
@@ -36,31 +36,34 @@ class AsideTicketController extends BaseController |
|
@@ -36,31 +36,34 @@ class AsideTicketController extends BaseController |
|
36
|
return $query;
|
36
|
return $query;
|
|
37
|
}
|
37
|
}
|
|
38
|
// 其他角色查自己参与的工单
|
38
|
// 其他角色查自己参与的工单
|
|
39
|
- return $query->where('engineer_id', $this->manage['id']);
|
39
|
+ return $query->where(function ($q) {
|
|
|
|
40
|
+ $q->where('submit_user_id', $this->manage['id'])
|
|
|
|
41
|
+ ->orWhereHas('logs', function ($q1) {
|
|
|
|
42
|
+ $q1->where('engineer_id', $this->manage['id']);
|
|
|
|
43
|
+ });
|
|
|
|
44
|
+ });
|
|
40
|
})
|
45
|
})
|
|
41
|
->when($request->input('project_id') !== null, function ($query) use ($request) {
|
46
|
->when($request->input('project_id') !== null, function ($query) use ($request) {
|
|
42
|
// project_id 查 gl_ticket_projects.uuid
|
47
|
// project_id 查 gl_ticket_projects.uuid
|
|
43
|
- return $query->whereHas('ticket.project', function ($q) use ($request) {
|
|
|
|
44
|
- $q->where('uuid', $request->input('project_id'));
|
48
|
+ $projectId = $request->input('project_id');
|
|
|
|
49
|
+ return $query->whereHas('project', function ($q) use ($projectId) {
|
|
|
|
50
|
+ $q->where('uuid', $projectId);
|
|
45
|
});
|
51
|
});
|
|
46
|
})
|
52
|
})
|
|
47
|
->when($request->input('status') !== null, function ($query) use ($request) {
|
53
|
->when($request->input('status') !== null, function ($query) use ($request) {
|
|
48
|
// status 查 gl_tickets.status
|
54
|
// status 查 gl_tickets.status
|
|
49
|
- return $query->whereHas('ticket', function ($q) use ($request) {
|
|
|
|
50
|
- $q->where('status', $request->input('status'));
|
|
|
|
51
|
- });
|
55
|
+ $status = $request->input('status');
|
|
|
|
56
|
+ return $query->where('status', $status);
|
|
52
|
})
|
57
|
})
|
|
53
|
->when($request->input('search'), function ($query) use ($request) {
|
58
|
->when($request->input('search'), function ($query) use ($request) {
|
|
54
|
// search 查 gl_tickets.title 或 gl_ticket_projects.title 或 gl_ticket_projects.company_name
|
59
|
// search 查 gl_tickets.title 或 gl_ticket_projects.title 或 gl_ticket_projects.company_name
|
|
55
|
$search = $request->input('search');
|
60
|
$search = $request->input('search');
|
|
56
|
- $query->where(function ($q) use ($search) {
|
|
|
|
57
|
- $q->whereHas('ticket', function ($q1) use ($search) {
|
|
|
|
58
|
- $q1->where('title', 'like', '%' . $search . '%');
|
|
|
|
59
|
- })
|
|
|
|
60
|
- ->orWhereHas('ticket.project', function ($q2) use ($search) {
|
|
|
|
61
|
- $q2->where('title', 'like', '%' . $search . '%')
|
|
|
|
62
|
- ->orWhere('company_name', 'like', '%' . $search . '%');
|
|
|
|
63
|
- });
|
61
|
+ return $query->where(function ($q) use ($search) {
|
|
|
|
62
|
+ $q->where('title', 'like', '%' . $search . '%')
|
|
|
|
63
|
+ ->orWhereHas('project', function ($q1) use ($search) {
|
|
|
|
64
|
+ $q1->where('title', 'like', '%' . $search . '%')
|
|
|
|
65
|
+ ->orWhere('company_name', 'like', '%' . $search . '%');
|
|
|
|
66
|
+ });
|
|
64
|
});
|
67
|
});
|
|
65
|
})
|
68
|
})
|
|
66
|
->orderBy('id', 'desc')
|
69
|
->orderBy('id', 'desc')
|
|
@@ -70,17 +73,11 @@ class AsideTicketController extends BaseController |
|
@@ -70,17 +73,11 @@ class AsideTicketController extends BaseController |
|
70
|
|
73
|
|
|
71
|
public function getProjects($search)
|
74
|
public function getProjects($search)
|
|
72
|
{
|
75
|
{
|
|
73
|
- $projects = TicketProject::with([
|
|
|
|
74
|
- 'projectV6:id,company,title',
|
|
|
|
75
|
- ])
|
|
|
|
76
|
- ->where('is_del', 0)
|
76
|
+ $projects = TicketProject::where('is_del', 0)
|
|
77
|
->where(function ($query) use ($search) {
|
77
|
->where(function ($query) use ($search) {
|
|
|
|
78
|
+ // 查找项目名称或公司名称
|
|
78
|
$query->where('title', 'like', '%' . $search . '%')
|
79
|
$query->where('title', 'like', '%' . $search . '%')
|
|
79
|
- ->orWhere('company_name', 'like', '%' . $search . '%')
|
|
|
|
80
|
- ->orWhereHas('projectV6', function ($q) use ($search) {
|
|
|
|
81
|
- $q->where('company', 'like', '%' . $search . '%')
|
|
|
|
82
|
- ->orWhere('title', 'like', '%' . $search . '%');
|
|
|
|
83
|
- });
|
80
|
+ ->orWhere('company_name', 'like', '%' . $search . '%');
|
|
84
|
})
|
81
|
})
|
|
85
|
->get();
|
82
|
->get();
|
|
86
|
$this->response('success', Code::SUCCESS, $projects);
|
83
|
$this->response('success', Code::SUCCESS, $projects);
|
|
@@ -189,7 +186,6 @@ class AsideTicketController extends BaseController |
|
@@ -189,7 +186,6 @@ class AsideTicketController extends BaseController |
|
189
|
|
186
|
|
|
190
|
$ticket->reply = $request->input('reply', null);
|
187
|
$ticket->reply = $request->input('reply', null);
|
|
191
|
$ticket->status = $request->input('status', $ticket->status);
|
188
|
$ticket->status = $request->input('status', $ticket->status);
|
|
192
|
- $ticket->save();
|
|
|
|
193
|
if ($ticket->status == Tickets::STATUS_COMPLETED)
|
189
|
if ($ticket->status == Tickets::STATUS_COMPLETED)
|
|
194
|
{
|
190
|
{
|
|
195
|
// 完成工单,把子任务里面未完成的工单改为完成
|
191
|
// 完成工单,把子任务里面未完成的工单改为完成
|
|
@@ -197,6 +193,7 @@ class AsideTicketController extends BaseController |
|
@@ -197,6 +193,7 @@ class AsideTicketController extends BaseController |
|
197
|
$ticket->logs()->where('status', '<', TicketLog::STATUS_COMPLETED)
|
193
|
$ticket->logs()->where('status', '<', TicketLog::STATUS_COMPLETED)
|
|
198
|
->update(['status' => TicketLog::STATUS_COMPLETED, 'end_at' => now()]);
|
194
|
->update(['status' => TicketLog::STATUS_COMPLETED, 'end_at' => now()]);
|
|
199
|
}
|
195
|
}
|
|
|
|
196
|
+ $ticket->save();
|
|
200
|
return $ticket;
|
197
|
return $ticket;
|
|
201
|
});
|
198
|
});
|
|
202
|
$this->response('success', Code::SUCCESS, $result->toArray());
|
199
|
$this->response('success', Code::SUCCESS, $result->toArray());
|