fix: 进入组队订单群时一并订阅在队打手

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-27 08:00:27 +08:00
parent caef4bf56c
commit c5ceacf3d3

View File

@@ -272,7 +272,7 @@ def build_order_group_chat_payload(order, viewer_backend_identity, viewer_uid):
def prepare_order_group_chat(order, viewer_backend_identity, viewer_uid, subscribe=True):
"""进入群聊前:订阅当前用户(及双方)到配对群,不重复发送抢单初始化消息"""
"""进入群聊前:订阅当前用户(及双方/组队成员)到目标群,不重复发送抢单初始化消息"""
payload = build_order_group_chat_payload(order, viewer_backend_identity, viewer_uid)
group_id = payload['groupId']
appkey = _get_self_goeasy_appkey()
@@ -289,6 +289,20 @@ def prepare_order_group_chat(order, viewer_backend_identity, viewer_uid, subscri
if payload.get('partnerGoEasyId'):
user_ids.add(payload['partnerGoEasyId'])
# 组队订单群:把在队打手一并订阅,保证历史/实时都能到
oid = (getattr(order, 'OrderID', None) or '').strip()
if oid and group_id == f'group_{oid}':
try:
from orders.models import TeamMember
for m in TeamMember.query.filter(
order_id=oid, join_status=TeamMember.JOIN_ACTIVE,
).only('user_uid')[:20]:
uid = (m.user_uid or '').strip()
if uid:
user_ids.add(f'Ds{uid}')
except Exception as e:
logger.warning('prepare 订阅组队成员失败 order=%s: %s', oid, e)
subscribed = True
if subscribe and user_ids:
subscribed = _subscribe_users_to_group(list(user_ids), [group_id], appkey, secret)