fix: 组队群统一 group_订单ID,入队发消息并拉商家/老板

开组/入队订阅派单方;发送「已组队」;进聊与代理发消息在有组队时走订单群;队友可进群。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-27 07:59:16 +08:00
parent 96f1a80395
commit caef4bf56c
3 changed files with 149 additions and 9 deletions

View File

@@ -104,6 +104,23 @@ def resolve_pair_group_id(order):
return None
def resolve_order_chat_group_id(order):
"""
进订单聊天用的群 ID
- 存在进行中组队 → 统一 group_{订单ID}(组队成员 + 商家/老板同群)
- 否则 → 配对群
"""
oid = (getattr(order, 'OrderID', None) or '').strip()
if oid:
try:
from orders.services.team_recruit import get_active_recruit
if get_active_recruit(oid):
return f'group_{oid}'
except Exception as e:
logger.warning('resolve_order_chat_group_id 查组队失败 order=%s: %s', oid, e)
return resolve_pair_group_id(order) or (f'group_{oid}' if oid else None)
def parse_pair_from_group_id(group_id):
"""从配对群 ID 解析打手 uid、对方 uid、对方角色(shangjia/boss)"""
if not group_id:
@@ -202,8 +219,8 @@ def _get_dashou_profile(order):
def build_order_group_chat_payload(order, viewer_backend_identity, viewer_uid):
"""构建前端 ltdhzb 所需群聊元数据(新群用打手+商家/老板配对 groupId"""
group_id = resolve_pair_group_id(order) or f'group_{order.OrderID}'
"""构建前端 ltdhzb 所需群聊元数据(有组队时用 group_{订单ID}"""
group_id = resolve_order_chat_group_id(order) or f'group_{order.OrderID}'
order_desc = order.Description or ''
group_name = (
(order_desc[:20] + '') if order_desc and len(order_desc) > 20