fix: 体验会员按正式会员返回抢单池数据 + 修复 MerchantStaffMember
clumber/dashouxinxi 有效期内体验会员与正式会员同格式返回;ddhq 保持原 yaoqiuleixing/huiyuan_id 供老端匹配;补 merchant-staff 缺 import。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user