From d26e5a324d48b41e0b25abbda405168f5ef562da Mon Sep 17 00:00:00 2001 From: wong <106998207@qq.com> Date: Wed, 15 Oct 2025 14:08:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/WechatFriendController.php | 112 ++++++++---------- 1 file changed, 52 insertions(+), 60 deletions(-) diff --git a/Server/application/api/controller/WechatFriendController.php b/Server/application/api/controller/WechatFriendController.php index 1bb1d0bc..18fbe438 100644 --- a/Server/application/api/controller/WechatFriendController.php +++ b/Server/application/api/controller/WechatFriendController.php @@ -75,21 +75,16 @@ class WechatFriendController extends BaseController // 发送请求获取好友列表 $result = requestCurl($this->baseUrl . 'api/WechatFriend/friendlistData', $params, 'POST', $header, 'json'); $response = handleApiResponse($result); - + // 保存数据到数据库 if (is_array($response)) { $isUpdate = false; - $updated = $this->saveFriend($response); - if($updated && $isDel == 0){ - $isUpdate = true; - } - - /*foreach ($response as $item) { + foreach ($response as $item) { $updated = $this->saveFriend($item); if($updated && $isDel == 0){ $isUpdate = true; } - }*/ + } } if ($isInner) { @@ -112,61 +107,58 @@ class WechatFriendController extends BaseController * @param array $item 微信好友数据 * @return bool 是否创建或更新了记录 */ - private function saveFriend($data) + private function saveFriend($item) { - $sqlData = []; - foreach ($data as $item) { - $sqlData[] = [ - 'id' => $item['id'], - 'wechatAccountId' => $item['wechatAccountId'], - 'alias' => $item['alias'], - 'wechatId' => $item['wechatId'], - 'conRemark' => $item['conRemark'], - 'nickname' => $item['nickname'], - 'pyInitial' => $item['pyInitial'], - 'quanPin' => $item['quanPin'], - 'avatar' => $item['avatar'], - 'gender' => $item['gender'], - 'region' => $item['region'], - 'addFrom' => $item['addFrom'], - 'labels' => is_array($item['labels']) ? json_encode($item['labels']) : json_encode([]), - 'siteLabels' => json_encode([]), - 'signature' => $item['signature'], - 'isDeleted' => $item['isDeleted'], - 'isPassed' => $item['isPassed'], - 'deleteTime' => !empty($item['isDeleted']) ? strtotime($item['deleteTime']) : 0, - 'accountId' => $item['accountId'], - 'extendFields' => is_array($item['extendFields']) ? json_encode($item['extendFields']) : json_encode([]), - 'accountUserName' => $item['accountUserName'], - 'accountRealName' => $item['accountRealName'], - 'accountNickname' => $item['accountNickname'], - 'ownerAlias' => $item['ownerAlias'], - 'ownerWechatId' => $item['ownerWechatId'], - 'ownerNickname' => $item['ownerNickname'], - 'ownerAvatar' => $item['ownerAvatar'], - 'phone' => $item['phone'], - 'thirdParty' => is_array($item['thirdParty']) ? json_encode($item['thirdParty']) : json_encode([]), - 'groupId' => $item['groupId'], - 'passTime' => !empty($item['isPassed']) && $item['passTime'] != '0001-01-01T00:00:00' ? strtotime($item['passTime']) : 0, - 'additionalPicture' => $item['additionalPicture'], - 'desc' => $item['desc'], - 'country' => $item['country'], - 'privince' => isset($item['privince']) ? $item['privince'] : '', - 'city' => isset($item['city']) ? $item['city'] : '', - 'createTime' => isset($item['createTime']) ? strtotime($item['createTime']) : 0, - 'updateTime' => time() - ]; - } + $data = [ + 'id' => $item['id'], + 'wechatAccountId' => $item['wechatAccountId'], + 'alias' => $item['alias'], + 'wechatId' => $item['wechatId'], + 'conRemark' => $item['conRemark'], + 'nickname' => $item['nickname'], + 'pyInitial' => $item['pyInitial'], + 'quanPin' => $item['quanPin'], + 'avatar' => $item['avatar'], + 'gender' => $item['gender'], + 'region' => $item['region'], + 'addFrom' => $item['addFrom'], + 'labels' => is_array($item['labels']) ? json_encode($item['labels']) : json_encode([]), + 'siteLabels' => json_encode([]), + 'signature' => $item['signature'], + 'isDeleted' => $item['isDeleted'], + 'isPassed' => $item['isPassed'], + 'deleteTime' => !empty($item['isDeleted']) ? strtotime($item['deleteTime']) : 0, + 'accountId' => $item['accountId'], + 'extendFields' => is_array($item['extendFields']) ? json_encode($item['extendFields']) : json_encode([]), + 'accountUserName' => $item['accountUserName'], + 'accountRealName' => $item['accountRealName'], + 'accountNickname' => $item['accountNickname'], + 'ownerAlias' => $item['ownerAlias'], + 'ownerWechatId' => $item['ownerWechatId'], + 'ownerNickname' => $item['ownerNickname'], + 'ownerAvatar' => $item['ownerAvatar'], + 'phone' => $item['phone'], + 'thirdParty' => is_array($item['thirdParty']) ? json_encode($item['thirdParty']) : json_encode([]), + 'groupId' => $item['groupId'], + 'passTime' => !empty($item['isPassed']) && $item['passTime'] != '0001-01-01T00:00:00' ? strtotime($item['passTime']) : 0, + 'additionalPicture' => $item['additionalPicture'], + 'desc' => $item['desc'], + 'country' => $item['country'], + 'privince' => isset($item['privince']) ? $item['privince'] : '', + 'city' => isset($item['city']) ? $item['city'] : '', + 'createTime' => isset($item['createTime']) ? strtotime($item['createTime']) : 0, + 'updateTime' => time() + ]; + + // 使用ID作为唯一性判断 + $friend = WechatFriendModel::where('id', $item['id'])->find(); - $friend = new WechatFriendModel(); - $friend->saveAll($sqlData); if ($friend) { - if ($friend->isUpdate()){ - return true; - }else{ - return false; - } - }else{ + unset($data['siteLabels']); + $friend->save($data); + return true; + } else { + WechatFriendModel::create($data); return false; } }