xiaogang 3 years ago
parent
commit
a1a9a3cec1

+ 0 - 3
app/Http/Controllers/Api/AuthorizationsController.php

xqd xqd xqd
@@ -35,7 +35,6 @@ class AuthorizationsController extends Controller
      * 极光认证一键登录
      */
     public function auth_login(Request $request){
-        file_put_contents("login_data.log",var_export($request->all(),true).PHP_EOL,FILE_APPEND);
         try {
             if(empty($request->loginToken)){
                 throw new Exception("参数错误");
@@ -59,7 +58,6 @@ class AuthorizationsController extends Controller
      */
     public function login_by_mobile(Request $request)
     {
-        file_put_contents("login_data.log",var_export($request->all(),true).PHP_EOL,FILE_APPEND);
         try {
             $validator = Validator::make($request->all(), [
                 'mobile' => ['required', 'regex:/^1[3456789]\d{9}$/'],
@@ -94,7 +92,6 @@ class AuthorizationsController extends Controller
      */
     public function login_by_account_password(Request $request)
     {
-        file_put_contents("login_data.log",var_export($request->all(),true).PHP_EOL,FILE_APPEND);
         try {
             $validator = Validator::make($request->all(), [
                 'mobile' => ['required', 'regex:/^1[3456789]\d{9}$/'],

+ 2 - 0
app/Http/Controllers/Api/HomeController.php

xqd
@@ -234,4 +234,6 @@ class HomeController extends Controller
     }
 
 
+
+
 }

+ 2 - 1
app/Http/Controllers/Api/UserController.php

xqd xqd
@@ -7,8 +7,10 @@ use App\Exceptions\SmsException;
 use App\Http\Params\ProblemParam;
 use App\Models\SystemConfig;
 use App\Models\User;
+use App\Models\UserBlacklistModel;
 use App\Models\UserInfoModel;
 use App\Models\UserInviteLog;
+use App\Models\UserLikeModel;
 use App\Models\UserLookModel;
 use App\Models\UserVipLimit;
 use App\Models\UserVipLogModel;
@@ -151,7 +153,6 @@ class UserController extends Controller
         $user = auth('api')->user();
         $userinfo = UserInfoModel::query()->where('user_id', $user->id)->first();
 
-        //dd($userinfo);
         $userinfo['hobby'] = !empty($userinfo['hobby'])?explode(',',$userinfo['hobby']):[];
         $userinfo['photo'] = !empty($userinfo['photo'])?json_decode($userinfo['photo'],true):[];
         $video_info = !empty($userinfo['video'])?json_decode($userinfo['video'],true):[];

+ 31 - 38
app/Services/HomeService.php

xqd xqd xqd xqd xqd xqd xqd xqd
@@ -34,71 +34,70 @@ class HomeService
             ->select(['users.id','users.is_vip','users.tencent_im_user_id','users.sex','users.is_auth','users.latitude','users.longitude','users.online','users_info.avatar','users_info.nickname','users_info.area','users_info.birthday','users_info.height','users_info.weight','users_info.video','users_info.photo'])
             ->addSelect(DB::raw("acos(cos(" .$param['latitude'] . "*pi()/180)*cos(cl_users.latitude*pi()/180)*cos(" . $param['longitude'] . "*pi()/180-cl_users.longitude*pi()/180)+sin(" . $param['latitude'] . "*pi()/180)*sin(cl_users.latitude * pi()/180)) * 6367000 AS distance"))
             ->where('users.is_distory','=','0');
-
-
-
         $user = auth('api')->user();
-       // dd($user);
         if($user){
+            //用户已经登录
             //不看拉黑用户
-            $black_list = UserBlacklistModel::query()->where('user_id',$user->id)->select(['black_id'])->get()->toArray();
-
+            $black_list = UserBlacklistModel::query()
+                ->where('user_id',$user->id)
+                ->orWhere('black_id',$user->id)
+                ->select(['black_id'])
+                ->get()
+                ->toArray();
             $ids = array_column($black_list,'black_id');
             $ids[]= $user->id;
             $query = $query->whereNotIn('users.id',$ids);
 
-            if($user->sex==1){ //只看女性
+            if($user->sex==1){
+                //只看女性
                 $query = $query->where('users.sex','=',2);
-            }else{ //只看男性
+            }else{
+                //只看男性
                 $query = $query->where('users.sex','=',1);
             }
         }else{
+            //逛一逛
             $sex = Redis::get(ApiEnum::SET_GYG_SEX.request()->header('uniqueID'));
-            if($sex==1){ //只看女性
+            if($sex==1){
+                //只看女性
                 $query = $query->where('users.sex','=',2);
-            }else{ //只看男性
+            }else{
+                //只看男性
                 $query = $query->where('users.sex','=',1);
             }
         }
-
-
-
+        //根据关键词搜索
         if($param['keyword']!=""){
             $query = $query->where('users_info.nickname','like','%'.$param['keyword'].'%')
                 ->orWhere('users_info.hobby','like','%'.$param['keyword'].'%');
         }
-
+        //在线
         if($param['online']==1){
             $query = $query->where(['users.online'=>$param['online']]);
         }
-
+        //新人优先
         if($param['new']==1){
             $query = $query->orderBy('users.created_at','desc');
         }
-
+        //距离优先
         if($param['nearby']==1){
             $query = $query->orderBy('distance','ASC');
         }
-
-
         $query = $query->paginate(request('perPage',20));
         $query = $query->toArray();
         foreach ($query['data'] as $k=>$v){
             $query['data'][$k]['age'] =!empty($v['birthday'])? birthday($v['birthday']):0;
             //计算距离
             $query['data'][$k]['distance'] =  $v['distance']>1000?round($v['distance']/1000,2).'km':round($v['distance']).'m';
-
+            //判断是否上传视频
             $video = json_decode($v['video'],true);
             $query['data'][$k]['has_video'] = count($video)>0?1:0;
-
             if(!empty($v['photo'])){
                 $photo = json_decode($v['photo'],true);
                 if(count($photo)>0){
                     $query['data'][$k]['avatar'] = $photo[0]['url'];
                 }
             }
-
-
         }
         return $query;
     }
@@ -106,10 +105,11 @@ class HomeService
     //用户详情
     public function user_detail($param){
         $user = auth('api')->user();
+        //根据用户ID查询用户
         if(!empty($param['user_id'])&& $param['user_id']>0){
             $touser = User::query()->where('id',$param['user_id'])->first();
         }
-
+        //根据腾讯IMID查询用户
         if(!empty($param['tencent_im_user_id'])){
             $touser = User::query()->where('tencent_im_user_id',$param['tencent_im_user_id'])->first();
         }
@@ -133,7 +133,6 @@ class HomeService
             }
         }
 
-
         $is_like = 0;
         $is_comment = 0;
 
@@ -147,20 +146,18 @@ class HomeService
 
         $photo = !empty($userinfo->photo)?json_decode($userinfo->photo,true):array();
 
-
         if($user){
-            //登录状态  增加 谁看了我记录
+            //登录状态
+            //增加 谁看了我记录
             look_log($user->id,$user_id);
+            //查询是否喜欢
             if(UserLikeModel::query()->where(['user_id'=>$user->id,'like_id'=>$user_id])->first()){
                 $is_like = 1;
             }
-
-            //查询评价
-
+            //查询是否评价
             if(UserComment::query()->where(['user_id'=>$user->id,'comment_id'=>$user_id])->first()){
                 $is_comment = 1;
             }
-
             //查询是否阅后即焚
             if(count($photo)>0){
                 foreach ($photo as $k=>$v){
@@ -172,14 +169,11 @@ class HomeService
                 $photo = array();
             }
             $distance =  GetDistance($user->latitude,$user->longitude,$userinfo->latitude,$userinfo->longitude);
-
-
             if(Redis::get(ApiEnum::GET_WEIXIN.$user_id.'_'.$user->id)){
                $get_weixin = 1;
             }else{
                 $get_weixin = 0;
             }
-
         }else{
             //查询是否阅后即焚
             if(count($photo)>0){
@@ -195,8 +189,6 @@ class HomeService
             $get_weixin = 0;
         }
 
-
-
         $video_info = !empty($userinfo->video)?json_decode($userinfo->video,true):array();
         if(count($video_info)>0){
             foreach ($video_info as $k=>$v){
@@ -209,11 +201,8 @@ class HomeService
         }
 
         $userinfo->photo = $photo;
-
         $userinfo->video = array_column($video_info,'url');
-
         $userinfo->is_like = $is_like;
-
         //查询评价
         $userinfo->is_comment = $is_comment;
         //评价星级
@@ -335,6 +324,10 @@ class HomeService
         if(!$touser){
             throw new Exception("用户不存在");
         }
+        if($touser->id==$user->id){
+            throw new Exception("不能拉黑自己");
+        }
+
         $tencentim = new TencentImFriendService();
 
         $res = $tencentim->friend_black_add($user->tencent_im_user_id,$touser->tencent_im_user_id);

+ 30 - 31
app/Services/NoticeService.php

xqd xqd xqd xqd
@@ -5,6 +5,7 @@ namespace App\Services;
 
 
 use App\Models\DynamicZanModel;
+use App\Models\UserBlacklistModel;
 use App\Models\UserLikeModel;
 use App\Models\UserSystemMessageModel;
 use Illuminate\Support\Facades\DB;
@@ -25,37 +26,40 @@ class NoticeService
      */
     public function get_like_list($param){
         $query = UserLikeModel::query();
-        if($param['type']==1){
-            //我喜欢
-//            $query = UserLikeModel::query();
-//            $query = $query->with(['like_user'=>function($query){
-//                $query->select('id','sex','is_vip','tencent_im_user_id');
-//            },'like_user_info'])->where('user_id',$param['user_id']);
 
+        //不看拉黑用户
+        $black_list = UserBlacklistModel::query()
+            ->where('user_id',$param['user_id'])
+            ->orWhere('black_id',$param['user_id'])
+            ->select(['black_id'])
+            ->get()
+            ->toArray();
+        $ids = array_column($black_list,'black_id');
+        $ids[]= $param['user_id'];
 
+
+        if($param['type']==1){
+            //我喜欢
             $query = $query->leftJoin('users','users_like.like_id','=','users.id')
                 ->leftJoin('users_info','users_like.like_id','=','users_info.user_id')
                 ->where('users_like.user_id',$param['user_id'])
                 ->where('users.is_distory',0)
+                ->whereNotIn('users_like.like_id',$ids)
                 ->select(['users_like.id','users_like.user_id','users_like.like_id','users_like.atime','users.sex','users.is_vip','users.tencent_im_user_id','users_info.nickname','users_info.avatar','users_info.birthday','users_info.work','users_info.height','users_info.weight']);
 
         }else{
             //喜欢我
-//            $query = $query->with(['user'=>function($query){
-//                $query->select('id','sex','is_vip','tencent_im_user_id');
-//            },'user_info'])->where('like_id',$param['user_id']);
             $query = $query->leftJoin('users','users_like.user_id','=','users.id')
                 ->leftJoin('users_info','users_like.user_id','=','users_info.user_id')
                 ->where('users_like.like_id',$param['user_id'])
                 ->where('users.is_distory',0)
+                ->whereNotIn('users_like.user_id',$ids)
                 ->select(['users_like.id','users_like.user_id','users_like.like_id','users_like.atime','users.sex','users.is_vip','users.tencent_im_user_id','users_info.nickname','users_info.avatar','users_info.birthday','users_info.work','users_info.height','users_info.weight']);
-
-
             //清除喜欢我未读状态
             UserLikeModel::query()->where(['like_id'=>$param['user_id'],'status'=>0])->update(['status'=>1]);
         }
 
-            $query = $query->orderByDesc('id')
+        $query = $query->orderByDesc('id')
                 ->paginate(request('perPage',20));
         $query = $query->toArray();
         foreach ($query['data'] as $k=>$v){
@@ -70,24 +74,28 @@ class NoticeService
      * 获取点赞列表
      */
     public function get_zan_list($param){
+
+        //不看拉黑用户
+        $black_list = UserBlacklistModel::query()
+            ->where('user_id',$param['user_id'])
+            ->orWhere('black_id',$param['user_id'])
+            ->select(['black_id'])
+            ->get()
+            ->toArray();
+        $ids = array_column($black_list,'black_id');
+        $ids[]= $param['user_id'];
+
+
         $query = DynamicZanModel::query();
         if($param['type']==1){
             //他赞了我
-//            $query = $query->with(['dynamic','user'=>function($query){
-//                $query->select('id','sex','is_vip','tencent_im_user_id');
-//            },'user_info'=>function($query){
-//                $query->select(['user_id','nickname','avatar','height','weight','work','birthday']);
-//            }])->whereHas('dynamic',function ($query)use($param){
-//                $query->where('user_id',$param['user_id'])->select();
-//            });
-
-
             $query = $query
                 ->leftJoin('dynamic','dynamic_zan.dynamic_id','=','dynamic.id')
                 ->leftJoin('users','dynamic_zan.user_id','=','users.id')
                 ->leftJoin('users_info','dynamic_zan.user_id','=','users_info.user_id')
                 ->where('dynamic.user_id',$param['user_id'])
                 ->where('users.is_distory',0)
+                ->whereNotIn('dynamic_zan.user_id',$ids)
                 ->select(['dynamic_zan.id','dynamic_zan.atime','dynamic_zan.user_id','dynamic.content','dynamic.img_url','users.sex','users.is_vip','users.tencent_im_user_id','users_info.nickname','users_info.avatar','users_info.birthday','users_info.work','users_info.height','users_info.weight']);
 
             //清除他赞了我未读状态
@@ -95,23 +103,14 @@ class NoticeService
                 $query->where('user_id',$param['user_id'])->select('id','user_id','content','img_url');
             })->update(['status'=>1]);
         }else{
-
             //我赞了他
-//            $query = $query->with(['dynamic'=>function($query){
-//                $query->select('id','user_id','content','img_url');
-//            },'dynamic.user'=>function($querty){
-//                $querty->select('id','sex','is_vip','tencent_im_user_id');
-//            },'dynamic.user_info'=>function($querty){
-//                $querty->select(['user_id','nickname','avatar','height','weight','work','birthday']);
-//            }])
-//                ->where('user_id',$param['user_id']);
-
             $query = $query
                 ->leftJoin('dynamic','dynamic_zan.dynamic_id','=','dynamic.id')
                 ->leftJoin('users','dynamic.user_id','=','users.id')
                 ->leftJoin('users_info','dynamic.user_id','=','users_info.user_id')
                 ->where('dynamic_zan.user_id',$param['user_id'])
                 ->where('users.is_distory',0)
+                ->whereNotIn('dynamic.user_id',$ids)
                 ->select(['dynamic_zan.id','dynamic_zan.atime','dynamic.user_id','dynamic.content','dynamic.img_url','users.sex','users.is_vip','users.tencent_im_user_id','users_info.nickname','users_info.avatar','users_info.birthday','users_info.work','users_info.height','users_info.weight']);
         }
         $query = $query->orderByDesc('id')