|
@@ -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;
|
|
|
- }
|
|
|
-
|
|
|
}
|