fix: 体验会员本单有权限时 yaoqiuleixing 返回 0 仅适配老端展示
逐单判断会员类型:有权限的单显示可抢,无权限/过期仍显示未开通;抢单与提现后端校验不变。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -210,8 +210,10 @@ def _prune_clumber_items(yonghu_id, items, club_id=None):
|
||||
|
||||
def resolve_grab_pool_member_display(order_dict, yonghu_id, club_id=None, user_clumber=None):
|
||||
"""
|
||||
老小程序抢单池:按「本单所需会员类型」逐单判断,禁止有任意会员就放开全部订单。
|
||||
会员单固定返回 yaoqiuleixing=1 + 本单 huiyuan_id;has_access 供 hasRequiredMember。
|
||||
抢单池展示(仅老端 UI,不影响 /qiangdan 真实校验):
|
||||
- 本单有对应会员(含体验)→ yaoqiuleixing=0,老端显示分佣/可抢
|
||||
- 本单无对应会员 → yaoqiuleixing=1 + huiyuan_id,老端显示未开通
|
||||
禁止「有任意会员就放开全部单」。
|
||||
"""
|
||||
grab_req = int(order_dict.get('GrabRequirement') or 0)
|
||||
membership_id = resolve_order_membership_id(order_dict)
|
||||
@@ -220,7 +222,9 @@ def resolve_grab_pool_member_display(order_dict, yonghu_id, club_id=None, user_c
|
||||
|
||||
required_ids = resolve_order_membership_ids(order_dict)
|
||||
has_access = user_has_huiyuan_access_any(yonghu_id, required_ids, club_id=club_id)
|
||||
return 1, membership_id or '', has_access
|
||||
if has_access:
|
||||
return 0, membership_id or '', True
|
||||
return 1, membership_id or '', False
|
||||
|
||||
|
||||
def enrich_clumber_item(record):
|
||||
@@ -346,8 +350,21 @@ def ensure_grab_pool_clumber(yonghu_id, club_id=None):
|
||||
|
||||
sync_member_entitlements_for_user(yonghu_id)
|
||||
items = _build_user_clumber_core(yonghu_id)
|
||||
if not items:
|
||||
items = _build_clumber_from_paid_czjilu(yonghu_id)
|
||||
extra = _build_clumber_from_paid_czjilu(yonghu_id)
|
||||
if extra:
|
||||
seen_cores = set()
|
||||
for it in items:
|
||||
hid = normalize_huiyuan_id(it.get('huiyuanid') or it.get('huiyuan_id'))
|
||||
if hid:
|
||||
seen_cores.add(hid.lstrip('0') or '0')
|
||||
for it in extra:
|
||||
hid = normalize_huiyuan_id(it.get('huiyuanid') or it.get('huiyuan_id'))
|
||||
if not hid:
|
||||
continue
|
||||
core = hid.lstrip('0') or '0'
|
||||
if core not in seen_cores:
|
||||
items.append(it)
|
||||
seen_cores.add(core)
|
||||
items = _prune_clumber_items(yonghu_id, items, club_id=club_id)
|
||||
return bool(items), items
|
||||
|
||||
|
||||
Reference in New Issue
Block a user