stanley-king 6 年之前
父節點
當前提交
8c158c4219
共有 5 個文件被更改,包括 26 次插入12 次删除
  1. 12 4
      helper/room/face_room.php
  2. 5 1
      helper/room/factory.php
  3. 5 1
      helper/room/factory_client.php
  4. 3 5
      helper/room/pusher.php
  5. 1 1
      mobile/control/member_talk.php

+ 12 - 4
helper/room/face_room.php

@@ -9,6 +9,8 @@
 namespace room;
 
 use uniquer;
+use Log;
+
 class face_item
 {
     const user_count = 50;
@@ -21,7 +23,7 @@ class face_item
         return intval($this->mParams['face_id']);
     }
     public function hasroom() {
-        return $this->room_id() != 0;
+        return $this->room_id() > 0;
     }
     public function room_id() {
         return intval($this->mParams['room_id']);
@@ -77,13 +79,14 @@ class face_room
         $this->mFaceItem = new face_item($item);
 
         $unique = $this->mFaceItem->users();
-        $unique->add_value($user);
 
-        $users = $unique->values();
-        if(!$this->mFaceItem->hasroom()) {
+        if($unique->add_value($user)) {
+            $users = $unique->values();
             $fact_id = $this->mFaceItem->face_id();
             $strusers = implode(',',$users);
             $this->mModRoom->editFace(['face_id' => $fact_id],['users' => $strusers]);
+        } else {
+            $users = $unique->values();
         }
 
         return $users;
@@ -91,15 +94,20 @@ class face_room
     public function join($user)
     {
         if($this->find($user) === false) return false;
+
         if($this->mFaceItem->hasroom()) {
+            Log::record("join hasroom true",Log::DEBUG);
             return $this->mFaceItem->room_id();
         }
         else
         {
             $ret = factory_client::instance()->create_chat($user);
             if($ret == false) {
+                Log::record("join create_chat error",Log::ERR);
                 return false;
             } else {
+                Log::record("join create_chat OK",Log::DEBUG);
+
                 $room_id = $ret['room'];
                 $fact_id = $this->mFaceItem->face_id();
                 $this->mModRoom->editFace(['face_id' => $fact_id],['room_id' => $room_id]);

+ 5 - 1
helper/room/factory.php

@@ -166,7 +166,11 @@ class factory
         }
 
         $uids = array_unique($uids,SORT_NUMERIC);
-        $members = Model('member')->getMemberList(['member_id' => ['in',$uids]]);
+        if(!empty($uids)) {
+            $members = Model('member')->getMemberList(['member_id' => ['in',$uids]]);
+        } else {
+            $members = [];
+        }
 
         $uid_infos = [];
         foreach ($members as $member) {

+ 5 - 1
helper/room/factory_client.php

@@ -178,7 +178,11 @@ class factory_client extends tcp_client
 
     public function notice_users($users,$type,$content,$msg)
     {
-        $param = ["act" => 'fcgi','op' => 'notice_users','users' => $users,'type' => $type,'content' => $content,'msg' => $msg];
+        $receivers = [];
+        foreach ($users as $user) {
+            $receivers[] = intval($user);
+        }
+        $param = ["act" => 'fcgi','op' => 'notice_users','users' => $receivers,'type' => $type,'content' => $content,'msg' => $msg];
         $result = $this->request($param);
         if(empty($result)) return false;
 

+ 3 - 5
helper/room/pusher.php

@@ -40,14 +40,12 @@ class pusher
             Log::record($ex->getMessage(),Log::ERR);
         }
     }
-    public function kick_room($room,$receiver)
+    public function kick_room($room,$kicks)
     {
         try
         {
-            $minfo = new member_info($receiver);
-            $from = ['nickname' => $minfo->nickname(),'avatar' => $minfo->avatar(),'userid' => intval($receiver)];
-            $content = ['type' => 'kick_room','from' => $from,'room' => $room];
-            factory_client::instance()->notice_users([$receiver],proto_type::push_command,$content,'');
+            $content = ['type' => 'kick_room','room' => $room];
+            factory_client::instance()->notice_users($kicks,proto_type::push_command,$content,'');
         }
         catch (Exception $ex) {
             Log::record($ex->getMessage(),Log::ERR);

+ 1 - 1
mobile/control/member_talk.php

@@ -469,7 +469,7 @@ class member_talkControl extends mbMemberControl
             return self::outerr(errcode::ErrRoom);
         }
         else {
-            room\pusher::instance()->kick_room($room_id,session_helper::memberid());
+            room\pusher::instance()->kick_room($room_id,$kicks);
             return self::outsuccess($result);
         }
     }