vali 6 years ago
parent
commit
d56d8c20c3
1 changed files with 64 additions and 44 deletions
  1. 64 44
      vendor/GatewayWorker_windows/Applications/whisper/Events.php

+ 64 - 44
vendor/GatewayWorker_windows/Applications/whisper/Events.php

@@ -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