群组信息

This commit is contained in:
2025-12-03 19:51:04 +08:00
parent 2a74cc71c8
commit e200b46379

View File

@@ -898,66 +898,90 @@ class Guild extends Model
/* /*
* 获取公会成员列表 * 获取公会成员列表
*/ */
public function get_guild_user_list($guild_id,$user_id,$page=1,$page_limit=30){ public function get_guild_user_list($guild_ids,$user_id,$page=1,$page_limit=30){
$count = Db::name('vs_guild_user') //获取$guild_id的第一个字母
->alias('a') $guild_id_first_letter = substr($guild_ids, 0, 1);
->join('user b','a.user_id = b.id') $guild_id = substr($guild_ids, 1);
->where(['a.guild_id'=>$guild_id,'a.status'=>1,'a.delete_time'=>0]) if($guild_id_first_letter == 'g'){
->count(); $count = Db::name('vs_guild_user')
$list = Db::name('vs_guild_user') ->alias('a')
->alias('a') ->join('user b','a.user_id = b.id')
->join('user b', 'a.user_id = b.id') ->where(['a.guild_id'=>$guild_id,'a.status'=>1,'a.delete_time'=>0])
->field('a.id, a.user_id, a.guild_id, b.nickname, b.avatar, b.user_code, a.createtime') ->count();
->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0]) $list = Db::name('vs_guild_user')
->order('a.id asc') ->alias('a')
->page($page, $page_limit) ->join('user b', 'a.user_id = b.id')
->select(); ->field('a.id, a.user_id, a.guild_id, b.nickname, b.avatar, b.user_code, a.createtime')
$member_array = array_column($list, 'user_id'); ->where(['a.guild_id' => $guild_id, 'a.status' => 1,'a.delete_time' => 0])
$member_array_str = []; ->order('a.id asc')
foreach ($member_array as $k=> $v){ ->page($page, $page_limit)
$member_array_str[] = 'u' . $v; ->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($list){
if($group_member_info['code'] == 0){ $member_array = array_column($list, 'user_id');
return V($group_member_info['code'],$group_member_info['msg'], $group_member_info['data']); $member_array_str = [];
} foreach ($member_array as $k=> $v){
$member = []; $member_array_str[] = 'u' . $v;
foreach ($group_member_info['data'] as $k=> $v){ }
$member[$v['Member_Account']] = $v['Role']; $group_member_info = model('Tencent')->get_group_member_info($guild_ids,$member_array_str);
} if($group_member_info['code'] == 0){
//Owner(群主)Admin(群管理员)Member普通群成员NotMember(非群成员)。 return V($group_member_info['code'],$group_member_info['msg'], $group_member_info['data']);
$role = [ }
'Owner'=>'群主', $member = [];
'Admin'=>'群管理员', foreach ($group_member_info['data'] as $k=> $v){
'Member'=>'普通群成员', $member[$v['Member_Account']] = $v['Role'];
'NotMember'=>'非群成员' }
]; //Owner(群主)Admin(群管理员)Member普通群成员NotMember(非群成员)。
foreach ($list as $key => $value) { $role = [
if($user_id == $value['user_id']){ 'Owner'=>'群主',
$list[$key]['is_self'] = 1; 'Admin'=>'群管理员',
}else{ 'Member'=>'普通群成员',
$list[$key]['is_self'] = 0; '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 =[ $return_data =[
'page' => $page, 'page' => $page,
'limit' => $page_limit, 'limit' => $page_limit,
'count' => $count, 'count' => $count,
'list' => $list, 'list' => $list,
]; ];
return ['code' => 1, 'msg' => '获取成功', 'data' => $return_data]; return ['code' => 1, 'msg' => '获取成功', 'data' => $return_data];
} }
@@ -983,7 +1007,7 @@ class Guild extends Model
if($group_member_info['code']!=1){ if($group_member_info['code']!=1){
return ['code' => 0, 'msg' => '群聊不存在',null]; 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; $is_deacon = 2;
if($guild_info['user_id'] ==$user_id){ if($guild_info['user_id'] ==$user_id){
$is_deacon = 1; $is_deacon = 1;