Просмотр исходного кода

Merge branch 'dev' of http://git.bocai108.com:10180/Ethan/Customer-Service into dev

Jonlin 6 лет назад
Родитель
Сommit
4b466377c4
1 измененных файлов с 35 добавлено и 5 удалено
  1. 35 5
      vendor/GatewayWorker_windows/Applications/whisper/Events.php

+ 35 - 5
vendor/GatewayWorker_windows/Applications/whisper/Events.php

@@ -419,12 +419,27 @@ class Events
             self::MySendMsg($client_id, json_encode(["message_type" => 'checkfalse', 'data' => "验证失败"], 256));
             Gateway::closeCurrentClient();
             return true;
-        } elseif ($kfinfo['status'] != 1) {
-            self::MySendMsg($client_id, json_encode(["message_type" => 'checkfalse', 'data' => "禁用中..."], 256));
-            Gateway::closeCurrentClient();
-            return true;
+        } else {
+            if ($kfinfo['status'] != 1) {
+                self::MySendMsg($client_id, json_encode(["message_type" => 'checkfalse', 'data' => "禁用中..."], 256));
+                Gateway::closeCurrentClient();
+                return true;
+            }
+
+            if ($kfinfo['group_id'] != $group) {
+                self::MySendMsg($client_id, json_encode(["message_type" => 'checkfalse', 'data' => "groupid 有错..."], 256));
+                Gateway::closeCurrentClient();
+                return true;
+            }
+
+            if ($uid != self::getkfuid($kfinfo['id'])) {
+                self::MySendMsg($client_id, json_encode(["message_type" => 'checkfalse', 'data' => "uid 有错..."], 256));
+                Gateway::closeCurrentClient();
+                return true;
+            }
         }
 
+
         if ($loginstate == 2) {
             $oldcontids = Gateway::getClientIdByUid($uid);
             Gateway::sendToClient($oldcontids['0'], (json_encode(['message_type' => 'reLoginErr', 'msg' => '你的账号在其它登陆,本次下线'], 256)));
@@ -475,12 +490,25 @@ class Events
         self::KFStatusCg($client_id, ['data' => ['uid' => $uid, 'status' => 1]]);
 
         self::SendKFHistoryRecord($client_id, $uid);
+        self::updateWebsockName($client_id, $uid);
+
         echo date("Y-m-d H:i:s") . ' - ' . '客服上线-' . $message['name'] . "\n";
 
         return;
     }
 
 
+    //连接信息里保存用户,以便观察
+    private static function updateWebsockName($client_id, $uid)
+    {
+        $info = json_decode(self::$redis->hget(self::WEBSOCKALLUSER, $client_id), true);
+        if ($info) {
+            $info['name'] = strval($uid);
+            self::$redis->hset(self::WEBSOCKALLUSER, $client_id, json_encode($info, 256));
+        }
+        return true;
+    }
+
     //客服掉线后 历史聊天记录
     private static function SendKFHistoryRecord($client_id, $userId)
     {
@@ -645,6 +673,8 @@ class Events
         Gateway::bindUid($client_id, $uid);
         $_SESSION['iskefu'] = 0;
         $_SESSION['uid'] = $message['uid'];
+        self::updateWebsockName($client_id, $uid);
+
 
         // 尝试分配新会员进入服务
         self::userOnlineTask($group, $uid, $last, $client_id);
@@ -699,7 +729,7 @@ class Events
                 self::MySendMsg($val, json_encode(['message_type' => 'serviceoffline', 'msg' => '客服人员下线!'], 256));
             }
         }
-        echo date("Y-m-d H:i:s") . ' - ' . "客服退出: " . $uid . "\n";
+        //echo date("Y-m-d H:i:s") . ' - ' . "客服退出: " . $uid . "\n";
         self::writeLogKfStatus($uid, 0);
         return;
     }