俱乐部隔离:展示配置/会员可售/手机认证阈值;修复小程序轮播
This commit is contained in:
@@ -65,7 +65,8 @@ class GetDynamicConfigView(APIView):
|
||||
|
||||
def post(self, request):
|
||||
try:
|
||||
# 从 settings 获取配置
|
||||
from jituan.services.display_config import get_tupianpeizhi_url
|
||||
|
||||
cos_oss_url = getattr(settings, 'COS_DOMAIN', '')
|
||||
if cos_oss_url and not cos_oss_url.endswith('/'):
|
||||
cos_oss_url += '/'
|
||||
@@ -75,8 +76,10 @@ class GetDynamicConfigView(APIView):
|
||||
goeasy_appkey = getattr(settings, 'GOEASY_APPKEY', '')
|
||||
kefu_link = getattr(settings, 'KEFU_LINK', '')
|
||||
kefu_enterprise_id = getattr(settings, 'KEFU_ENTERPRISE_ID', '')
|
||||
morentouxiang = 'beijing/morentouxiang.jpg'
|
||||
dashouguize = 'a_long/dashouguize.jpg'
|
||||
rule_img = get_tupianpeizhi_url(request, 1)
|
||||
avatar_img = get_tupianpeizhi_url(request, 2)
|
||||
morentouxiang = avatar_img or 'beijing/morentouxiang.jpg'
|
||||
dashouguize = rule_img or 'a_long/dashouguize.jpg'
|
||||
|
||||
# 构造返回数据
|
||||
data = {
|
||||
@@ -2697,8 +2700,12 @@ class GuanZhuAListView(APIView):
|
||||
|
||||
def post(self, request):
|
||||
try:
|
||||
# 查询类型为3的所有记录
|
||||
qs = Tupianpeizhi.query.filter(ImageType=3)
|
||||
from jituan.services.club_context import resolve_club_id_from_request
|
||||
|
||||
club_id = resolve_club_id_from_request(request)
|
||||
qs = Tupianpeizhi.query.filter(ImageType=3, club_id=club_id)
|
||||
if not qs.exists() and club_id != 'xq':
|
||||
qs = Tupianpeizhi.query.filter(ImageType=3, club_id='xq')
|
||||
if not qs.exists():
|
||||
return Response({
|
||||
'code': 0,
|
||||
@@ -3283,7 +3290,9 @@ class CheckPhoneAuthView(APIView):
|
||||
return False
|
||||
if dashou.yajin and dashou.yajin > 0:
|
||||
return True
|
||||
if Huiyuangoumai.query.filter(yonghu_id=user.UserUID).exists():
|
||||
from jituan.services.club_context import resolve_club_id_from_request
|
||||
club_id = resolve_club_id_from_request(self.request)
|
||||
if Huiyuangoumai.query.filter(yonghu_id=user.UserUID, club_id=club_id).exists():
|
||||
return True
|
||||
if (dashou.jiedanzongliang or 0) > 0 or (dashou.chengjiaozongliang or 0) > 0:
|
||||
return True
|
||||
|
||||
@@ -72,10 +72,10 @@ def build_member_list_payload(request):
|
||||
'club_id': club_id,
|
||||
'scope': scope,
|
||||
'price_note': (
|
||||
'当前展示俱乐部专属售价(club_huiyuan_price);与星阙相同说明尚未单独改价,'
|
||||
'在本俱乐部视图下编辑即可覆盖。'
|
||||
f'当前俱乐部 {club_id} 专属售价(表 club_huiyuan_price)。'
|
||||
'若与星阙相同,是创建时从 xq 复制的默认值,请在本俱乐部视图下修改价格。'
|
||||
if scope != DATA_SCOPE_ALL else
|
||||
'集团汇总视图展示全局默认价;切换具体俱乐部可查看/编辑各俱乐部售价。'
|
||||
'集团汇总:展示全局默认价。请切换到具体俱乐部查看/编辑专属价。'
|
||||
),
|
||||
**list_response_meta(request),
|
||||
}
|
||||
|
||||
@@ -66,6 +66,17 @@ def list_response_meta(request):
|
||||
return _meta(request)
|
||||
|
||||
|
||||
def get_tupianpeizhi_url(request, image_type):
|
||||
"""按俱乐部读图片配置(无则 xq 回退,避免 xzj 未配时全空)。"""
|
||||
from config.models import Tupianpeizhi
|
||||
|
||||
club_id = resolve_club_id_from_request(request)
|
||||
row = Tupianpeizhi.query.filter(club_id=club_id, ImageType=image_type).first()
|
||||
if not row and club_id != CLUB_ID_DEFAULT:
|
||||
row = Tupianpeizhi.query.filter(club_id=CLUB_ID_DEFAULT, ImageType=image_type).first()
|
||||
return (row.ImageURL or '').strip() if row else ''
|
||||
|
||||
|
||||
def copy_display_config(template_club_id, new_club_id):
|
||||
"""从模板俱乐部复制轮播/公告/弹窗/图片配置到新俱乐部。"""
|
||||
from config.models import Gonggao, Lunbo, PopupConfig, PopupImage, PopupPage, Tupianpeizhi
|
||||
|
||||
@@ -266,23 +266,24 @@ class DashouHuiyuanList(APIView):
|
||||
'message': '账号状态异常,无法购买会员'
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 3. 查询所有会员数据(ORM查询,确保性能)
|
||||
# 3. 仅返回本俱乐部可售会员(club_huiyuan_price 已配置且启用)
|
||||
from jituan.services.member_recharge import club_huiyuan_sellable
|
||||
|
||||
club_id = resolve_club_id_from_request(request)
|
||||
huiyuan_queryset = Huiyuan.query.all().only(
|
||||
'huiyuan_id', # 会员ID
|
||||
'jieshao', # 会员名字(注意:jieshao字段实际存储的是会员名字)
|
||||
'jtjieshao', # 会员具体介绍
|
||||
'jiage' # 会员价格
|
||||
).order_by('jiage') # 按价格排序
|
||||
'huiyuan_id', 'jieshao', 'jtjieshao', 'jiage',
|
||||
).order_by('jiage')
|
||||
|
||||
# 4. 构建返回数据列表
|
||||
huiyuan_list = []
|
||||
for huiyuan in huiyuan_queryset:
|
||||
sellable, club_price = club_huiyuan_sellable(club_id, huiyuan.huiyuan_id)
|
||||
if not sellable or not club_price:
|
||||
continue
|
||||
huiyuan_list.append({
|
||||
'id': huiyuan.huiyuan_id, # 会员ID(对应前端id)
|
||||
'mingzi': huiyuan.jieshao, # 会员名字(对应前端mingzi)
|
||||
'jiage': float(get_huiyuan_price(club_id, huiyuan.huiyuan_id, huiyuan)),
|
||||
'jieshao': huiyuan.jtjieshao # 会员介绍(对应前端jieshao)
|
||||
'id': huiyuan.huiyuan_id,
|
||||
'mingzi': huiyuan.jieshao,
|
||||
'jiage': float(club_price),
|
||||
'jieshao': huiyuan.jtjieshao,
|
||||
})
|
||||
|
||||
# 5. 返回数据
|
||||
|
||||
Reference in New Issue
Block a user