|
|
@@ -625,16 +625,16 @@ class Events
|
|
|
self::$redis->hdel(self::USERINFOKEY, $uid);
|
|
|
|
|
|
|
|
|
- /*if (!empty($info['kfuid'])) {
|
|
|
+ if (!empty($info['kfuid'])) {
|
|
|
$kfinfo = self::$redis->hget(self::KFINFOKEY, $info['kfuid']);
|
|
|
if (!empty($kfinfo)) {
|
|
|
$kfinfoArr = json_decode($kfinfo, true);
|
|
|
$krclient_id = $kfinfoArr['client_id'];
|
|
|
- $kfinfoArr['user_info'] = self::ArrayDataopt($kfinfoArr['user_info'], $client_id, 0);
|
|
|
+ /*$kfinfoArr['user_info'] = self::ArrayDataopt($kfinfoArr['user_info'], $client_id, 0);
|
|
|
$kfinfoArr['task'] = count($kfinfoArr['user_info']);
|
|
|
- self::$redis->hset(self::KFINFOKEY, $info['kfuid'], json_encode($kfinfoArr, 256));
|
|
|
+ self::$redis->hset(self::KFINFOKEY, $info['kfuid'], json_encode($kfinfoArr, 256));*/
|
|
|
}
|
|
|
- }*/
|
|
|
+ }
|
|
|
|
|
|
$chat_message = [
|
|
|
'message_type' => 'userClose',
|
|
|
@@ -814,7 +814,7 @@ class Events
|
|
|
// 指定用指定组 [可能存在断线重连的情况] 如果存在旧的会话,直接连线客服和用户
|
|
|
//否则按先到后到以及客服最大服务数限制
|
|
|
if ($last) {
|
|
|
- //self::BeginTalk(self::getkfuid($last['kf_id']), $uid, $last['group_id'], $last['servicelog_id']);
|
|
|
+ self::BeginTalk(self::getkfuid($last['kf_id']), $uid, $last['group_id'], $last['servicelog_id']);
|
|
|
// 获取工单信息.
|
|
|
$data = json_decode(self::$redis->HGET('SERVICELOG', $last['servicelog_id']), true);
|
|
|
if (empty($data)) {
|
|
|
@@ -988,6 +988,61 @@ class Events
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ //连接至上一个会话
|
|
|
+ private static function BeginOldTalk($kfuid, $uid, $group, $serviceid = 0, $userInfo = false)
|
|
|
+ {
|
|
|
+ $serviceid = intval($serviceid);
|
|
|
+ $userInfo = json_decode(self::$redis->hget(self::USERINFOKEY, $uid), true);
|
|
|
+ $kfinfo = json_decode(self::$redis->hget(self::KFINFOKEY, $kfuid), true);
|
|
|
+ if (empty($userInfo) || empty($kfinfo)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ // 获取旧工单信息.
|
|
|
+ $data = json_decode(self::$redis->HGET('SERVICELOG', $last['servicelog_id']), true);
|
|
|
+ // 修改工单数据.
|
|
|
+ $data['user_avatar'] = $userInfo['avatar'];
|
|
|
+ $data['client_id'] = $userInfo['client_id'];
|
|
|
+ $data['user_ip'] = $userInfo['ip'];
|
|
|
+ $data['website'] = $userInfo['website'];
|
|
|
+ $data['system'] = $userInfo['system'];
|
|
|
+ $data['browse'] = $userInfo['browse'];
|
|
|
+ $data['status'] = $userInfo['status'];
|
|
|
+ self::$redis->hset(self::SERVICELOG, $serviceid, json_encode($data, 256));
|
|
|
+
|
|
|
+ // 更改用户连接客服信息
|
|
|
+ $userInfo['serverid'] = $serviceid;
|
|
|
+ $userInfo['kfuid'] = $kfuid;
|
|
|
+ self::$redis->hset(self::USERINFOKEY, $uid, json_encode($userInfo, 256));
|
|
|
+
|
|
|
+ // 通知会员发送信息绑定客服的id
|
|
|
+ $noticeUser = [
|
|
|
+ 'message_type' => 'connect',
|
|
|
+ 'data' => [
|
|
|
+ 'kf_id' => $kfuid,
|
|
|
+ 'conversationId' => $serviceid,
|
|
|
+ 'serverInfo' => $kfinfo,
|
|
|
+ 'kf_name' => $kfinfo['job_name']
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ self::MySendMsg($userInfo['client_id'], json_encode($noticeUser, 256));
|
|
|
+
|
|
|
+ // 发送给客服用户信息.
|
|
|
+ $noticeKf = [
|
|
|
+ 'message_type' => 'connect',
|
|
|
+ 'data' => [
|
|
|
+ 'user_info' => $userInfo,
|
|
|
+ 'conversationId' => $serviceid,
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ self::MySendMsg($kfinfo['client_id'], json_encode($noticeKf, 256));
|
|
|
+ unset($noticeKf);
|
|
|
+
|
|
|
+ $key = date('Ymd') . 'success_in';
|
|
|
+ self::$global->increment($key);
|
|
|
+
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
//用户排队数据 按组
|
|
|
private static function getUserListData()
|
|
|
@@ -1500,6 +1555,7 @@ class Events
|
|
|
self::$redis->del(self::USERINFOKEY);
|
|
|
self::$redis->del('adminList');
|
|
|
self::$redis->del(self::WEBSOCKALLUSER);
|
|
|
+ self::$redis->del('SERVICELOG');
|
|
|
self::$db->query("update ws_service_log set status=2,end_time=$now where start_time>=$t and status!=2");
|
|
|
}
|
|
|
|