|
|
@@ -47,6 +47,7 @@ class Events
|
|
|
const WEBSOCKALLUSER = 'WEBSOCKALLUSER'; //所有连接
|
|
|
const KFRELONINFLAG = 'KFRELOGIN'; //客服重登陆标示
|
|
|
const ADMINLIST = 'adminList'; //后台管理的连接
|
|
|
+ const KEFU_USERIDS = 'KEFU_USERIDS'; //客服和用户的关联映射
|
|
|
|
|
|
/**
|
|
|
* 进程启动后初始化数据库连接
|
|
|
@@ -890,6 +891,7 @@ class Events
|
|
|
self::MySendMsg($val, json_encode(['message_type' => 'serviceoffline', 'msg' => '客服人员下线!'], 256));
|
|
|
}
|
|
|
}
|
|
|
+ self::addKfUsermap($uid, 0, 0);
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
@@ -961,6 +963,7 @@ class Events
|
|
|
$kfinfoArr['task'] = count($kfinfoArr['user_info']);
|
|
|
self::$redis->hset(self::KFINFOKEY, $info['kfuid'], json_encode($kfinfoArr, 256));*/
|
|
|
}
|
|
|
+ self::addKfUsermap($info['kfuid'], $uid, 0);
|
|
|
}
|
|
|
|
|
|
$chat_message = [
|
|
|
@@ -1331,6 +1334,8 @@ class Events
|
|
|
$key = date('Ymd') . 'success_in';
|
|
|
self::$global->increment($key);
|
|
|
|
|
|
+ self::addKfUsermap($kfuid, $uid);
|
|
|
+
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -1420,6 +1425,8 @@ class Events
|
|
|
$key = date('Ymd') . 'success_in';
|
|
|
self::$global->increment($key);
|
|
|
|
|
|
+ self::addKfUsermap($kfuid, $uid);
|
|
|
+
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -1952,6 +1959,9 @@ class Events
|
|
|
// 发送给用户转接消息
|
|
|
Gateway::sendToClient($user_info['client_id'], json_encode(['message_type' => 'changeKeFuSuccess', 'data' => ['content' => "会话转接成功"]], 256));
|
|
|
|
|
|
+ self::addKfUsermap($fromkfuid, $uid, 0);
|
|
|
+ self::addKfUsermap($toukfid, $uid, 1);
|
|
|
+
|
|
|
self::DebugOut('changekf 转换成功!');
|
|
|
|
|
|
return;
|
|
|
@@ -2367,6 +2377,25 @@ class Events
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //客服用户映射哈希表
|
|
|
+ public static function addKfUsermap($kfuid, $userid = 0, $opt = 1)
|
|
|
+ {
|
|
|
+ $kfuid = self::getkfuid($kfuid);
|
|
|
+ $uid = intval($userid);
|
|
|
+ $key = self::KEFU_USERIDS . ':' . $kfuid;
|
|
|
+
|
|
|
+ if ($opt) {
|
|
|
+ $ret = self::$redis->hset($key, $uid, date("Y-m-d H:i:s"));
|
|
|
+ } else {
|
|
|
+ if ($userid) {
|
|
|
+ $ret = self::$redis->hdel($key, $uid);
|
|
|
+ } else {
|
|
|
+ $ret = self::del($key);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $ret;
|
|
|
+ }
|
|
|
+
|
|
|
//缓存获取用户信息
|
|
|
public static function getUserInfoCache($uid, $cacheTime = 180, $fcache = 1)
|
|
|
{
|