|
|
@@ -477,7 +477,8 @@ class Events
|
|
|
$uid = intval($message['uid']);
|
|
|
$group = intval($message['group']);
|
|
|
|
|
|
- if (!isset(self::$global->groupmap[$group])) {
|
|
|
+ $last = self::UserHasOldTalk($uid);
|
|
|
+ if (!isset(self::$global->groupmap[$group]) && !$last) {
|
|
|
self::MySendMsg($client_id, (json_encode(['message_type' => 'reLoginErr', 'msg' => '不存在客服组....'], 256)));
|
|
|
return true;
|
|
|
//Gateway::closeCurrentClient();
|
|
|
@@ -500,7 +501,6 @@ class Events
|
|
|
Gateway::closeCurrentClient();
|
|
|
return;
|
|
|
}
|
|
|
- $last = self::UserHasOldTalk($uid);
|
|
|
|
|
|
$onlinekf = self::getOnlineKfData($group, 1);
|
|
|
if (empty($onlinekf) && empty($last)) {
|
|
|
@@ -523,10 +523,15 @@ class Events
|
|
|
'group' => $message['group'],
|
|
|
'intime' => time(),
|
|
|
'kfuid' => '',
|
|
|
- 'ip' => $_SESSION['remotip'],
|
|
|
'serverid' => 0,
|
|
|
'client_id' => $client_id
|
|
|
];
|
|
|
+ if ($last) {
|
|
|
+ $data['group'] = $last['group_id'];
|
|
|
+ $data['intime'] = $last['intime'];
|
|
|
+ $data['kfuid'] = $last['kf_id'];
|
|
|
+ $data['serverid'] = $last['servicelog_id'];
|
|
|
+ }
|
|
|
self::$redis->hset(self::USERLIST, $uid, json_encode($data, 256));
|
|
|
self::$redis->hset(self::USERINFOKEY, $uid, json_encode($data, 256));
|
|
|
|
|
|
@@ -809,7 +814,7 @@ class Events
|
|
|
}
|
|
|
|
|
|
$allkfgkarr = self::getWorkKfData();
|
|
|
- if (empty($allkfgkarr)) {
|
|
|
+ if (empty($allkfgkarr) && !$last) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -820,9 +825,13 @@ class Events
|
|
|
//否则按先到后到以及客服最大服务数限制
|
|
|
if ($last) {
|
|
|
self::BeginOldTalk(self::getkfuid($last['kf_id']), $uid, $last['group_id'], $last['servicelog_id']);
|
|
|
+ // 查询工单历史会话.
|
|
|
+ $serviceid = $last['servicelog_id'];
|
|
|
+ $chatLog = self::$db->select('*')->from('ws_chat_log')->where("servicelog_id=$serviceid")->orderByDESC(['time_line'])->row();
|
|
|
$toOld_message = [
|
|
|
'message_type' => 'toOld',
|
|
|
'data' => [
|
|
|
+ 'chatLog' => $chatLog ?? [],
|
|
|
'content' => '接入至未结束的会话'
|
|
|
]
|
|
|
];
|
|
|
@@ -980,7 +989,7 @@ class Events
|
|
|
$data['website'] = $userInfo['website'];
|
|
|
$data['system'] = $userInfo['system'];
|
|
|
$data['browse'] = $userInfo['browse'];
|
|
|
- $data['status'] = $userInfo['status'];
|
|
|
+ $data['status'] = 1;
|
|
|
self::$redis->hset(self::SERVICELOG, $serviceid, json_encode($data, 256));
|
|
|
|
|
|
// 更改用户连接客服信息
|
|
|
@@ -989,16 +998,15 @@ class Events
|
|
|
self::$redis->hset(self::USERINFOKEY, $uid, json_encode($userInfo, 256));
|
|
|
// 更改客服连接信息.
|
|
|
$kfinfo = json_decode(self::$redis->hget(self::KFINFOKEY, $kfuid), true);
|
|
|
- //$kfUsers = json_decode($kfinfo['user_info'], true);
|
|
|
$kfUsers = self::$redis->hgetall(self::getKfServiceKey($kfuid));
|
|
|
foreach ($kfUsers as $key => $value) {
|
|
|
- if ($value == $uid) {
|
|
|
+ if ($value == $serviceid) {
|
|
|
// 删除之前的当前用户连接
|
|
|
unset($kfUsers[$key]);
|
|
|
}
|
|
|
}
|
|
|
// 增加现在用户的连接到客服
|
|
|
- $kfUsers[$userInfo['client_id']] = $uid;
|
|
|
+ $kfUsers[$userInfo['client_id']] = $serviceid;
|
|
|
$kfinfo['user_info'] = $kfUsers;
|
|
|
// 将数据存入redis
|
|
|
self::$redis->hset('KFINFO', $kfuid, json_encode($kfinfo, 256));
|