This commit is contained in:
2025-11-20 15:07:27 +08:00
parent 4a67312897
commit 86fa4b8fa2
2 changed files with 100 additions and 0 deletions

View File

@@ -285,4 +285,14 @@ class User extends BaseCom
$reslut = model('UserWallet')->give_coin($this->uid, $give_uid, $coin);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
//挚友列表
public function get_friend_list()
{
$user_id = input('user_id', 0);//用户id
$page = input('page', 1);
$page_limit = input('page_limit', 30);
$reslut = model('User')->get_friend_list($user_id, $page, $page_limit);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
}

View File

@@ -961,4 +961,94 @@ class User extends Model
return ['code' => 1, 'msg' => '可以发起私聊', 'data' => null];
}
/*
* 挚友列表
* @param int $user_id 用户ID
*/
public function get_friend_list($user_id,$page,$limit){
//获取用户当前所拥有的关系
$relation = db::name('vs_relation')->where(['id' => ['>',0],'delete_time' => 0])->page($page,$limit)->select();
$return_data = [];
if(!$relation){
foreach ($relation as $v){
$return_data['no_cp']['relation_name'] = $v['name'];
// $return_data['no_cp']['relation_image'] = $v['icon'];
$return_data['no_cp']['relation_list'] = $this->relation_card($v['id'],$user_id);
}
}
//CP 信息
$res = Db::name('user_cp_zone')->where(['user_id1' => $user_id,'status' => 1])->select();
if(!$res){
$res = Db::name('user_cp_zone')->where(['user_id2' => $user_id,'status' => 1])->select();
}
if($res){
$res['user_info1'] = Db::name('user')->where(['id' => $res['user_id1']])->field('id user_id,nickname,avatar')->find();
$res['user_info2'] = Db::name('user')->where(['id' => $res['user_id2']])->field('id user_id,nickname,avatar')->find();
}
if($res){
$return_data['cp']['relation_name'] = 'CP';
// $return_data['cp']['relation_image'] = '';
$return_data['cp']['relation_list'][] = $res;
}
return ['code' => 1, 'msg' => '获取成功', 'data' => $return_data];
}
//关系卡,关系位
public function relation_card($relation_id,$user_id)
{
$room_auction1 = db::name('vs_room_auction_relation')->alias('a')
->join('user b','a.user_id1 = b.id','left')
->join('user c','a.user_id2 = c.id','left')
->join('vs_relation d','a.relation_id = d.id','left')//关系
->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image')
->where(['a.user_id1' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0,'a.relation_id' => $relation_id])
->order('a.updatetime desc')
->select();
$room_auction2 = db::name('vs_room_auction_relation')->alias('a')
->join('user b','a.user_id1 = b.id','left')
->join('user c','a.user_id2 = c.id','left')
->join('vs_relation d','a.relation_id = d.id','left')//关系
->field('a.relation_id,a.cp_room_id,a.id,a.user_id1,a.user_id2,a.updatetime,a.time_day,a.end_time,b.nickname as nickname1,b.avatar as avatar1,c.nickname as nickname2,c.avatar as avatar2,d.name as relation_name,d.icon as image')
->where(['a.user_id2' => $user_id,'a.end_time' =>['>',time()],'a.delete_time' => 0,'a.relation_id' => $relation_id])
->order('a.updatetime desc')
->select();
$room_auction = array_merge((array)$room_auction1, (array)$room_auction2);
foreach ($room_auction as &$v){
$v['delete_me_coin'] = get_system_config_value('delete_relation_card_money');
if($v['cp_room_id'] > 1){
//查找房间ID
$v['heart_value'] = db::name('vs_room')->where('id',$v['cp_room_id'])->value('hot_value');
}else{
$v['heart_value'] = 0;
}
if(db::name('vs_room_auction_relation_top')->where(['user_id' => $user_id, 'au_re_id' => $v['id']])->find()){
$v['is_top'] = 1;//置顶
}else{
$v['is_top'] = 0;
}
}
//数据重组 根据是否置顶排序 然后根据 time_day 倒序
if ($room_auction) {
// 对于未置顶的项目,再根据 time_day 倒序排序
$top_qinmi = array_filter($room_auction, function($item) { return $item['is_top'] == 1; });
$untop_qinmi = array_filter($room_auction, function($item) { return $item['is_top'] != 1; });
usort($untop_qinmi, function($a, $b) {
return $b['time_day'] <=> $a['time_day'];
});
$room_auction = array_merge($top_qinmi, $untop_qinmi);
$room_auction = array_values($room_auction);
}
//取前三个值
$room_auction = array_slice($room_auction, 0, 3);
return $room_auction ;
// return ['code' => 1, 'msg' => '操作成功', 'data' => $room_auction];
}
}