群组信息

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){
$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;