好友数据同步优化

This commit is contained in:
wong
2025-10-15 10:47:48 +08:00
parent 8908da5baf
commit f11bc7f686
2 changed files with 76 additions and 84 deletions

View File

@@ -125,13 +125,6 @@ class WechatChatroomController extends BaseController
}else{
return false;
}
// // 同时保存群成员数据
// if (!empty($item['members'])) {
// foreach ($item['members'] as $member) {
// $this->saveChatroomMember($member, $item['chatroomId']);
// }
// }
}
/**
@@ -179,9 +172,7 @@ class WechatChatroomController extends BaseController
// 保存数据到数据库
if (!empty($response)) {
foreach ($response as $item) {
$this->saveChatroomMember($item, $chatroomId);
}
$this->saveChatroomMember($response, $chatroomId);
}
if($isInner){
@@ -203,31 +194,24 @@ class WechatChatroomController extends BaseController
* @param array $item 群成员数据
* @param string $wechatChatroomId 微信群ID
*/
private function saveChatroomMember($item, $wechatChatroomId)
private function saveChatroomMember($data, $wechatChatroomId)
{
$data = [
'chatroomId' => $wechatChatroomId,
'wechatId' => isset($item['wechatId']) ? $item['wechatId'] : '',
'nickname' => isset($item['nickname']) ? $item['nickname'] : '',
'avatar' => isset($item['avatar']) ? $item['avatar'] : '',
'conRemark' => isset($item['conRemark']) ? $item['conRemark'] : '',
'alias' => isset($item['alias']) ? $item['alias'] : '',
'friendType' => isset($item['friendType']) ? $item['friendType'] : false,
'updateTime' => time()
];
// 使用chatroomId和wechatId的组合作为唯一性判断
$member = WechatChatroomMemberModel::where([
['chatroomId', '=', $wechatChatroomId],
['wechatId', '=', $item['wechatId']]
])->find();
if ($member) {
$member->save($data);
} else {
$data['createTime'] = time();
WechatChatroomMemberModel::create($data);
$sqlData = [];
foreach ($data as $item) {
$sqlData[] = [
'chatroomId' => $wechatChatroomId,
'wechatId' => isset($item['wechatId']) ? $item['wechatId'] : '',
'nickname' => isset($item['nickname']) ? $item['nickname'] : '',
'avatar' => isset($item['avatar']) ? $item['avatar'] : '',
'conRemark' => isset($item['conRemark']) ? $item['conRemark'] : '',
'alias' => isset($item['alias']) ? $item['alias'] : '',
'friendType' => isset($item['friendType']) ? $item['friendType'] : false,
'updateTime' => time()
];
}
$member = new WechatChatroomMemberModel();
$member->saveAll($sqlData);
}
/**