auth->cityname); $where = [ 'user.id' => ['neq',$this->auth->id], 'user.status' => 1, 'user.photo_images' => ['neq',''], 'user.cityname' => $cityname, 'power.yinshen' => 0, ]; //性别 $gender = input('gender','all'); if($gender != 'all'){ $where['user.gender'] = $gender; } //属性 $attribute = input('attribute','all'); if($attribute != 'all' && $attribute != 'BOTH'){ $where['user.attribute'] = $attribute; } //排除黑名单的 $black_ids = Db::name('user_black')->where(['uid'=>$this->auth->id])->column('black_uid'); if(!empty($black_ids)){ $where['user.id'] = ['NOTIN',$black_ids]; } //年龄 $agemin = input('agemin',18); if($agemin > 18){ $where['user.birthday'] = ['lt',time()-$agemin*31536000]; } $agemax = input('agemax',100); if($agemax < 100){ $where['user.birthday'] = ['gt',time()-$agemax*31536000]; } if($agemin > 18 && $agemax < 100){ $where['user.birthday'] = ['between',[time()-$agemax*31536000,time()-$agemin*31536000]]; } //距离 $distancemin = input('distancemin',0); if($distancemin > 0){ $where['distance'] = ['gt',$distancemin]; } $distancemax = input('distancemax',0); if($distancemax > 0){ $where['distance'] = ['lt',$distancemax]; } if($distancemin > 0 && $distancemax > 0){ $where['distance'] = ['between',[$distancemin,$distancemax]]; } $field = [ 'user.id', 'user.username', 'user.nickname', 'user.avatar', 'user.photo_images', 'user.gender', 'user.birthday', 'user.cityname', 'user.attribute', 'user.is_active', 'user.longitude', 'user.latitude', 'user.cityname', 'user.attribute', 'wallet.vip_endtime', '(st_distance(point (' . $this->auth->longitude . ', ' . $this->auth->latitude . '),point(user.longitude,user.latitude))*111195) as distance', ]; $list = Db::name('user')->alias('user')->field($field) ->join('user_wallet wallet','user.id = wallet.user_id','LEFT') ->join('user_power power' ,'user.id = power.user_id','LEFT') ->where($where) ->order('distance asc') ->autopage() ->select(); $list = list_domain_image($list,['avatar','photo_images']); foreach($list as $key => &$val){ $val['age'] = birthtime_to_age($val['birthday']); $val['photo_images'] = explode(',',$val['photo_images'])[0]; $val['is_vip'] = $val['vip_endtime'] > time() ? 1 : 0; $val['distance'] = bcdiv(intval($val['distance']),1000,2).'km'; } $this->success(1,$list); } public function tuijian(){} }