场景获客支持拉群
This commit is contained in:
@@ -124,6 +124,86 @@ class GetAddFriendPlanDetailV1Controller extends Controller
|
||||
$msgConf = json_decode($plan['msgConf'], true) ?: [];
|
||||
$tagConf = json_decode($plan['tagConf'], true) ?: [];
|
||||
|
||||
// 处理拉群固定成员为数组,并构造下拉 options
|
||||
if (!empty($plan['groupFixedMembers'])) {
|
||||
$fixedMembers = json_decode($plan['groupFixedMembers'], true);
|
||||
$plan['groupFixedMembers'] = is_array($fixedMembers) ? $fixedMembers : [];
|
||||
} else {
|
||||
$plan['groupFixedMembers'] = [];
|
||||
}
|
||||
// groupFixedMembersOptions:参考 workbench 中好友 options 的结构,返回完整好友信息
|
||||
$groupFixedMembersOptions = [];
|
||||
if (!empty($plan['groupFixedMembers'])) {
|
||||
$friendIds = [];
|
||||
$manualIds = [];
|
||||
foreach ($plan['groupFixedMembers'] as $member) {
|
||||
if (is_numeric($member)) {
|
||||
$friendIds[] = intval($member);
|
||||
} else {
|
||||
$manualIds[] = $member;
|
||||
}
|
||||
}
|
||||
|
||||
// 数字 ID:从 s2_wechat_friend 中查询好友信息
|
||||
if (!empty($friendIds)) {
|
||||
$friendList = Db::table('s2_wechat_friend')->alias('wf')
|
||||
->join(['s2_wechat_account' => 'wa'], 'wa.id = wf.wechatAccountId', 'left')
|
||||
->join(['s2_company_account' => 'ca'], 'ca.id = wf.accountId', 'left')
|
||||
->where('wf.id', 'in', $friendIds)
|
||||
->order('wf.id', 'desc')
|
||||
->field('wf.id,wf.wechatId,wf.nickname,wf.avatar,wf.alias,wf.gender,wf.phone,wa.nickName as accountNickname,ca.userName as account,ca.realName as username,wf.createTime,wf.updateTime,wf.deleteTime,wf.ownerWechatId')
|
||||
->select();
|
||||
|
||||
// 获取群主信息,格式化时间
|
||||
foreach ($friendList as &$friend) {
|
||||
if (!empty($friend['ownerWechatId'])) {
|
||||
$owner = Db::name('wechat_account')
|
||||
->where('wechatId', $friend['ownerWechatId'])
|
||||
->field('nickName,alias')
|
||||
->find();
|
||||
$friend['ownerNickname'] = $owner['nickName'] ?? '';
|
||||
$friend['ownerAlias'] = $owner['alias'] ?? '';
|
||||
} else {
|
||||
$friend['ownerNickname'] = '';
|
||||
$friend['ownerAlias'] = '';
|
||||
}
|
||||
$friend['isManual'] = '';
|
||||
$friend['createTime'] = !empty($friend['createTime']) ? date('Y-m-d H:i:s', $friend['createTime']) : '';
|
||||
$friend['updateTime'] = !empty($friend['updateTime']) ? date('Y-m-d H:i:s', $friend['updateTime']) : '';
|
||||
$friend['deleteTime'] = !empty($friend['deleteTime']) ? date('Y-m-d H:i:s', $friend['deleteTime']) : '';
|
||||
}
|
||||
unset($friend);
|
||||
|
||||
$groupFixedMembersOptions = array_merge($groupFixedMembersOptions, $friendList);
|
||||
}
|
||||
|
||||
// 手动 ID:仅返回基础结构,标记 isManual=1
|
||||
if (!empty($manualIds)) {
|
||||
foreach ($manualIds as $mid) {
|
||||
$groupFixedMembersOptions[] = [
|
||||
'id' => $mid,
|
||||
'wechatId' => $mid,
|
||||
'nickname' => $mid,
|
||||
'avatar' => '',
|
||||
'alias' => '',
|
||||
'gender' => 0,
|
||||
'phone' => '',
|
||||
'accountNickname' => '',
|
||||
'account' => '',
|
||||
'username' => '',
|
||||
'ownerNickname' => '',
|
||||
'ownerAlias' => '',
|
||||
'ownerWechatId' => '',
|
||||
'createTime' => '',
|
||||
'updateTime' => '',
|
||||
'deleteTime' => '',
|
||||
'isManual' => 1,
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
$sceneConf['groupFixedMembersOptions'] = $groupFixedMembersOptions;
|
||||
|
||||
// 处理分销配置
|
||||
$distributionConfig = $sceneConf['distribution'] ?? [
|
||||
'enabled' => false,
|
||||
|
||||
Reference in New Issue
Block a user