alias('follow') ->join('user','follow.follow_uid = user.id','LEFT') ->field('user.id,user.nickname,user.avatar,user.real_status,user.idcard_status,user.birthday,user.gender,follow.status') ->where('follow.uid',$this->auth->id)->where($where)->order('follow.id desc')->autopage()->select(); $list = list_domain_image($list,['avatar']); $list = list_birthday_age($list); if ($list) { $mt_user_wallet = Db::name('user_wallet'); //钱包 $mt_wealth_level = Db::name('wealth_level'); //财富等级 $mt_charm_level = Db::name('charm_level'); //魅力等级 foreach ($list as &$val) { //查询财富等级和魅力等级 $wallet_info = $mt_user_wallet->where(['user_id' => $val['id']])->find(); $wealth_level = $mt_wealth_level->where(['value' => ['elt', $wallet_info['pay_money']]])->order('id desc')->find(); if ($wealth_level) { $val['wealth_level'] = $wealth_level['name']; } else { $val['wealth_level'] = ''; } $charm_level = $mt_charm_level->where(['value' => ['elt', $wallet_info['get_money']]])->order('id desc')->find(); if ($charm_level) { $val['charm_level'] = $charm_level['name']; } else { $val['charm_level'] = ''; } } } $this->success('success',$list); } //我的粉丝列表 public function my_fans_list(){ $list = Db::name('user_follow') ->alias('follow') ->join('user','follow.uid = user.id','LEFT') ->field('user.id,user.nickname,user.avatar,user.real_status,user.idcard_status,user.birthday,user.gender,follow.status') ->where('follow.follow_uid',$this->auth->id)->order('follow.id desc')->autopage()->select(); $list = list_domain_image($list,['avatar']); $list = list_birthday_age($list); if ($list) { $mt_user_wallet = Db::name('user_wallet'); //钱包 $mt_wealth_level = Db::name('wealth_level'); //财富等级 $mt_charm_level = Db::name('charm_level'); //魅力等级 foreach ($list as &$val) { //查询财富等级和魅力等级 $wallet_info = $mt_user_wallet->where(['user_id' => $val['id']])->find(); $wealth_level = $mt_wealth_level->where(['value' => ['elt', $wallet_info['pay_money']]])->order('id desc')->find(); if ($wealth_level) { $val['wealth_level'] = $wealth_level['name']; } else { $val['wealth_level'] = ''; } $charm_level = $mt_charm_level->where(['value' => ['elt', $wallet_info['get_money']]])->order('id desc')->find(); if ($charm_level) { $val['charm_level'] = $charm_level['name']; } else { $val['charm_level'] = ''; } } } $this->success('success',$list); } //关注某人 public function follow_one(){ // 接口防并发 if (!$this->apiLimit(1, 1)) { $this->error(__('Operation frequently')); } $follow_uid = input('follow_uid',0); // $gift_id = input('gift_id');// 礼物ID // $number = input('number',1,'intval');//数量 if(!$follow_uid){ $this->error(__('Invalid parameters')); } $checkuser = Db::name('user')->find($follow_uid); if(empty($checkuser)){ $this->error('此用户不存在'); } if($follow_uid == $this->auth->id){ $this->error('不能关注自己'); } $map = [ 'uid' => $this->auth->id, 'follow_uid' => $follow_uid, ]; $check = Db::name('user_follow')->where($map)->find(); if($check){ $this->error('已经关注此人'); } //查询对方是否关注自己 $where = [ 'uid' => $follow_uid, 'follow_uid' => $this->auth->id ]; $count = Db::name('user_follow')->where($where)->count('id'); if ($count) { $map['status'] = 1; //状态:0=关注,1=互为关注 } $return_data['money'] = ''; //获得金额 $return_data['level_remark'] = ''; //亲密度等级提示语 //开启事务 Db::startTrans(); $id = Db::name('user_follow')->insertGetId($map); if(!$id){ Db::rollback(); $this->error('您的网络开小差啦~'); } if ($count) { //若对方已关注, 则将状态改为 互为关注 $rs = Db::name('user_follow')->where($where)->where(['status' => 0])->setField('status', 1); if (!$rs) { Db::rollback(); $this->error('您的网络开小差啦~'); } } //系统消息 $msg_id = \app\common\model\Message::addMessage($this->auth->id,'喜欢','您已喜欢用户' . $checkuser['nickname']); Db::commit(); $this->success('操作成功', $return_data); } //取关某人 public function un_follow_one(){ $follow_uid = input('follow_uid',0); if(!$follow_uid){ $this->error(__('Invalid parameters')); } $checkuser = Db::name('user')->find($follow_uid); if(empty($checkuser)){ $this->error('此用户不存在'); } $map = [ 'uid' => $this->auth->id, 'follow_uid' => $follow_uid, ]; $info = Db::name('user_follow')->where($map)->find(); if (!$info) { $this->error('您尚未关注此人~'); } //开启事务 Db::startTrans(); $rs = Db::name('user_follow')->where($map)->delete(); if (!$rs) { Db::rollback(); $this->error('您的网络开小差啦~'); } $where = [ 'uid' => $follow_uid, 'follow_uid' => $this->auth->id, ]; $count = Db::name('user_follow')->where($where)->count('id'); if ($count) { $rt = Db::name('user_follow')->where($where)->where(['status' => 1])->setField('status', 0); if (!$rt) { Db::rollback(); $this->error('您的网络开小差啦~'); } } Db::commit(); $this->success('操作成功'); } }