|
...
|
...
|
@@ -62,7 +62,9 @@ class Tickets extends Base |
|
|
|
$log->engineer_id = $engineer_id;
|
|
|
|
$log->is_engineer = in_array($engineer_id, $engineer_ids);
|
|
|
|
$this->logs()->save($log);
|
|
|
|
}catch (\Exception $exception){}
|
|
|
|
}catch (\Exception $exception){
|
|
|
|
Log::error(" | ERRPR | Ticket saveEngineers {$exception->getMessage()} \n {$exception->getTraceAsString()}");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 删除没有参与当前工单的人员(若之前已有)
|
|
...
|
...
|
@@ -70,15 +72,16 @@ class Tickets extends Base |
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 推送钉钉通知任务
|
|
|
|
* TODO 这个是一个补充功能
|
|
|
|
* 那些情况需要推送钉钉内部通知?
|
|
|
|
* 1. 客户提交了工单
|
|
|
|
* - 通知第一负责人
|
|
|
|
* - 通知第一负责人 (gl_ticket_logs 表做了标记)
|
|
|
|
* 2. 客户补充了工单
|
|
|
|
* - 通知最近的聊天技术
|
|
|
|
* - 通知最近的聊天技术(gl_ticket_chats 表做了标记)
|
|
|
|
* 3. 技术完成了工单
|
|
|
|
* - 通知第一负责人,通知企微群
|
|
|
|
* - 通知第一负责人 (暂无,所以这里做补充,如果以后要把上面的逻辑也加进来也可以,只是我为了偷懒,暂时只考虑完成工单请款)
|
|
|
|
*/
|
|
|
|
public function pushDing($action = 'create')
|
|
|
|
public function pushDing($type = 'finish')
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
$ding = new TicketDing();
|
|
...
|
...
|
@@ -86,36 +89,23 @@ class Tickets extends Base |
|
|
|
$ding->table_name = 'gl_tickets';
|
|
|
|
$ding->table_id = $this->id;
|
|
|
|
|
|
|
|
if ($action == 'create')
|
|
|
|
if ($type == 'finish')
|
|
|
|
{
|
|
|
|
// 客户提交了工单
|
|
|
|
// 所以技术完成了工单,通知第一负责人 和 工单的提交人
|
|
|
|
$ding->userIds = [$this->project->engineer_id];
|
|
|
|
if ($this->submit_side == 1) {
|
|
|
|
// A 端提的,还要通知提交人
|
|
|
|
$ding->userIds[] = $this->submit_user_id;
|
|
|
|
// 去重
|
|
|
|
$ding->userIds = array_unique($ding->userIds);
|
|
|
|
}
|
|
|
|
$ding->msgParam = json_encode([
|
|
|
|
'text' => "您有新的工单(ID: {$this->id}),请及时处理!",
|
|
|
|
'text' => "工单(ID: {$this->id}),已经全部完成,请访问查看详情!",
|
|
|
|
'title' => 'AI协同工单 - ' . $this->project->title,
|
|
|
|
'picUrl' => 'https://hub.globalso.com/logocm.png',
|
|
|
|
'messageUrl' => 'https://oa.quanqiusou.cn/afterorder?project_id=' . $this->project->uuid,
|
|
|
|
], JSON_UNESCAPED_UNICODE);
|
|
|
|
$ding->save();
|
|
|
|
}elseif ($action == 'chat'){
|
|
|
|
// 客户补充了工单
|
|
|
|
$ding = new TicketDing();
|
|
|
|
$lastChat = TicketChat::where('ticket_id', $this->id)
|
|
|
|
->where('submit_side', 1)
|
|
|
|
->orderBy('id', 'desc')
|
|
|
|
->first();
|
|
|
|
|
|
|
|
$ding->userIds = [!empty($lastChat) ? $lastChat->manage_id : $this->project->engineer_id];
|
|
|
|
$ding->msgParam = json_encode([
|
|
|
|
'text' => "客户补充了工单(ID: {$this->id}),请及时处理!",
|
|
|
|
'title' => 'AI协同工单 - ' . $this->project->title,
|
|
|
|
'picUrl' => 'https://hub.globalso.com/logocm.png',
|
|
|
|
'messageUrl' => 'https://oa.quanqiusou.cn/afterorder?project_id=' . $this->project->uuid,
|
|
|
|
], JSON_UNESCAPED_UNICODE);
|
|
|
|
$ding->save();
|
|
|
|
}elseif ($action == 'finish'){
|
|
|
|
// 完成工单
|
|
|
|
|
|
|
|
}
|
|
|
|
}catch (\Exception $exception){
|
|
|
|
Log::error(" | ERRPR | Ticket {$exception->getMessage()} \n {$exception->getTraceAsString()}");
|
...
|
...
|
|