点单获取商品:打手且有邀请人也强制只返回隐藏式商品,与扫码标记同等效果。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQueandCursor committed 2026-07-21 22:35:49 +08:00
1 parent 2287117397
commit 7684fe346b
1 file changed
+20 -8
+20 -8
View File
@@ -7,7 +7,7 @@ from django.db import models
from shangpin.models import ShangpinLeixing, ShangpinZhuanqu, Shangpin from shangpin.models import ShangpinLeixing, ShangpinZhuanqu, Shangpin
from utils.xcx_sys_config import get_shangpin_shenhe_zhuangtai from utils.xcx_sys_config import get_shangpin_shenhe_zhuangtai
from utils.jwt_auth import OptionalYonghuidJWTAuthentication from utils.jwt_auth import OptionalYonghuidJWTAuthentication
from yonghu.models import UserMain from yonghu.models import UserMain, UserDashou
import logging import logging
from rest_framework.permissions import AllowAny # 新增这行 from rest_framework.permissions import AllowAny # 新增这行
@@ -22,8 +22,9 @@ class ShangpinHuoquView(APIView):
一次性返回商品类型、商品专区、商品列表 一次性返回商品类型、商品专区、商品列表
筛选规则: 筛选规则:
- 已登录且扫过管事二维码(guanshi_saoma=1):只返回 shenhezhuangtai=4(隐藏式), - 已登录且满足任一条件,只返回 shenhezhuangtai=4(隐藏式),与体验开关无关:
与后台「点单商品展示/体验」开关无关 1) 扫过管事二维码 guanshi_saoma=1
2) 已是打手且有邀请人 yaoqingren
- 其它:按全局审核开关返回 1 或 2(原逻辑不变) - 其它:按全局审核开关返回 1 或 2(原逻辑不变)
""" """
@@ -33,20 +34,31 @@ class ShangpinHuoquView(APIView):
permission_classes = [AllowAny] permission_classes = [AllowAny]
def _resolve_shenhe_filter(self, request): def _resolve_shenhe_filter(self, request):
"""先查用户扫码标记;扫过则强制 4,否则走全局体验开关。""" """扫码标记或打手有邀请人 → 强制隐藏式4;否则走体验开关。"""
user = request.user user = request.user
if getattr(user, 'is_authenticated', False): if getattr(user, 'is_authenticated', False):
yonghuid = getattr(user, 'yonghuid', '')
saoma = UserMain.objects.filter(pk=user.pk).values_list('guanshi_saoma', flat=True).first() saoma = UserMain.objects.filter(pk=user.pk).values_list('guanshi_saoma', flat=True).first()
if saoma == 1: if saoma == 1:
logger.info( logger.info(
'点单商品:用户已扫管事码,强制隐藏式 shenhezhuangtai=4 yonghuid=%s', '点单商品:已扫管事码,强制隐藏式4 yonghuid=%s',
getattr(user, 'yonghuid', ''), yonghuid,
)
return 4
# 打手且有邀请人:与扫码同等效果
has_inviter = UserDashou.objects.filter(user_id=user.pk).exclude(
yaoqingren__isnull=True,
).exclude(yaoqingren='').exists()
if has_inviter:
logger.info(
'点单商品:打手有邀请人,强制隐藏式4 yonghuid=%s',
yonghuid,
) )
return 4 return 4
logger.info( logger.info(
'点单商品:用户未扫管事码 guanshi_saoma=%s yonghuid=%s', '点单商品:未扫码且无打手邀请人 guanshi_saoma=%s yonghuid=%s',
saoma, saoma,
getattr(user, 'yonghuid', ''), yonghuid,
) )
shenhe = get_shangpin_shenhe_zhuangtai() shenhe = get_shangpin_shenhe_zhuangtai()
logger.info('点单商品:按体验开关 shenhezhuangtai=%s', shenhe) logger.info('点单商品:按体验开关 shenhezhuangtai=%s', shenhe)