瀏覽代碼

异步回调优化

lizhen_gitee 1 年之前
父節點
當前提交
5219031d24
共有 2 個文件被更改,包括 21 次插入63 次删除
  1. 17 61
      application/api/controller/Easemob.php
  2. 4 2
      application/api/controller/Party.php

+ 17 - 61
application/api/controller/Easemob.php

@@ -112,60 +112,15 @@ class Easemob extends Api
                 $this->redis->hDel("livingUser", $uid);
                 $this->redis->HDel("online_" . $livingUserPartyId, $uid);
                 $this->redis->zRem("party_user_".$livingUserPartyId,$uid); //新加的
-            }
-
-            // 获取用户所在群信息
-            $grouplist = $this->getJoindGroupList($uid);
 
-            if(!empty($grouplist)) {
-                $groupsites = [];
-                if($grouplist) foreach($grouplist as $k => $v) {
-                    $partyid = Db::name('party')->where('easemob_room_id',$v['id'])->value('id');
-                    if(empty($partyid)){
-                        continue;
-                    }
-                    $v["GroupId"] = $partyid;
-                    // 获取群组消息
-//                    $groupInfo = $this->getGroupInfo($v["GroupId"]); 因为downSite方法没用到,所以屏蔽
-
-//                    if($groupInfo["ErrorCode"] == 0) $groupsites[] = $groupInfo["GroupInfo"][0]; 因为downSite方法没用到,所以屏蔽
-
-                    // 踢出用户在线组
-                    $this->redis->HDel("online_".$v["GroupId"],$uid);
-                    $this->redis->zRem("party_user_".$v["GroupId"],$uid); //新加的
-
-                    // 更新麦位前四
-                    $this->updatePosition($uid,$v["GroupId"]);
-
-                    // 取消排麦
-                    //$this->cancelLineup($uid,$v["GroupId"]);
-
-                    // 房间状态变更
-                    $partyInfo = $this->redis->get("party_".$v["GroupId"]);
-                    if($partyInfo) {
-                        $partyInfo = json_decode($partyInfo,true);
-                        $memCount = count($this->redis->hGetAll("online_".$v["GroupId"]));
-                        if($memCount <= 0) {
-                            $partyInfo["is_online"] = 0;
-                            $this->redis->set("party_".$v["GroupId"],json_encode($partyInfo));
-                            \app\common\model\Party::update(["is_online"=>0],["id"=>$v["GroupId"]]);
-                        }
-                    }
-
-                    $liveInfo = $this->redis->get("live_".$v["GroupId"]);
-                    if($liveInfo) {
-                        $liveInfo = json_decode($liveInfo,true);
-                        $memCount = count($this->redis->hGetAll("online_".$v["GroupId"]));
-                        if($memCount <= 0) {
-                            $liveInfo["is_online"] = 0;
-                            $this->redis->set("live_".$v["GroupId"],json_encode($liveInfo));
-                            \app\common\model\Party::update(["is_online"=>0],["id"=>$v["GroupId"]]);
-                        }
-                    }
+                //退出房间获取房间自定义属性
+                //清理这个人的麦序
+                //重置房间在线人数
+                $party_info = Db::name('party')->field('id,user_id,easemob_room_id')->where('id',$livingUserPartyId)->find();
+                if(empty($party_info)){
+                    exit;
                 }
-                // 强制下麦
-                print_r($this->downSite($uid,$groupsites));
-                //理论上,应该轮询所有房间,轮询这个用户所在的麦位,给下麦,如果是房主,应该解散
+                $this->clean_room($party_info,$uid);
 
             }
 
@@ -217,7 +172,11 @@ class Easemob extends Api
             if(isset($input['from'])){
                 $uid = $this->get_easemob_uid($input['from']);
             }
-            $partyid = Db::name('party')->where('easemob_room_id',$room_id)->value('id');
+            $party_info = Db::name('party')->field('id,user_id,easemob_room_id')->where('easemob_room_id',$room_id)->find();
+            if(empty($party_info)){
+                exit;
+            }
+            $partyid = $party_info['id'];
 
             //开始处理
 
@@ -299,7 +258,7 @@ class Easemob extends Api
                 //退出房间获取房间自定义属性
                 //清理这个人的麦序
                 //重置房间在线人数
-                $this->clean_room($partyid,$uid);
+                $this->clean_room($party_info,$uid);
 
             }
 
@@ -311,12 +270,9 @@ class Easemob extends Api
 
     //清除某个麦位
     //重置房间在线人数
-    private function clean_room($easemob_room_id,$uid){
+    private function clean_room($party_info,$uid){
 
-        $party_info = Db::name('party')->field('id,user_id')->where('easemob_room_id',$easemob_room_id)->find();
-        if(empty($party_info)){
-            return false;
-        }
+        $easemob_room_id = $party_info['easemob_room_id'];
 
         //获取所有麦位,假设8个
         $easemob = new Easemoblib();
@@ -432,10 +388,10 @@ class Easemob extends Api
         /*此处删减参考ggyuyin,api/tenim/downsite*/
 
         // 先更新下麦时间
-        $update = [];
+        /*$update = [];
         $update["offsite_time"] = time();
         $update["status"] = 2;
-        \app\common\model\UserOnsiteTime::update($update,["user_id"=>$user_id,"status"=>1]);
+        \app\common\model\UserOnsiteTime::update($update,["user_id"=>$user_id,"status"=>1]);*/
 
         // 循环房间
         /*此处删减参考ggyuyin,api/tenim/downsite*/

+ 4 - 2
application/api/controller/Party.php

@@ -571,11 +571,13 @@ class Party extends Api
 
         $userModel = new \app\common\model\User();
 
-        // 获取50条魅力排行日记录
+        // 获取所有魅力排行
         $getday = $this->redis->zRevRange("hourCharm_".$party_id,0,-1,true);
         $res['getRankListDay'] = $userModel->rankList($getday);
 
-        // 获取50条财富排行日记录
+
+
+        // 获取所有财富排行
         $today  = $this->redis->zRevRange("hourWealth_".$party_id,0,-1,true);
         $res['toRankListDay'] = $userModel->rankList($today);