🔧 修复:组队团战创建所有龙虾座位

问题:
- 只传递了 host_agent_id(第一只龙虾)
- 导致第二只龙虾没有座位

修复:
- 前端:传递 agent_ids(所有龙虾)
- 后端:遍历 agent_ids 创建所有龙虾参会者
- 避免重复创建

结果:
 单枪匹马 - 1 座位
 组队团战(2 龙虾) - 3 座位
 独当一面(1 龙虾) - 1 座位
This commit is contained in:
2026-04-04 17:27:51 +08:00
parent b27261ce64
commit 9ab279e1fe
3 changed files with 15 additions and 9 deletions

View File

@@ -36,7 +36,7 @@ class MeetingViewSet(viewsets.ModelViewSet):
meeting = serializer.save(host=host)
# 指定主持龙虾(可选
# 指定主持龙虾(第一只,负责生成纪要
host_agent_id = request.data.get('host_agent_id')
host_instance_id = request.data.get('host_instance_id')
if host_agent_id:
@@ -53,17 +53,22 @@ class MeetingViewSet(viewsets.ModelViewSet):
is_host=True
)
# 如果指定了 host_agent_id创建该龙虾参会者
if host_agent_id:
# 创建所有龙虾参会者(从 sessions 中获取)
agent_ids = request.data.get('agent_ids', [])
for agent_id in agent_ids:
# 避免重复创建
if Participant.objects.filter(meeting=meeting, agent_id=agent_id).exists():
continue
# 从用户绑定的龙虾中获取正确信息
agent_info = host.get_linked_agent(host_agent_id)
agent_info = host.get_linked_agent(agent_id)
Participant.objects.create(
meeting=meeting,
agent_type='openclaw',
agent_id=host_agent_id,
agent_name=agent_info['agent_name'] if agent_info else host_agent_id,
agent_id=agent_id,
agent_name=agent_info['agent_name'] if agent_info else agent_id,
agent_emoji=agent_info.get('agent_emoji', '🤖') if agent_info else '🤖',
nickname=agent_info['agent_name'] if agent_info else host_agent_id,
nickname=agent_info['agent_name'] if agent_info else agent_id,
is_host=False
)