From eedd5fbd46a7b8b47efdc2ad59f0575a10bc1a13 Mon Sep 17 00:00:00 2001 From: XingQue Date: Wed, 8 Jul 2026 14:09:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=93=E9=AA=8C=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E6=8C=89=E6=AD=A3=E5=BC=8F=E4=BC=9A=E5=91=98=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=8A=A2=E5=8D=95=E6=B1=A0=E6=95=B0=E6=8D=AE=20+=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20MerchantStaffMember?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit clumber/dashouxinxi 有效期内体验会员与正式会员同格式返回;ddhq 保持原 yaoqiuleixing/huiyuan_id 供老端匹配;补 merchant-staff 缺 import。 Co-authored-by: Cursor --- jituan/services/huiyuan_bundle.py | 30 ++++++++++-------------------- merchant_ops/services/link.py | 2 +- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/jituan/services/huiyuan_bundle.py b/jituan/services/huiyuan_bundle.py index 7cc9724..a333265 100644 --- a/jituan/services/huiyuan_bundle.py +++ b/jituan/services/huiyuan_bundle.py @@ -147,35 +147,24 @@ def resolve_order_membership_id(order_dict): def resolve_grab_pool_member_display(order_dict, yonghu_id, club_id=None): """ - 老小程序抢单池适配(仅改接口返回,无需发版): - - 老端展示:yaoqiuleixing==1 && huiyuan_id 时才判「未开通会员」 - - 老端抢单:yaoqiuleixing==1 时校验会员 - 已有权限时统一返回 yaoqiuleixing=0、huiyuan_id=''。 + 抢单池订单字段:保持原 yaoqiuleixing / huiyuan_id,供老端用 clumber 匹配。 + 体验会员已在 clumber 中按正式会员返回;抢单权限由 /dingdan/qiangdan 服务端校验。 """ grab_req = int(order_dict.get('GrabRequirement') or 0) - if grab_req != 1: - return grab_req, '', True - - required_ids = resolve_order_membership_ids(order_dict) - if not required_ids: - return 0, '', True - - has_access = user_has_huiyuan_access_any(yonghu_id, required_ids, club_id=club_id) - if has_access: - return 0, '', True - - return 1, required_ids[0], False + membership_id = resolve_order_membership_id(order_dict) + return grab_req, membership_id, True def enrich_clumber_item(record): - """老端 clumber 条目:必须有 huiyuanid + 字符串 daoqi。""" + """老端 clumber:有效期内体验会员与正式会员返回格式完全一致。""" daoqi_str = format_legacy_daoqi(record.daoqi_time) item = { 'huiyuanid': record.huiyuan_id, 'huiyuan_id': record.huiyuan_id, 'huiyuanming': record.jieshao or f'会员{record.huiyuan_id}', 'daoqi': daoqi_str, - 'is_trial': bool(getattr(record, 'is_trial', False)), + 'huiyuan_zhuangtai': 1, + 'shifou_daoqi': False, } if is_bundle_huiyuan(record.huiyuan_id): item['is_bundle'] = True @@ -211,7 +200,8 @@ def _append_bundle_sub_clumber(items, seen, record, base_item): 'huiyuanming': base_item.get('huiyuanming', ''), 'daoqi': base_item.get('daoqi', ''), 'from_bundle': bundle_hid, - 'is_trial': bool(getattr(record, 'is_trial', False)), + 'huiyuan_zhuangtai': 1, + 'shifou_daoqi': False, } _append_clumber_id_variants(items, seen, sub_base, sid) @@ -248,7 +238,7 @@ def build_auth_clumber(yonghu_id): shifou_daoqi = record.jiance_shifou_daoqi() base = enrich_clumber_item(record) base.update({ - 'huiyuan_zhuangtai': record.huiyuan_zhuangtai, + 'huiyuan_zhuangtai': 1 if (not shifou_daoqi and record.huiyuan_zhuangtai == 1) else record.huiyuan_zhuangtai, 'daoqi_time': record.daoqi_time.isoformat() if record.daoqi_time else None, 'shifou_daoqi': shifou_daoqi, 'jieshao': record.jieshao, diff --git a/merchant_ops/services/link.py b/merchant_ops/services/link.py index c314e1a..c7befbf 100644 --- a/merchant_ops/services/link.py +++ b/merchant_ops/services/link.py @@ -15,7 +15,7 @@ from django.utils import timezone from config.models import ShangjiaLianjie, ShangjiaMoban from merchant_ops.constants import ACTOR_STAFF -from merchant_ops.models import MerchantOrderDispatch +from merchant_ops.models import MerchantOrderDispatch, MerchantStaffMember from merchant_ops.services.wallet import check_wallet_available, confirm_dispatch_deduct from orders.models import MerchantOrderExt, Order, CommissionRate from products.models import ShangpinLeixing