fix: 抢单池会员展示加强校验与 hasRequiredMember 直返

会员 ID 忽略前导零等价匹配;订单缺 huiyuan_id 时回退商品类型;接口直返 hasRequiredMember 并将已授权订单 yaoqiuleixing 置 0。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-08 13:56:54 +08:00
parent 3a2b8a2bba
commit dfd4bed221
2 changed files with 81 additions and 20 deletions

View File

@@ -296,7 +296,10 @@ class DashouDingdanHuoquView(APIView):
club_id = resolve_effective_club_id(request, getattr(request, 'user', None))
identity_tag_map = batch_identity_tags(club_id, identity_pairs) if identity_pairs else {}
from jituan.services.huiyuan_bundle import user_has_huiyuan_access, build_user_clumber
from jituan.services.huiyuan_bundle import (
build_user_clumber,
resolve_grab_pool_member_display,
)
yonghuid = request.user.UserUID
# 12. 格式化返回数据
@@ -306,14 +309,9 @@ class DashouDingdanHuoquView(APIView):
zid = order.get('AssignedID')
info = zhiding_info.get(zid, {})
sj_uid = shangjia_id_map.get(oid) if order['Platform'] == 2 else None
grab_req = order['GrabRequirement'] or 0
membership_id = order['MembershipID'] or ''
display_grab_req = grab_req
if grab_req == 1 and membership_id:
if user_has_huiyuan_access(yonghuid, membership_id, club_id=club_id):
# 前端用 yaoqiuleixing==1 判断是否展示「未开通会员」;
# 用户已有权接单时置 0无需改小程序即可正常显示与抢单。
display_grab_req = 0
display_grab_req, display_huiyuan_id, has_required_member = (
resolve_grab_pool_member_display(order, yonghuid, club_id=club_id)
)
formatted_list.append({
'dingdan_id': order['OrderID'],
'zhuangtai': order['Status'],
@@ -322,7 +320,9 @@ class DashouDingdanHuoquView(APIView):
'leixing_id': order['ProductTypeID'] or 0,
'tupian': order['ImageURL'] or '',
'yaoqiuleixing': display_grab_req,
'huiyuan_id': membership_id if display_grab_req == 1 else '',
'huiyuan_id': display_huiyuan_id,
'hasRequiredMember': has_required_member,
'has_required_member': has_required_member,
'yajin': float(order['CommissionReq']) if order['CommissionReq'] else 0.0,
'jieshao': order['Description'] or '',
'beizhu': order['Remark'] or '',