@@ -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):
|
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)
|
payload = build_order_group_chat_payload(order, viewer_backend_identity, viewer_uid)
|
||||||
group_id = payload['groupId']
|
group_id = payload['groupId']
|
||||||
appkey = _get_self_goeasy_appkey()
|
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'):
|
if payload.get('partnerGoEasyId'):
|
||||||
user_ids.add(payload['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
|
subscribed = True
|
||||||
if subscribe and user_ids:
|
if subscribe and user_ids:
|
||||||
subscribed = _subscribe_users_to_group(list(user_ids), [group_id], appkey, secret)
|
subscribed = _subscribe_users_to_group(list(user_ids), [group_id], appkey, secret)
|
||||||
|
|||||||
Reference in New Issue
Block a user