public static function getFriendsByUser($userId) { $_friends = \App\Friends::where("user_id", "=", $userId)->get(); // dump($friendsIds); $friends = collect(); foreach ($_friends as $friend) { $userdata = \App\User::getAllUserDataById($friend->friend_user_id); $userdata->friendStatus = \App\Friends::getFriendStatus($friend->status); $friends->push($userdata); } //dump($friends); return $friends; }
public function getFriends($wxuin) { //循环执行心跳 $user = Login::where('wxuin', $wxuin)->where('status', 1)->first(); if (!$user) { \Log::info("wxuin:{$wxuin} 冻结状态,结束此次循环"); return; } $cookies = json_decode($user->cookies); $url = "https://webpush.weixin.qq.com/cgi-bin/mmwebwx-bin/webwxgetcontact?r=" . t(); $ret = CURL::send($url, ['Cookie' => urldecode(http_build_query($cookies, '', '; '))], ['follow_redirects' => false], ['ret' => 'all']); $html = $ret->body; $html = iconv('UTF-8', 'UTF-8//IGNORE', $html); $cookies2 = toCookies($ret->cookies); $cookies = (object) ((array) $cookies2 + (array) $cookies); //更新Cookie Login::where('wxuin', $wxuin)->update(['cookies' => json_encode($cookies)]); $data_arr = json_decode($html, true); foreach ($data_arr['MemberList'] as $k => $v) { //获取好友信息 $data = array('my_uin' => $wxuin, 'Uin' => $v['Uin'], 'Alias' => $v['Alias'], 'UserName' => $v['UserName'], 'NickName' => $v['NickName'], 'RemarkName' => $v['RemarkName'], 'HeadImgUrl' => $v['HeadImgUrl'], 'Sex' => $v['Sex'], 'Signature' => $v['Signature'], 'Province' => $v['Province'], 'City' => $v['City']); $ff = Friends::where('UserName', $v['UserName'])->first(); //如果存在了就更新 if ($ff) { Friends::where('UserName', $v['UserName'])->update($data); } else { $data_batch[] = $data; } } if (isset($data_batch)) { Friends::insert($data_batch); } return $data_arr; }
public function getChatroomFriends($wxuin) { set_time_limit(0); //循环执行心跳 $user = Login::where('wxuin', $wxuin)->where('status', 1)->first(); if (!$user) { $this->death(); } $cookies = json_decode($user->cookies); $post['BaseRequest']['DeviceID'] = $user->deviceid; $post['BaseRequest']['Sid'] = $cookies->wxsid; $post['BaseRequest']['Skey'] = $user->skey; $post['BaseRequest']['Uin'] = (int) $cookies->wxuin; //获取群列表 $Chatroom = Friends::where('UserName', 'like', '@@%')->where('my_uin', $wxuin)->get(); if (!count($Chatroom)) { $this->death("获取不到群信息"); } //循环获取所有群友信息 foreach (json_decode($Chatroom) as $k => $v) { $Chatroom_friends = Chatroom::where('EncryChatRoomId', $v->EncryChatRoomId)->get(); $i = 0; //分批次获取群友信息 foreach ($Chatroom_friends as $_k => $_v) { $post['List'][$i]['EncryChatRoomId'] = $v->UserName; //群id $post['List'][$i]['UserName'] = $_v->UserName; if (++$i == 50) { $post['Count'] = $i; $i = 0; $this->putChatroomFriends($wxuin, $post); unset($post['List']); } } if ($i != 0) { $post['Count'] = $i; $this->putChatroomFriends($wxuin, $post); unset($post['List']); } } }