diff --git a/application/api/controller/User.php b/application/api/controller/User.php index a0626f3..ef61172 100644 --- a/application/api/controller/User.php +++ b/application/api/controller/User.php @@ -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']); + } } diff --git a/application/api/model/User.php b/application/api/model/User.php index 7a77b76..fcf1a33 100644 --- a/application/api/model/User.php +++ b/application/api/model/User.php @@ -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]; + } + } \ No newline at end of file