瀏覽代碼

发现一个getGroupInfo问题

lizhen_gitee 1 年之前
父節點
當前提交
c174ee0e4c
共有 2 個文件被更改,包括 21 次插入148 次删除
  1. 20 148
      application/api/controller/Easemob.php
  2. 1 0
      application/api/controller/Tenim.php

+ 20 - 148
application/api/controller/Easemob.php

@@ -113,15 +113,15 @@ class Easemob extends Api
 
             // 获取用户所在群信息
             $groupids = $this->getJoindGroupList($uid);
-//                    \app\common\model\Test::update(["content"=>json_encode($groupids)],["id"=>1]);
-            if($groupids["ErrorCode"] == 0) {
-                $grouplist = $groupids["GroupIdList"];
+
+            if(!empty($groupids)) {
+                $grouplist = $groupids;
                 $groupsites = [];
                 if($grouplist) foreach($grouplist as $k => $v) {
                     // 获取群组消息
-                    $groupInfo = $this->getGroupInfo($v["GroupId"]);
+//                    $groupInfo = $this->getGroupInfo($v["GroupId"]); 因为downSite方法没用到,所以屏蔽
 
-                    if($groupInfo["ErrorCode"] == 0) $groupsites[] = $groupInfo["GroupInfo"][0];
+//                    if($groupInfo["ErrorCode"] == 0) $groupsites[] = $groupInfo["GroupInfo"][0]; 因为downSite方法没用到,所以屏蔽
 
                     // 踢出用户在线组
                     $this->redis->HDel("online_".$v["GroupId"],$uid);
@@ -338,55 +338,20 @@ class Easemob extends Api
 
     /**
      * 获取用户所加入的聊天室
-     */
-    public function getJoindGroupList($user_id) {
-        $random = rand(10000000,99999999);
-        $usersig = $this->usersig("administrator");
-        // 获取配置信息
-        $config = config("tencent_im");
-        $url = "https://console.tim.qq.com/v4/group_open_http_svc/get_joined_group_list";
-        $url .= "?sdkappid=".$config["sdkappid"];
-        $url .= "&identifier=administrator";
-        $url .= "&usersig=".$usersig;
-        $url .= "&random=".$random;
-        $url .= "&contenttype=json";
-
-        $tencentObj = new tencentim($url);
-        $data = [];
-        $data["Member_Account"] = $user_id;
-        $data["WithHugeGroups"] = 1;
-        $data["GroupType"] = 'AVChatRoom';
-        $data["ResponseFilter"] = ["GroupBaseInfoFilter" => ['GroupId'] ];
-        $groupInfo = $tencentObj->toSend($data);
-//        \app\common\model\Test::update(["content"=>json_encode($groupInfo)],["id"=>1]);
-        return $groupInfo;
+    */
+    private function getJoindGroupList($user_id) {
+        $easemob = new Easemoblib();
+        $list = $easemob->room_listAllRoomsUserJoined($user_id);
+        return $list;
     }
 
     /**
      * 获取群组信息
      */
-    public function getGroupInfo($party_id='0') {
-        $party_id = !empty($party_id) ? $party_id : $this->request->param('part_id',0);
-        $random = rand(10000000,99999999);
-        $usersig = $this->usersig("administrator");
-        // 获取配置信息
-        $config = config("tencent_im");
-        $url = "https://console.tim.qq.com/v4/group_open_http_svc/get_group_info";
-        $url .= "?sdkappid=".$config["sdkappid"];
-        $url .= "&identifier=administrator";
-        $url .= "&usersig=".$usersig;
-        $url .= "&random==".$random;
-        $url .= "&contenttype=json";
-        $tencentObj = new tencentim($url);
-        $data = [];
-        $data["GroupIdList"] = [(string)$party_id];
-        $data["ResponseFilter"] = [
-            "GroupBaseInfoFilter" => ["GroupId","Type","Name","FaceUrl","Owner_Account","MemberNum"],
-            "MemberInfoFilter" => ["Account","Role"],
-            "AppDefinedDataFilter_Group" => ["roomInfo"],
-        ];
-        $groupInfo = $tencentObj->toSend($data);
-        $this->success('获取成功',$groupInfo['GroupInfo']);
+    private function getGroupInfo($easemob_room_id = '230909515202562') {
+        $easemob = new Easemoblib();
+        $info = $easemob->room_getRoom($easemob_room_id);
+        return $info;
     }
 
     /**
@@ -404,18 +369,8 @@ class Easemob extends Api
         \app\common\model\UserOnsiteTime::update($update,["user_id"=>$user_id,"status"=>1]);
 
         //
-        $redis = new Redis();
-        $redisconfig = config("redis");
-        $redis->connect($redisconfig["host"], $redisconfig["port"]);
-        if ($redisconfig['redis_pwd']) {
-            $redis->auth($redisconfig['redis_pwd']);
-        }
-        if($redisconfig['redis_selectdb'] > 0){
-            $redis->select($redisconfig['redis_selectdb']);
-        }
-
         $room_type = Db::name('party')->where('id',$party_id)->value('room_type');
-        $redisData = $redis->get($room_type."_".$party_id);
+        $redisData = $this->redis->get($room_type."_".$party_id);
 
         if(!$redisData){
             return true;
@@ -426,7 +381,7 @@ class Easemob extends Api
         $partyuser = isset($partyInfo["party_user"])?$partyInfo["party_user"]:"";
         if(is_array($partyuser)) foreach($partyuser as $k => $v) if($v === $userAvatar) unset($partyInfo["party_user"][$k]);
 
-        $redis->set($room_type."_".$party_id,json_encode($partyInfo));
+        $this->redis->set($room_type."_".$party_id,json_encode($partyInfo));
 
     }
 
@@ -434,81 +389,15 @@ class Easemob extends Api
      * 取消排麦
      */
     public function cancelLineUp($user_id,$party_id) {
-        if (!$party_id || !$user_id) {
-            return false;
-        }
-        $redis = new Redis();
-        $redisconfig = config("redis");
-        $redis->connect($redisconfig["host"], $redisconfig["port"]);
-        if ($redisconfig['redis_pwd']) {
-            $redis->auth($redisconfig['redis_pwd']);
-        }
-        if($redisconfig['redis_selectdb'] > 0){
-            $redis->select($redisconfig['redis_selectdb']);
-        }
-        $data=unserialize($redis->hGet("party_lineup",$party_id));
-        // 更改红点排麦数量
-        $num = 0;
-        $send = false;
-        if($data) foreach($data as $k => $v) {
-            if($v["user_id"] == $user_id) {
-                $send = true;
-                unset($data[$k]);
-                break;
-            }
-        }
-        $redis->hSet("party_lineup",$party_id,serialize($data));
-
-        if($send) {
-            is_array($data) &&  $num = count($data);
-
-            $random = rand(10000000,99999999);
-            $usersig = $this->usersig("administrator");
-            // 获取配置信息
-            $config = config("tencent_im");
-            $url = "https://console.tim.qq.com/v4/group_open_http_svc/send_group_msg";
-            $url .= "?sdkappid=".$config["sdkappid"];
-            $url .= "&identifier=administrator";
-            $url .= "&usersig=".$usersig;
-            $url .= "&random=".$random;
-            $url .= "&contenttype=json";
-            $tencentObj = new tencentim($url);
-
-            $data = [];
-            $data["GroupId"] = $party_id;
-            $data["Random"] = rand(1000000,9999999);
-            $message = [
-                "message" => json_encode(["type"=>23,"content"=>$num]),
-                "version" => "1.0",
-                "action" => 301,
-                "command" => ""
-            ];
-            $data["MsgBody"][] = [
-                "MsgType" => "TIMCustomElem",
-                "MsgContent" => [
-                    "Data"=> json_encode($message)
-                ],
-            ];
-            $tencentObj->toSend($data);
-        }
-
+        return false;
+        //因为没有排麦了,设计图就没这个功能,所以后面没了
     }
 
     /**
      * 强制下线
      */
     public function downSite($user_id,$groupsites) {
-        $random = rand(10000000,99999999);
-        $usersig = $this->usersig("administrator");
-        // 获取配置信息
-        $config = config("tencent_im");
-        $url = "https://console.tim.qq.com/v4/group_open_http_svc/modify_group_base_info";
-        $url .= "?sdkappid=".$config["sdkappid"];
-        $url .= "&identifier=administrator";
-        $url .= "&usersig=".$usersig;
-        $url .= "&random=".$random;
-        $url .= "&contenttype=json";
-        $tencentObj = new tencentim($url);
+        /*此处删减参考ggyuyin,api/tenim/downsite*/
 
         // 先更新下麦时间
         $update = [];
@@ -517,24 +406,7 @@ class Easemob extends Api
         \app\common\model\UserOnsiteTime::update($update,["user_id"=>$user_id,"status"=>1]);
 
         // 循环房间
-        if($groupsites) foreach($groupsites as $k => $v) {
-            // 循环座位
-            $data = [];
-            foreach($v["AppDefinedData"] as $m => $n) {
-                // 解析字段信息
-                $siteInfo = json_decode($n["Value"],true);
-                if($m != 0 && isset($siteInfo["status"]) && $siteInfo["status"] == 1 && isset($siteInfo["status"]) && $siteInfo["user"] == $user_id) {
-                    $data["AppDefinedData"][] = [
-                        "Key" => $n["Key"],
-                        "Value" => '{"mute":false,"status":0,"user":""}',
-                    ];
-                }
-            }
-            if(!empty($data)) {
-                $data["GroupId"] = $v["GroupId"];
-                return $tencentObj->toSend($data);
-            }
-        }
+        /*此处删减参考ggyuyin,api/tenim/downsite*/
     }
 
 

+ 1 - 0
application/api/controller/Tenim.php

@@ -208,6 +208,7 @@ exit;
         ];
         $groupInfo = $tencentObj->toSend($data);
         $this->success('获取成功',$groupInfo['GroupInfo']);
+        //因为这里退出了,所有用这个方法的,都会终止,20230628被张效彬修改,不明原因。李振注
     }
 
     /**