Procházet zdrojové kódy

某用户与我的距离

lizhen_gitee před 1 rokem
rodič
revize
88c3740bb3
1 změnil soubory, kde provedl 22 přidání a 2 odebrání
  1. 22 2
      application/api/controller/Usercenter.php

+ 22 - 2
application/api/controller/Usercenter.php

@@ -71,7 +71,10 @@ class Usercenter extends Api
     //获取他人用户信息
     public function getuserinfo_simple(){
         $uid = input_post('uid',0);
-        $userinfo = Db::name('user')->field($this->allowFields)->where('id',$uid)->find();
+
+        $field = $this->allowFields;
+        $field[] = '(st_distance(point (' . $this->auth->longitude . ', ' . $this->auth->latitude . '),point(longitude,latitude))*111195) as distance';
+        $userinfo = Db::name('user')->field($field)->where('id',$uid)->find();
 
         if(!$userinfo){
             $this->error('不存在的用户');
@@ -141,13 +144,23 @@ class Usercenter extends Api
         //用户权限
         //$userinfo['power'] = Db::name('user_power')->where('user_id',$uid)->find();
 
+        $userinfo['distance'] = bcdiv(intval($userinfo['distance']),1000,1).'km';
+        //vip如果开了隐私保护,需要隐藏距离
+        $yinsi = $this->user_power($userinfo['id'],'yinsi');
+        if($yinsi == 1){
+            $userinfo['distance'] = '';
+        }
+
         $this->success('success',$userinfo);
     }
 
     //获取他人用户信息,留下足迹
     public function getuserinfo(){
         $uid = input_post('uid',0);
-        $userinfo = Db::name('user')->field($this->allowFields)->where('id',$uid)->find();
+
+        $field = $this->allowFields;
+        $field[] = '(st_distance(point (' . $this->auth->longitude . ', ' . $this->auth->latitude . '),point(longitude,latitude))*111195) as distance';
+        $userinfo = Db::name('user')->field($field)->where('id',$uid)->find();
 
         if(!$userinfo){
             $this->error('不存在的用户');
@@ -236,6 +249,13 @@ class Usercenter extends Api
         //用户权限
         //$userinfo['power'] = Db::name('user_power')->where('user_id',$uid)->find();
 
+        $userinfo['distance'] = bcdiv(intval($userinfo['distance']),1000,1).'km';
+        //vip如果开了隐私保护,需要隐藏距离
+        $yinsi = $this->user_power($userinfo['id'],'yinsi');
+        if($yinsi == 1){
+            $userinfo['distance'] = '';
+        }
+
         $this->success('success',$userinfo);
 
     }