|
@@ -187,7 +187,7 @@ class Events
|
|
|
break;
|
|
break;
|
|
|
// 客服关闭会话.
|
|
// 客服关闭会话.
|
|
|
case 'kfCloseUser':
|
|
case 'kfCloseUser':
|
|
|
- self::serverClose($message['data']['conversationId'],3);
|
|
|
|
|
|
|
+ self::serverClose($message['data']['conversationId'], 3);
|
|
|
break;
|
|
break;
|
|
|
// 客服更改状态.
|
|
// 客服更改状态.
|
|
|
case 'kfOnline':
|
|
case 'kfOnline':
|
|
@@ -233,7 +233,7 @@ class Events
|
|
|
Gateway::sendToClient($data['kf_client_id'], json_encode($chat_message, 256));
|
|
Gateway::sendToClient($data['kf_client_id'], json_encode($chat_message, 256));
|
|
|
}
|
|
}
|
|
|
// 保存修改后的工单信息.
|
|
// 保存修改后的工单信息.
|
|
|
- self::$redis->HSET('SERVICELOG', $message['conversationId'], json_encode($data,256));
|
|
|
|
|
|
|
+ self::$redis->HSET('SERVICELOG', $message['conversationId'], json_encode($data, 256));
|
|
|
|
|
|
|
|
// 聊天信息入库
|
|
// 聊天信息入库
|
|
|
$insertChatData = [
|
|
$insertChatData = [
|
|
@@ -360,7 +360,7 @@ class Events
|
|
|
Gateway::closeCurrentClient();
|
|
Gateway::closeCurrentClient();
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
if ($loginstate == 2) {
|
|
if ($loginstate == 2) {
|
|
|
$oldcontids = Gateway::getClientIdByUid($uid);
|
|
$oldcontids = Gateway::getClientIdByUid($uid);
|
|
|
Gateway::sendToClient($oldcontids['0'], (json_encode(['message_type' => 'reLoginErr', 'msg' => '你的账号在其它登陆,本次下线'], 256)));
|
|
Gateway::sendToClient($oldcontids['0'], (json_encode(['message_type' => 'reLoginErr', 'msg' => '你的账号在其它登陆,本次下线'], 256)));
|
|
@@ -651,7 +651,7 @@ class Events
|
|
|
* tips: 当服务端主动退出的时候,会出现 exit status 9.原因是:服务端主动断开之后,连接的客户端会走这个方法,而短时间内进程
|
|
* tips: 当服务端主动退出的时候,会出现 exit status 9.原因是:服务端主动断开之后,连接的客户端会走这个方法,而短时间内进程
|
|
|
* 需要处理这多的逻辑,又有cas操作,导致进程退出会超时,然后会被内核杀死,从而报出错误 9.实际对真正的业务没有任何的影响。
|
|
* 需要处理这多的逻辑,又有cas操作,导致进程退出会超时,然后会被内核杀死,从而报出错误 9.实际对真正的业务没有任何的影响。
|
|
|
*/
|
|
*/
|
|
|
- public static function serverClose($servicelogId, $closeBy=0)
|
|
|
|
|
|
|
+ public static function serverClose($servicelogId, $closeBy = 0)
|
|
|
{
|
|
{
|
|
|
// 获取当前工单数据.
|
|
// 获取当前工单数据.
|
|
|
$data = json_decode(self::$redis->HGET('SERVICELOG', $servicelogId), true);
|
|
$data = json_decode(self::$redis->HGET('SERVICELOG', $servicelogId), true);
|
|
@@ -691,12 +691,13 @@ class Events
|
|
|
];
|
|
];
|
|
|
Gateway::sendToClient($data['kf_client_id'], json_encode($del_message, 256));
|
|
Gateway::sendToClient($data['kf_client_id'], json_encode($del_message, 256));
|
|
|
// 查询工单会话总数.
|
|
// 查询工单会话总数.
|
|
|
- $chatCount = self::$db->select('count(*) as count')->from('ws_chat_log')->where("servicelog_id=$servicelogId")->row();print_r($chatCount);
|
|
|
|
|
|
|
+ $chatCount = self::$db->select('count(*) as count')->from('ws_chat_log')->where("servicelog_id=$servicelogId")->row();
|
|
|
|
|
+ print_r($chatCount);
|
|
|
// 将数据存入数据库.
|
|
// 将数据存入数据库.
|
|
|
$updateServiceLogData = [
|
|
$updateServiceLogData = [
|
|
|
'status' => 2,
|
|
'status' => 2,
|
|
|
- 'evaluate_id' => isset($data['evaluate_id'])?$data['evaluate_id']:0,
|
|
|
|
|
- 'evaluate_content' => isset($data['evaluate_content'])?$data['evaluate_content']:'',
|
|
|
|
|
|
|
+ 'evaluate_id' => isset($data['evaluate_id']) ? $data['evaluate_id'] : 0,
|
|
|
|
|
+ 'evaluate_content' => isset($data['evaluate_content']) ? $data['evaluate_content'] : '',
|
|
|
'servicelog_close_type' => $closeBy,
|
|
'servicelog_close_type' => $closeBy,
|
|
|
'end_time' => time(),
|
|
'end_time' => time(),
|
|
|
];
|
|
];
|
|
@@ -704,9 +705,9 @@ class Events
|
|
|
'alarm_userSensitive' => $data['alarm_userSensitive'],
|
|
'alarm_userSensitive' => $data['alarm_userSensitive'],
|
|
|
'alarm_serverSensitive' => $data['alarm_serverSensitive'],
|
|
'alarm_serverSensitive' => $data['alarm_serverSensitive'],
|
|
|
'alarm_corresponding' => $data['alarm_corresponding'],
|
|
'alarm_corresponding' => $data['alarm_corresponding'],
|
|
|
- 'alarm_cvtOvertime' => time()-$data['start_time'],
|
|
|
|
|
|
|
+ 'alarm_cvtOvertime' => time() - $data['start_time'],
|
|
|
'alarm_respond' => $data['alarm_respond'],
|
|
'alarm_respond' => $data['alarm_respond'],
|
|
|
- 'alarm_lineTime' => $data['start_time']-$data['intime'],
|
|
|
|
|
|
|
+ 'alarm_lineTime' => $data['start_time'] - $data['intime'],
|
|
|
'alarm_count' => $chatCount['count'],
|
|
'alarm_count' => $chatCount['count'],
|
|
|
];
|
|
];
|
|
|
self::$db->update('ws_service_log')->cols($updateServiceLogData)->where("servicelog_id=$servicelogId")->query();
|
|
self::$db->update('ws_service_log')->cols($updateServiceLogData)->where("servicelog_id=$servicelogId")->query();
|
|
@@ -1040,7 +1041,7 @@ class Events
|
|
|
$allkf = self::$redis->hgetall(self::KFINFOKEY);
|
|
$allkf = self::$redis->hgetall(self::KFINFOKEY);
|
|
|
$nowTalking = $onlineKf = 0;
|
|
$nowTalking = $onlineKf = 0;
|
|
|
if (!empty($allkf)) {
|
|
if (!empty($allkf)) {
|
|
|
- foreach ($onlineKf as $kfuid => $val) {
|
|
|
|
|
|
|
+ foreach ($allkf as $kfuid => $val) {
|
|
|
$tmp = json_decode($val, true);
|
|
$tmp = json_decode($val, true);
|
|
|
$onlineKf++;
|
|
$onlineKf++;
|
|
|
$nowTalking += count($tmp['user_info']);
|
|
$nowTalking += count($tmp['user_info']);
|
|
@@ -1072,7 +1073,7 @@ class Events
|
|
|
];
|
|
];
|
|
|
self::$db->insert('ws_service_data')->cols($param)->query();
|
|
self::$db->insert('ws_service_data')->cols($param)->query();
|
|
|
}
|
|
}
|
|
|
- unset($nowTalking, $inQueue, $onlineKf, $key, $key2, $param);
|
|
|
|
|
|
|
+ unset($allkf, $nowTalking, $inQueue, $onlineKf, $key, $key2, $param);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|