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('已经关注此人'); } /*//查询自己是否是会员, 不是会员需要赠送礼物 $vip_endtime = Db::name('user_wallet')->where('user_id',$this->auth->id)->value('vip_endtime'); $time = time(); if ($vip_endtime < $time) { $user_id = $follow_uid;// 赠送对象 if (!$gift_id) { $this->error('请选择要赠送的礼物'); } if ($number < 1) { $this->error('请输入正确赠送礼物数量'); } // 获取礼物信息 $giftinfo = Db::name('gift')->where('id',$gift_id)->find(); if (!$giftinfo) { $this->error("请选择礼物"); } $giftvalue = bcmul($giftinfo['value'],$number); //被赠送人信息 $touserinfo = $checkuser; // 判断当前用户余额 $user_gold = model('wallet')->getWallet($this->auth->id,'gold'); if($user_gold < $giftvalue) { $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('您的网络开小差啦~'); } } //赠送礼物 // if ($vip_endtime < $time) { // // 添加礼物赠送记录表 // $data = [ // 'user_id' => $this->auth->id, // 'user_to_id' => $user_id, // 'gift_id' => $giftinfo['id'], // 'gift_name' => $giftinfo['name'], // 'number' => $number, // 'price' => $giftvalue, // 'createtime' => time(), // ]; // $log_id = Db::name('gift_user_typing')->insertGetId($data); // if(!$log_id){ // Db::rollback(); // $this->error('赠送失败'); // } // // if($giftvalue > 0){ // // 扣除当前用户余额 // $wallet_rs = model('wallet')->lockChangeAccountRemain($this->auth->id,$user_id,'gold',-$giftvalue,53,'赠送礼物:'.$giftinfo["name"] . '*' . $number,'gift_user_typing',$log_id); // if($wallet_rs['status'] === false){ // Db::rollback(); // $this->error($wallet_rs['msg']); // } // // // 添加赠送用户余额 // $money_to_gold = config('site.money_to_gold'); // $gift_plat_scale = config('site.gift_plat_scale'); // // $giftmoney = bcdiv($giftvalue,$money_to_gold,2); // // $money = bcdiv(bcmul($giftmoney,100 - $gift_plat_scale,2),100,2); // $wallet_rs = model('wallet')->lockChangeAccountRemain($user_id,$this->auth->id,'money',$money,54,'获得礼物:'.$giftinfo["name"] . '*' . $number,'gift_user_typing',$log_id,2); // if($wallet_rs['status'] === false){ // Db::rollback(); // $this->error($wallet_rs['msg']); // } // // /*//增加赠送用户上级金币 // if ($touserinfo['intro_uid']) { // //获取返利比率 // $intro_gift_rebate_rate = (int)config('site.intro_gift_rebate_rate'); //邀请人收礼物返利比率 // if ($intro_gift_rebate_rate > 0 && $intro_gift_rebate_rate <= 100) { // //上级获得金币数量 // $intro_uid_gold = floor($giftvalue * $intro_gift_rebate_rate / 100); // if ($intro_uid_gold > 0) { // $intro_result = model('Wallet')->lockChangeAccountRemain($touserinfo['intro_uid'],$user_id,'gold',$intro_uid_gold,66, '聊天礼物获赠奖励','gift_user_typing',$log_id); // if($intro_result['status']===false) // { // Db::rollback(); // $this->error($intro_result['msg']); // } // } // } // }*/ // // //增加赠送用户上级余额 // if ($touserinfo['intro_uid']) { // //获取返利比率 // $is_agent = Db::name('user')->where(['id' => $touserinfo['intro_uid']])->value('is_agent'); // $intro_income_rebate_rate = $is_agent ? (int)config('site.h_intro_income_rebate_rate') : (int)config('site.intro_income_rebate_rate'); //邀请人收礼物返利比率 // if ($intro_income_rebate_rate > 0 && $intro_income_rebate_rate <= 100) { // //上级获得金额 // $intro_uid_money = number_format($money * $intro_income_rebate_rate / 100, 2, '.', ''); // if ($intro_uid_money > 0) { // $intro_result = model('Wallet')->lockChangeAccountRemain($touserinfo['intro_uid'],$user_id,'money',$intro_uid_money,68, '邀请人聊天礼物获赠奖励','gift_user_typing',$log_id); // if($intro_result['status']===false) // { // Db::rollback(); // $this->error($intro_result['msg']); // } // } // } // } // // if ($this->auth->gender == 1 && $touserinfo['gender'] == 0) { // //增加亲密度 // $user_intimacy_rs = addintimacy($this->auth->id, $user_id, $giftvalue); // if (!$user_intimacy_rs['status']) { // Db::rollback(); // $this->error('您的网络开小差啦~'); // } // } // } // // //tag任务赠送金币 // //搭讪奖励 //// $task_rs = \app\common\model\TaskLog::tofinish($this->auth->id,15); //// if($task_rs === false){ //// Db::rollback(); //// $this->error('完成任务赠送奖励失败'); //// } // // //发送消息 // if (isset($user_intimacy_rs) && $user_intimacy_rs['level_remark']) { // $tenim = new \app\api\controller\Tenim; // $tenim->sendMessageToUser($this->auth->id, $user_id, $user_intimacy_rs['level_remark'], 1); // } // // $return_data['money'] = $money; //获得金额 // $return_data['level_remark'] = isset($user_intimacy_rs) ? $user_intimacy_rs['level_remark'] : ''; //亲密度等级提示语 // } //tag任务赠送金币 //关注3人加3金币 // $task_rs = \app\common\model\TaskLog::tofinish($this->auth->id,2); // if($task_rs === false){ // 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('操作成功'); } }