|
|
@@ -546,7 +546,9 @@ class Events
|
|
|
$data['kfuid'] = $last['kf_id'];
|
|
|
$data['serverid'] = $last['servicelog_id'];
|
|
|
}
|
|
|
- self::$redis->hset(self::USERLIST, $uid, json_encode($data, 256));
|
|
|
+ if (!$last) {
|
|
|
+ self::$redis->hset(self::USERLIST, $uid, json_encode($data, 256));
|
|
|
+ }
|
|
|
self::$redis->hset(self::USERINFOKEY, $uid, json_encode($data, 256));
|
|
|
|
|
|
// 写入接入值
|
|
|
@@ -823,25 +825,13 @@ class Events
|
|
|
*/
|
|
|
private static function userOnlineTask($group = 0, $uid = 0, $last = [], $client_id = '')
|
|
|
{
|
|
|
-
|
|
|
- $allusergkarr = self::getUserListData();
|
|
|
- if (empty($allusergkarr)) {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- $allkfgkarr = self::getWorkKfData();
|
|
|
- ///做某个组的客户是还有人服务检测,如果此组没有客服在线了,要把对应排队的人kh踢掉
|
|
|
- self::Kf_user_click($allkfgkarr, $allusergkarr);
|
|
|
-
|
|
|
- if (empty($allkfgkarr) && !$last) {
|
|
|
- return;
|
|
|
- }
|
|
|
- $maxset = intval((self::$global->systemconfig)['KFMaxServices']['systemconfig_data']);
|
|
|
if ($group && $uid) {
|
|
|
// 指定用指定组 [可能存在断线重连的情况] 如果存在旧的会话,直接连线客服和用户
|
|
|
//否则按先到后到以及客服最大服务数限制
|
|
|
if ($last) {
|
|
|
+ //self::$redis->hdel(self::USERLIST, $uid);
|
|
|
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();
|
|
|
@@ -857,6 +847,19 @@ class Events
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $allusergkarr = self::getUserListData();
|
|
|
+ if (empty($allusergkarr)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ $allkfgkarr = self::getWorkKfData();
|
|
|
+ ///做某个组的客户是还有人服务检测,如果此组没有客服在线了,要把对应排队的人kh踢掉
|
|
|
+ self::Kf_user_click($allkfgkarr, $allusergkarr);
|
|
|
+
|
|
|
+ if (empty($allkfgkarr) && !$last) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ $maxset = intval((self::$global->systemconfig)['KFMaxServices']['systemconfig_data']);
|
|
|
|
|
|
//系统定时调用时,无组,无用户
|
|
|
foreach ($allusergkarr as $group => $gusersArr) {
|
|
|
@@ -1018,6 +1021,8 @@ class Events
|
|
|
//连接至上一个会话
|
|
|
private static function BeginOldTalk($kfuid, $uid, $group, $serviceid = 0, $userInfo = false)
|
|
|
{
|
|
|
+ echo "BeginOldTalk " . print_r([$kfuid, $uid, $group, $serviceid, $userInfo], true) . "\n";
|
|
|
+
|
|
|
$serviceid = intval($serviceid);
|
|
|
$userInfo = json_decode(self::$redis->hget(self::USERINFOKEY, $uid), true);
|
|
|
$kfinfo = json_decode(self::$redis->hget(self::KFINFOKEY, $kfuid), true);
|