|
|
@@ -89,13 +89,18 @@ class Events
|
|
|
self::writeLog(2);
|
|
|
});
|
|
|
|
|
|
- //每60分钟发一次本组排队数
|
|
|
+ //每1分钟发一次本组排队数
|
|
|
Timer::add(60 * 1, function () {
|
|
|
self::lineup();
|
|
|
});
|
|
|
- Timer::add(60 * 1, function () {
|
|
|
- self::lineup();
|
|
|
+
|
|
|
+ //初始化.....
|
|
|
+ self::upsystemconfig();
|
|
|
+ //每5分钟更新一次系统配置文件
|
|
|
+ Timer::add(60 * 10, function () {
|
|
|
+ self::upsystemconfig();
|
|
|
});
|
|
|
+
|
|
|
// 检查对话时效给出.
|
|
|
Timer::add(60, function () {
|
|
|
self::overTime();
|
|
|
@@ -194,46 +199,46 @@ class Events
|
|
|
}
|
|
|
$message = json_decode($message, true);
|
|
|
if (isset($message['type'])) {
|
|
|
- switch ($message['type']) {
|
|
|
- // 客服初始化
|
|
|
- case 'init':
|
|
|
- self::Kfinit($client_id, $message);
|
|
|
- break;
|
|
|
- // 顾客初始化
|
|
|
- case 'userInit';
|
|
|
- self::userInitEnt($client_id, $message);
|
|
|
- break;
|
|
|
- // 聊天
|
|
|
- case 'getkfonlines':
|
|
|
- Gateway::sendToCurrentClient(json_encode(self::getkfonlines(), 256));
|
|
|
- break;
|
|
|
- case 'chatMessage':
|
|
|
- $client = Gateway::getClientIdByUid($message['data']['to_id']);
|
|
|
- if (!empty($client)) {
|
|
|
- $chat_message = [
|
|
|
- 'message_type' => 'chatMessage',
|
|
|
- 'data' => [
|
|
|
- 'name' => $message['data']['from_name'],
|
|
|
- 'avatar' => $message['data']['from_avatar'],
|
|
|
- 'id' => $message['data']['from_id'],
|
|
|
- 'time' => date('H:i'),
|
|
|
- 'content' => htmlspecialchars($message['data']['content']),
|
|
|
- ]
|
|
|
- ];
|
|
|
- Gateway::sendToClient($client['0'], json_encode($chat_message));
|
|
|
- unset($chat_message);
|
|
|
-
|
|
|
- // 聊天信息入库
|
|
|
- $serviceLog = [
|
|
|
- 'from_id' => $message['data']['from_id'],
|
|
|
- 'from_name' => $message['data']['from_name'],
|
|
|
- 'from_avatar' => $message['data']['from_avatar'],
|
|
|
- 'to_id' => $message['data']['to_id'],
|
|
|
- 'to_name' => $message['data']['to_name'],
|
|
|
- 'content' => $message['data']['content'],
|
|
|
- 'servicelog_id' => $message['data']['conversationId'],
|
|
|
- 'time_line' => time()
|
|
|
- ];
|
|
|
+ switch ($message['type']) {
|
|
|
+ // 客服初始化
|
|
|
+ case 'init':
|
|
|
+ self::Kfinit($client_id, $message);
|
|
|
+ break;
|
|
|
+ // 顾客初始化
|
|
|
+ case 'userInit';
|
|
|
+ self::userInitEnt($client_id, $message);
|
|
|
+ break;
|
|
|
+ // 聊天
|
|
|
+ case 'getkfonlines':
|
|
|
+ Gateway::sendToCurrentClient(json_encode(self::getkfonlines(), 256));
|
|
|
+ break;
|
|
|
+ case 'chatMessage':
|
|
|
+ $client = Gateway::getClientIdByUid($message['data']['to_id']);
|
|
|
+ if (!empty($client)) {
|
|
|
+ $chat_message = [
|
|
|
+ 'message_type' => 'chatMessage',
|
|
|
+ 'data' => [
|
|
|
+ 'name' => $message['data']['from_name'],
|
|
|
+ 'avatar' => $message['data']['from_avatar'],
|
|
|
+ 'id' => $message['data']['from_id'],
|
|
|
+ 'time' => date('H:i'),
|
|
|
+ 'content' => htmlspecialchars($message['data']['content']),
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ Gateway::sendToClient($client['0'], json_encode($chat_message));
|
|
|
+ unset($chat_message);
|
|
|
+
|
|
|
+ // 聊天信息入库
|
|
|
+ $serviceLog = [
|
|
|
+ 'from_id' => $message['data']['from_id'],
|
|
|
+ 'from_name' => $message['data']['from_name'],
|
|
|
+ 'from_avatar' => $message['data']['from_avatar'],
|
|
|
+ 'to_id' => $message['data']['to_id'],
|
|
|
+ 'to_name' => $message['data']['to_name'],
|
|
|
+ 'content' => $message['data']['content'],
|
|
|
+ 'servicelog_id' => $message['data']['conversationId'],
|
|
|
+ 'time_line' => time()
|
|
|
+ ];
|
|
|
|
|
|
self::$db->insert('ws_chat_log')->cols($serviceLog)->query();
|
|
|
unset($serviceLog);
|
|
|
@@ -406,7 +411,7 @@ class Events
|
|
|
foreach ($kfs as $gruop => $fs) {
|
|
|
foreach ($fs as $kfid => $kfdata) {
|
|
|
if ($kfdata['status'] == 1) {
|
|
|
- $ret[$gruop][] = ['id' => $kfid, 'name' => $kfdata['name'], 'job_member' => $kfdata['job_name'],'avatar'=>$kfdata['avatar']];
|
|
|
+ $ret[$gruop][] = ['id' => $kfid, 'name' => $kfdata['name'], 'job_member' => $kfdata['job_name'], 'avatar' => $kfdata['avatar'],'signature'=>$kfdata['signature']];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -539,6 +544,7 @@ class Events
|
|
|
'avatar' => $kfinfo['user_avatar'],
|
|
|
'client_id' => $client_id,
|
|
|
'task' => 0,
|
|
|
+ 'signature'=>$kfinfo['signature'],
|
|
|
'status' => 2,// 1为在线(接收分配、接收消息)2为隐身(不接收分配、只接收消息)
|
|
|
'user_info' => []
|
|
|
];
|
|
|
@@ -1407,6 +1413,20 @@ class Events
|
|
|
Gateway::sendToClient($client_id, json_encode($chat_message, 256));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //获取系统配置
|
|
|
+ private static function upsystemconfig()
|
|
|
+ {
|
|
|
+ $systemConfigData = self::$db->query("SELECT * FROM `ws_systemconfig`");
|
|
|
+ $arr = [];
|
|
|
+ if ($systemConfigData) {
|
|
|
+ foreach ($systemConfigData as $item) {
|
|
|
+ $arr[$item['systemconfig_enName']] = $item;
|
|
|
+ }
|
|
|
+ self::$global->systemconfig = $arr;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 超时
|
|
|
* @param $client_id 服务ID
|