user(); $is_super_rank = $user->isSuperRank(); $is_temp_rank = $user->isTempMember(); //是否是好友 $other_user = $request->user?:null; $other_user = User::where('id',$other_user)->first(); $servicer_ids = UserInfo::where('is_service_client', 1)->pluck('user_id')->toArray(); if ($other_user) { //是否是客服 if (in_array($other_user->id, $servicer_ids)) return $next($request); if (in_array($user->id, $servicer_ids)) return $next($request); // 是否是好友 $result = $user->isIMFriend($other_user->id); $result = $user->isFriend($other_user); if (empty($result)) return $this->failure('该用户还不是你的好友。'); $client = $request->header('client-os'); if ($client == 'IOS') return $next($request); if (empty($is_temp_rank) && empty($is_super_rank)) {//如果不是会员 可以聊三句 $count = $user->chatMessageCountWithUser($other_user->id); $type = 'vip'; if ($count >= 3) return $this->failv2('非超级会员聊天限制', compact('type')); } } return $next($request); } }