validator; } public function whatsApp(Request $request){ // $userAgent = $_SERVER['HTTP_USER_AGENT']; // $acceptLanguage = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $userAgent = $request->header('User-Agent',''); $acceptLanguage = $request->header('Accept-Language',''); $referer = $request->header('referer'); $ip = $request->getRealIp(); $md5Hash = md5($userAgent . '-' . $acceptLanguage . '-' . $ip); $visitor = WordpressVisitor::where('md5_unique', $md5Hash)->first(); if (!empty($visitor)) { $visitor->updated_at = time(); $visitor->save(); $user = User::where('id',$visitor['user_id'])->first(); return $this->url($user['whatsapp'], $referer); } $lastId = Redis::get('wp_whatsApp_user'); if($lastId){ $last = WordpressVisitor::orderBy('id','desc')->first(); $lastId = $last['id']??0; } $userIds = User::where('role',1) ->where('whatsapp','!=','') ->orderBy('id','asc') ->get() ->toArray(); if(empty($userIds)){ throw new BusinessException('没有符合条件的whatsApp~'); } $userIds = array_column($userIds, 'id'); $userIds = array_values($userIds); $id = 0; foreach ($userIds as $userId) { if($userId < $lastId){ $id = $userId; } } if(empty($id)){ $id = array_shift($userIds); } Redis::set('wp_whatsApp_user',$id); $data = [ 'user_agent' => $userAgent, 'accept_language' => $acceptLanguage, 'ip' => $ip, 'md5_unique' => $md5Hash, 'user_id' => $id, ]; WordpressVisitor::create($data); $user = User::where('id',$id)->first(); //return $user['phone']; return $this->url($user['whatsapp'], $referer); } public function url($phone,$referer){ $url = "https://wa.me/" . $phone; if(!empty($referer)){ $url = $url . "?text=来自%20" . $referer; } return $url; } }