diff --git a/application/api/model/Guild.php b/application/api/model/Guild.php index cd20814..8c7b4dc 100644 --- a/application/api/model/Guild.php +++ b/application/api/model/Guild.php @@ -898,66 +898,90 @@ class Guild extends Model /* * 获取公会成员列表 */ - public function get_guild_user_list($guild_id,$user_id,$page=1,$page_limit=30){ - $count = Db::name('vs_guild_user') - ->alias('a') - ->join('user b','a.user_id = b.id') - ->where(['a.guild_id'=>$guild_id,'a.status'=>1,'a.delete_time'=>0]) - ->count(); - $list = Db::name('vs_guild_user') - ->alias('a') - ->join('user b', 'a.user_id = b.id') - ->field('a.id, a.user_id, a.guild_id, b.nickname, b.avatar, b.user_code, a.createtime') - ->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0]) - ->order('a.id asc') - ->page($page, $page_limit) - ->select(); - $member_array = array_column($list, 'user_id'); - $member_array_str = []; - foreach ($member_array as $k=> $v){ - $member_array_str[] = 'u' . $v; + public function get_guild_user_list($guild_ids,$user_id,$page=1,$page_limit=30){ + //获取$guild_id的第一个字母 + $guild_id_first_letter = substr($guild_ids, 0, 1); + $guild_id = substr($guild_ids, 1); + if($guild_id_first_letter == 'g'){ + $count = Db::name('vs_guild_user') + ->alias('a') + ->join('user b','a.user_id = b.id') + ->where(['a.guild_id'=>$guild_id,'a.status'=>1,'a.delete_time'=>0]) + ->count(); + $list = Db::name('vs_guild_user') + ->alias('a') + ->join('user b', 'a.user_id = b.id') + ->field('a.id, a.user_id, a.guild_id, b.nickname, b.avatar, b.user_code, a.createtime') + ->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0]) + ->order('a.id asc') + ->page($page, $page_limit) + ->select(); + }else{ + $myFamilyPid = db::name('vs_family')->where(['id' => $guild_id])->value('user_id'); + $list = db::name('vs_family')->alias('a') + ->join('user b','a.user_id = b.id') + ->field('b.is_online,b.market_value,b.nickname,b.avatar,b.user_code,a.user_id') + ->where(['a.pid' => $myFamilyPid,'a.deletetime' => 0,'a.type' => 0]) + ->order('a.id asc') + ->page($page, $page_limit) + ->select(); + + $count = db::name('vs_family')->alias('a') + ->join('user b','a.user_id = b.id') + ->field('b.is_online,b.market_value,b.nickname,b.avatar,b.user_code,a.user_id') + ->where(['a.pid' => $myFamilyPid,'a.deletetime' => 0,'a.type' => 0]) + ->count(); } - $group_member_info = model('Tencent')->get_group_member_info('g' .$guild_id,$member_array_str); - if($group_member_info['code'] == 0){ - return V($group_member_info['code'],$group_member_info['msg'], $group_member_info['data']); - } - $member = []; - foreach ($group_member_info['data'] as $k=> $v){ - $member[$v['Member_Account']] = $v['Role']; - } - //Owner(群主),Admin(群管理员),Member(普通群成员),NotMember(非群成员)。 - $role = [ - 'Owner'=>'群主', - 'Admin'=>'群管理员', - 'Member'=>'普通群成员', - 'NotMember'=>'非群成员' - ]; - foreach ($list as $key => $value) { - if($user_id == $value['user_id']){ - $list[$key]['is_self'] = 1; - }else{ - $list[$key]['is_self'] = 0; + if($list){ + $member_array = array_column($list, 'user_id'); + $member_array_str = []; + foreach ($member_array as $k=> $v){ + $member_array_str[] = 'u' . $v; + } + $group_member_info = model('Tencent')->get_group_member_info($guild_ids,$member_array_str); + if($group_member_info['code'] == 0){ + return V($group_member_info['code'],$group_member_info['msg'], $group_member_info['data']); + } + $member = []; + foreach ($group_member_info['data'] as $k=> $v){ + $member[$v['Member_Account']] = $v['Role']; + } + //Owner(群主),Admin(群管理员),Member(普通群成员),NotMember(非群成员)。 + $role = [ + 'Owner'=>'群主', + 'Admin'=>'群管理员', + 'Member'=>'普通群成员', + 'NotMember'=>'非群成员' + ]; + foreach ($list as $key => $value) { + if($user_id == $value['user_id']){ + $list[$key]['is_self'] = 1; + }else{ + $list[$key]['is_self'] = 0; + } + $list[$key]['user_code'] = model('Decorate')->user_decorate_detail($value['user_id'], 6); + //角色: + $list[$key]['role'] = $member['u'.$value['user_id']]; + $list[$key]['role_str'] = $role[$list[$key]['role']]; + $list[$key]['createtime'] = date('Y-m-d H:i:s',$value['createtime']); + //当前用户是否在房间 + $in_room = db::name('vs_room_visitor')->alias('a') + ->join('vs_room b', 'a.room_id = b.id') + ->field('a.room_id') + ->where(['b.type_id' =>['<>',6]]) + ->where(['a.user_id' => $value['user_id'], 'a.is_delete' => 1]) + ->find(); + $list[$key]['in_room_id'] = $in_room['room_id'] ?? 0; } - $list[$key]['user_code'] = model('Decorate')->user_decorate_detail($value['user_id'], 6); - //角色: - $list[$key]['role'] = $member['u'.$value['user_id']]; - $list[$key]['role_str'] = $role[$list[$key]['role']]; - $list[$key]['createtime'] = date('Y-m-d H:i:s',$value['createtime']); - //当前用户是否在房间 - $in_room = db::name('vs_room_visitor')->alias('a') - ->join('vs_room b', 'a.room_id = b.id') - ->field('a.room_id') - ->where(['b.type_id' =>['<>',6]]) - ->where(['a.user_id' => $value['user_id'], 'a.is_delete' => 1]) - ->find(); - $list[$key]['in_room_id'] = $in_room['room_id'] ?? 0; } + $return_data =[ 'page' => $page, 'limit' => $page_limit, 'count' => $count, 'list' => $list, ]; + return ['code' => 1, 'msg' => '获取成功', 'data' => $return_data]; } @@ -983,7 +1007,7 @@ class Guild extends Model if($group_member_info['code']!=1){ return ['code' => 0, 'msg' => '群聊不存在',null]; } - $user_list = $this->get_guild_user_list($guild_id,0,1,10); + $user_list = $this->get_guild_user_list($guild_ids,0,1,10); $is_deacon = 2; if($guild_info['user_id'] ==$user_id){ $is_deacon = 1;