Kaynağa Gözat

同城,附近 在线状态的规则

lizhen_gitee 2 yıl önce
ebeveyn
işleme
cf22cc8de1
1 değiştirilmiş dosya ile 21 ekleme ve 6 silme
  1. 21 6
      application/api/controller/Usercenter.php

+ 21 - 6
application/api/controller/Usercenter.php

@@ -186,6 +186,7 @@ class Usercenter extends Api
 
     }
 
+    //这里不用连user_active表,完全使用user表的active_time,user_active表只做离线用
     //同城
     public function samecity(){
         $gender = input_post('gender','all');
@@ -203,7 +204,7 @@ class Usercenter extends Api
            // 'user.longitude' => ['neq',''],
            // 'user.latitude' => ['neq',''],
            // 'user.is_online|user.is_livebc' => 1, //完全不考虑直播与语聊的权重,只用活跃做排序
-           // 'user.is_active' => 1,//完全不考虑直播与语聊的权重,只用活跃做排序
+            'user.active_time' => ['gt',time()-86400],
         ];
         if($gender != 'all'){
             $map['user.gender'] = $gender;
@@ -215,7 +216,7 @@ class Usercenter extends Api
         $field = [
             'user.id','user.username','user.nickname','user.birthday','user.height','user.longitude','user.latitude','user.avatar','user.audio_bio','user.bio','user.gender'
         ];
-        $list = Db::name('user')->alias('user')->field($field)->where($map)->order('is_active desc,active_time desc')->autopage()->select();
+        $list = Db::name('user')->alias('user')->field($field)->where($map)->order('user.active_time desc')->autopage()->select();
         //dump($list);
 
         $list = list_domain_image($list,['avatar']);
@@ -224,8 +225,15 @@ class Usercenter extends Api
             $one['age'] = birthtime_to_age($one['birthday']);
            // $one['distance'] = $this->calc_map_distance([$this->auth->longitude,$this->auth->latitude],[$one['longitude'],$one['latitude']]);
             $one['distance'] = rand(0,10).'km';
+
             //状态
-            $one['active_text'] = '在线';
+            $one['active_text'] = '刚刚离线';
+            if($one['active_time'] > time()-21600){
+                $one['active_text'] = '1小时内在线';
+            }
+            if($one['active_time'] > time()-3600){
+                $one['active_text'] = '在线';
+            }
 
             $list[$key] = $one;
         }
@@ -252,7 +260,7 @@ class Usercenter extends Api
            // 'user.longitude' => ['between',[$this->auth->longitude - 0.1,$this->auth->longitude + 0.1]],
            // 'user.latitude' => ['between',[$this->auth->latitude - 0.1,$this->auth->latitude + 0.1]],
             // 'user.is_online|user.is_livebc' => 1, //完全不考虑直播与语聊的权重,只用活跃做排序
-            //'user.is_active' => 1,//完全不考虑直播与语聊的权重,只用活跃做排序
+            'user.active_time' => ['gt',time()-86400],
         ];
         if($gender != 'all'){
             $map['user.gender'] = $gender;
@@ -265,7 +273,7 @@ class Usercenter extends Api
             'user.id','user.username','user.nickname','user.birthday','user.height','user.longitude','user.latitude','user.avatar','user.audio_bio','user.bio','user.gender'
         ];
 
-        $list = Db::name('user')->alias('user')->field($field)->where($map)->order('is_active desc,active_time desc')->autopage()->select();
+        $list = Db::name('user')->alias('user')->field($field)->where($map)->order('user.active_time desc')->autopage()->select();
         //dump($list);exit;
 
         $list = list_domain_image($list,['avatar']);
@@ -274,8 +282,15 @@ class Usercenter extends Api
             $one['age'] = birthtime_to_age($one['birthday']);
             //$one['distance'] = $this->calc_map_distance([$this->auth->longitude,$this->auth->latitude],[$one['longitude'],$one['latitude']]);
             $one['distance'] = rand(0,10).'km';
+
             //状态
-            $one['active_text'] = '在线';
+            $one['active_text'] = '刚刚离线';
+            if($one['active_time'] > time()-21600){
+                $one['active_text'] = '1小时内在线';
+            }
+            if($one['active_time'] > time()-3600){
+                $one['active_text'] = '在线';
+            }
             
             $list[$key] = $one;
         }