Browse Source

talk final

huangdong 6 years ago
parent
commit
6cb57e29da
2 changed files with 26 additions and 260 deletions
  1. 20 44
      data/model/room.model.php
  2. 6 216
      test/TestTalk.php

+ 20 - 44
data/model/room.model.php

@@ -133,10 +133,29 @@ class roomModel extends Model
             $left = $right;
             $right = $tmp;
         }
-
         return $this->table('room_chatwo')->insert(['user_left' => $left,'user_right' => $right,'add_time' => time()]);
     }
 
+
+    public function getRoomMsgsCount($cond){
+        return $this->table('room_msg')->where($cond)->count();
+    }
+
+
+    public function getUserRoomMsg($room_id,$userid,$msg_type)
+    {
+        return $this->table('room_msg')->field('*')->where(['room_id' => $room_id,'member_id' => $userid,'type' => $msg_type])->order('add_time desc')->select();
+    }
+
+
+
+    ////////////room_chatwo_msg
+    public function addChatwoMsg($datas)
+    {
+        return $this->table('room_chatwo_msg')->insert($datas);
+    }
+
+
     public function getLastChatwoMsg($user)
     {
         $from =[
@@ -193,47 +212,4 @@ class roomModel extends Model
             return [];
         }
     }
-
-    public function getRoomMsgsCount($cond){
-        return $this->table('room_msg')->where($cond)->count();
-    }
-
-    public function getChatsRoom($user)
-    {
-        return $this->table('room_participant,room')
-                ->join('left')->on('room_participant.room_id = room.room_id')
-                ->field('room.*')
-                ->where(['room.type'=>\room\proto_type::room_chat,'room_participant.member_id'=>$user])
-                ->select();
-    }
-
-    public function getJoinedChatRoom($user){
-        $join_rooms = $this->getJoinedRoom($user);
-        if(!empty($join_rooms)){
-            $roomids = [];
-            foreach ($join_rooms as $room){$roomids[] = $room['room_id'];}
-            return $this->table('room')->field('*')->where(['type'=>\room\proto_type::room_chat,'room_id'=>['in',$roomids]])->select();
-        }else{
-            return [];
-        }
-    }
-
-    private function getJoinedRoom($user){
-        return $this->table('room_participant')->field('*')->where(['member_id'=>$user,'state'=>0])->select();
-    }
-
-    public function getRoomMember($room){
-        return  $this->table('room_participant')->field('*')->where(['room_id'=>$room,'state'=>0])->select();
-    }
-
-
-    public function getUserRoomMsg($room_id,$userid,$msg_type)
-    {
-        return $this->table('room_msg')->field('*')->where(['room_id' => $room_id,'member_id' => $userid,'type' => $msg_type])->order('add_time desc')->select();
-    }
-
-    public function addChatwoMsg($datas)
-    {
-        return $this->table('room_chatwo_msg')->insert($datas);
-    }
 }

+ 6 - 216
test/TestTalk.php

@@ -280,225 +280,15 @@ class TestTalk extends PHPUnit_Framework_TestCase
     }
 
 
+    public function testParam(){
+        $room_item = [ "type" => "room", "room"=> 37 ,"msg_id" => 1000];
+        $chatwo_item = [ "type" => "chatwo", "user"=> 39234 ,"msg_id" => 0];
 
-    public function testRoom_list(){
-        $_SESSION['is_login'] =1;
-        $_SESSION['member_id'] = 39623;
+        $param[] = $room_item;
+        $param[] = $chatwo_item;
 
-        $user = 39623;
-
-        $case1 = $this->room_case1($user);
-
-        $case2 = $this->room_case2($user);
+        $cmp_content = base64_encode(json_encode($param));
 
-        $case3 = $this->room_case3($user);
         echo 0;
     }
-
-    private function room_case2($user)
-    {
-        $mod_room = Model("room");
-        $chats_rooms = $mod_room->getChatsRoom($user);
-
-        $rooms = [];
-        $uids_total = [];
-        if(!empty($chats_rooms))
-        {
-            foreach ($chats_rooms as $room)
-            {
-                $uids = [];
-                $paticipates = $mod_room->getRoomMember($room['room_id']);
-                if(!empty($paticipates))
-                {
-                    foreach ($paticipates as $one)
-                    {
-                        $uids[] = $one['member_id'];
-                    }
-
-                    $uids_total = array_merge($uids_total,$uids);
-                }
-
-
-                $rooms[] = [
-                    "room_id"=>$room['room_id'],
-                    "room_name"=>$room['room_name'],
-                    "avatar"=>"",
-                    "room_members"=>$uids
-                ];
-            }
-
-            $members = [];
-            if(!empty($uids_total))
-            {
-                $uids_total = array_unique($uids_total);
-                $items = Model('member')->getMemberList(['member_id' => ['in',$uids_total]]);
-
-                foreach ($items as $item){
-                    try
-                    {
-                        $info = new member_info($item);
-                        $members[$item['member_id']] = $info->filter();
-                    }
-                    catch (Exception $ex) {
-                        Log::record($ex->getMessage(),Log::ERR);
-                    }
-                }
-            }
-
-
-            if(!empty($members))
-            {
-                foreach ($rooms as $index => $room){
-                    $room_members = [];
-                    if(!empty($room['room_members']))
-                    {
-                        foreach ($room['room_members'] as $uid)
-                        {
-                            if(isset($members[$uid])){
-                                $room_members[] = $members[$uid];
-                            }
-
-                        }
-                    }
-                    $rooms[$index]['room_members'] = $room_members;
-                }
-            }
-        }
-
-        return $rooms;
-    }
-
-    private function room_case1($user)
-    {
-        $mod_room = Model('room');
-        $chat_rooms = $mod_room->getJoinedChatRoom($user);
-
-        $rooms = [];
-        if(!empty($chat_rooms))
-        {
-            foreach ($chat_rooms as $item)
-            {
-                $rooms[] = $this->room_info($item);
-            }
-        }
-
-        return $rooms;
-    }
-
-    private function room_info($room)
-    {
-        $mod_room = Model("room");
-        $paticipates = $mod_room->getRoomMember($room['room_id']);
-
-        $uids = [];
-        if(!empty($paticipates))
-        {
-            foreach ($paticipates as $one){
-                $uids[] = $one['member_id'];
-            }
-        }
-
-        if(empty($uids)){
-            $items = [];
-        }else{
-            $items = Model('member')->getMemberList(['member_id' => ['in',$uids]]);
-        }
-
-        $members = [];
-        foreach ($items as $item){
-            try
-            {
-                $info = new member_info($item);
-                $members[] = $info->filter();
-            }
-            catch (Exception $ex) {
-                Log::record($ex->getMessage(),Log::ERR);
-            }
-        }
-
-        $ret = [
-            "room_id"=>$room['room_id'],
-            "room_name"=>$room["room_name"],
-            "avatar"=> "", //头像和member查询维度太高
-            "room_members"=>$members,
-        ];
-        return $ret;
-    }
-
-    private function room_case3($user){
-        $mod_room = Model("room");
-        $chats_rooms = $mod_room->getChatsRoom($user);
-
-        $rooms = [];
-        if(!empty($chats_rooms))
-        {
-
-            $roomids = [];
-            foreach ($chats_rooms as $room)
-            {
-                $rooms[] = [
-                    "room_id"=>$room['room_id'],
-                    "room_name"=>$room['room_name'],
-                    "avatar"=>"",
-                    "room_members"=>[]
-                ];
-                $roomids[] = intval($room['room_id']);
-            }
-
-            $room_members = [];
-            $uids_total = [];
-            $roomTouser = $mod_room->table('room_msg')
-                ->field('room_id,group_concat(DISTINCT member_id) as uidstr')
-                ->where(['room_id'=>['in',$roomids]])
-                ->group('room_id')
-                ->select();
-            if(!empty($roomTouser))
-            {
-                foreach ($roomTouser as $index => $item)
-                {
-                    $uids = explode(',',$item['uidstr']);
-                    $uids_total = array_merge($uids_total,$uids);
-                    $room_members[$item['room_id']] = $uids;
-                }
-            }
-
-            $members = [];
-            if(!empty($uids_total))
-            {
-                $uids_total = array_unique($uids_total);
-                $items = Model('member')->getMemberList(['member_id' => ['in',$uids_total]]);
-
-                foreach ($items as $item){
-                    try
-                    {
-                        $info = new member_info($item);
-                        $members[$item['member_id']] = $info->filter();
-                    }
-                    catch (Exception $ex) {
-                        Log::record($ex->getMessage(),Log::ERR);
-                    }
-                }
-            }
-
-            if(!empty($members))
-            {
-                foreach ($rooms as $index => $room)
-                {
-                    $room_id = $room['room_id'];
-                    if(isset($room_members[$room_id]))
-                    {
-                        $user_list = [];
-                        foreach ($room_members[$room_id] as $i=>$uid)
-                        {
-                            if(isset($members[$uid])) $user_list[$i] = $members[$uid];
-                        }
-                        $rooms[$index]['room_members'] = $user_list;
-                    }
-                }
-            }
-        }
-
-        return $rooms;
-    }
-
 }