|
|
@@ -205,8 +205,8 @@ class Events
|
|
|
Gateway::sendToCurrentClient('{"type":"pong"}');
|
|
|
return;
|
|
|
} else {
|
|
|
- //echo "onMessage: " . $message . "\r\n";
|
|
|
- //print_r([self::$global->kfList, self::$global->userList, self::$global->uidSimpleList, self::$global->userToKf]);
|
|
|
+ echo "onMessage: " . $message . "\r\n";
|
|
|
+ print_r([self::$global->kfList, self::$global->userList, self::$global->uidSimpleList, self::$global->userToKf]);
|
|
|
}
|
|
|
|
|
|
$message = json_decode($message, true);
|
|
|
@@ -985,7 +985,7 @@ class Events
|
|
|
'id' => $userId
|
|
|
]
|
|
|
];
|
|
|
- Gateway::sendToClient($kfList[$groupId]['KF'.$kf_id]['client_id'], json_encode($del_message, 256));
|
|
|
+ Gateway::sendToClient($kfList[$groupId]['KF' . $kf_id]['client_id'], json_encode($del_message, 256));
|
|
|
unset($del_message);
|
|
|
}
|
|
|
|
|
|
@@ -1791,7 +1791,7 @@ class Events
|
|
|
//$chatLog = self::$db->query("SELECT `servicelog_id`,MAX(`time_line`) FROM `ws_chat_log` WHERE ".$whereOr." group by `servicelog_id`");
|
|
|
$chatLog = self::$db->query("
|
|
|
select * from ws_chat_log as a where time_line=(
|
|
|
- select max(b.time_line) from ws_chat_log as b where a.servicelog_id = b.servicelog_id and from_id not like 'KF%' and (" . $whereOr . ") group by servicelog_id
|
|
|
+ select max(b.time_line) from ws_chat_log as b where a.servicelog_id = b.servicelog_id and (" . $whereOr . ") group by servicelog_id
|
|
|
)
|
|
|
");
|
|
|
$setOvertime = strtotime('-' . (self::$global->overtime['systemconfig_data'] - 60) . ' second');
|
|
|
@@ -1801,10 +1801,10 @@ class Events
|
|
|
$noResponse = strtotime('-' . (self::$global->noResponse['systemconfig_data']) . ' second');
|
|
|
foreach ($serviceLog as $k => $v) {
|
|
|
// 会话超时关闭.
|
|
|
- /*if ($v['start_time'] <= $overtime) {
|
|
|
+ if ($v['start_time'] <= $overtime) {
|
|
|
$servicelog_id = $v['servicelog_id'];
|
|
|
self::$db->query("update `ws_service_log` set `servicelog_close_type` = 2 where `servicelog_id`= '$servicelog_id'");
|
|
|
- self::serverClose($v['client_id'], $servicelog_id, $v['user_id'], 'KF'.$v['kf_id'], $v['group_id']);
|
|
|
+ self::serverClose($v['client_id'], $servicelog_id, $v['user_id'], 'KF' . $v['kf_id'], $v['group_id']);
|
|
|
// 如果小于设定时间前一分钟则给出提示.
|
|
|
} elseif ($v['start_time'] <= $setOvertime) {
|
|
|
$chat_message = [
|
|
|
@@ -1814,13 +1814,15 @@ class Events
|
|
|
]
|
|
|
];
|
|
|
Gateway::sendToClient($v['client_id'], json_encode($chat_message, 256));
|
|
|
- }*/
|
|
|
- // 无效会话关闭.如果没有说一句话.
|
|
|
+ }
|
|
|
+
|
|
|
+ // 访客静默超时.
|
|
|
+ // 如果没有说一句话.
|
|
|
if (!strlen(array_search($v['servicelog_id'], array_column($chatLog, 'servicelog_id')))) {
|
|
|
if ($v['start_time'] <= $unoperated) {
|
|
|
$servicelog_id = $v['servicelog_id'];
|
|
|
self::$db->query("update `ws_service_log` set `servicelog_close_type` = 1 where `servicelog_id`= '$servicelog_id'");
|
|
|
- self::serverClose($v['client_id'], $servicelog_id, $v['user_id'], 'KF'.$v['kf_id'], $v['group_id']);
|
|
|
+ self::serverClose($v['client_id'], $servicelog_id, $v['user_id'], 'KF' . $v['kf_id'], $v['group_id']);
|
|
|
// 如果小于设定时间前一分钟则给出提示.
|
|
|
} elseif ($v['start_time'] <= $setUnoperated) {
|
|
|
$chat_message = [
|
|
|
@@ -1833,16 +1835,16 @@ class Events
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 双方静默超时.
|
|
|
+ // 访客静默超时.如果说了话
|
|
|
foreach ($chatLog as $k => $v) {
|
|
|
// 如果对话为客服的最后一次对话且时间小于设定时间则结束工单.
|
|
|
- if ($v['time_line'] <= $overtime) {
|
|
|
+ if ($v['time_line'] <= $unoperated) {
|
|
|
$found_key = array_search($v['servicelog_id'], array_column($serviceLog, 'servicelog_id'));
|
|
|
$servicelog_id = $v['servicelog_id'];
|
|
|
- self::$db->query("update `ws_service_log` set `servicelog_close_type` = 2 where `servicelog_id`= '$servicelog_id'");
|
|
|
- self::serverClose($serviceLog[$found_key]['client_id'], $servicelog_id, $serviceLog[$found_key]['user_id'], 'KF'.$serviceLog[$found_key]['kf_id'], $serviceLog[$found_key]['group_id']);
|
|
|
+ self::$db->query("update `ws_service_log` set `servicelog_close_type` = 1 where `servicelog_id`= '$servicelog_id'");
|
|
|
+ self::serverClose($serviceLog[$found_key]['client_id'], $servicelog_id, $serviceLog[$found_key]['user_id'], 'KF' . $serviceLog[$found_key]['kf_id'], $serviceLog[$found_key]['group_id']);
|
|
|
// 如果对话为客服的最后一次对话且时间小于设定时间前一分钟则给出提示.
|
|
|
- } elseif ($v['time_line'] <= $setOvertime) {
|
|
|
+ } elseif ($v['time_line'] <= $setUnoperated) {
|
|
|
$chat_message = [
|
|
|
'message_type' => 'overtime',
|
|
|
'data' => [
|