feat: 商品/专区/店铺按俱乐部分离,工单统计与点单手机号认证

商品与专区、店铺增加 club_id(历史默认 xq);列表按俱乐部过滤;工单列表返回待办统计;新增 hqshouji/rzwlsjh 手机号查询与认证接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
XingQue
2026-07-21 01:55:14 +08:00
parent 7c6e14db01
commit d5b8ff5b8a
15 changed files with 332 additions and 80 deletions

View File

@@ -69,6 +69,7 @@ from jituan.services.club_context import resolve_effective_club_id
from jituan.services.club_write import resolve_club_id_for_write
from jituan.services.club_user import get_payment_openid
from jituan.services.club_penalty import resolve_gsfenhong_club_id
from jituan.constants import CLUB_ID_DEFAULT
import traceback
@@ -115,8 +116,9 @@ class ShangpinHuoquView(APIView):
if visible_leixing_ids:
zhuanqu_queryset = ShangpinZhuanqu.query.filter(
leixing_id__in=visible_leixing_ids,
shenhezhuangtai=1 # 🔴【添加】只筛选审核状态为2的专区
).order_by('-paixu', 'id') # 先按paixu降序再按id升序
shenhezhuangtai=1,
club_id=club_id or CLUB_ID_DEFAULT,
).order_by('-paixu', 'id')
else:
zhuanqu_queryset = ShangpinZhuanqu.query.none()
@@ -137,7 +139,8 @@ class ShangpinHuoquView(APIView):
# 注意这里使用values()只获取指定字段,提高查询效率
shangpin_queryset = Shangpin.query.filter(
zhuanqu_id__in=visible_zhuanqu_ids,
shenhezhuangtai=1 # 🔴【添加】只筛选审核状态为2的商品
shenhezhuangtai=1,
club_id=club_id or CLUB_ID_DEFAULT,
).values(
'id', 'biaoqian', 'jiage', 'leixing_id',
'zhuanqu_id', 'tupian_url', 'duiwai_xiaoliang', 'paixu'

View File

@@ -357,9 +357,11 @@ class ShangpinZhuanquFabuView(APIView):
)
# === 3. 创建商品专区记录 ===
club_id = resolve_club_id_for_write(request)
zhuanqu_obj = ShangpinZhuanqu(
mingzi=mingzi,
leixing_id=leixing_id
leixing_id=leixing_id,
club_id=club_id,
)
zhuanqu_obj.save()
@@ -604,6 +606,7 @@ class ShangpinFabuView(APIView):
duiwai_xiaoliang_value = 0
# 4.2 创建商品对象
club_id = resolve_club_id_for_write(request)
shangpin_obj = Shangpin(
biaoqian=biaoti,
jiage=jiage_value,
@@ -616,6 +619,7 @@ class ShangpinFabuView(APIView):
yaoqiuleixing=yaoqiuleixing_int,
huiyuan_id=huiyuan_id_value,
yongjin=yongjin_value,
club_id=club_id,
# tupian_url 先留空,上传成功后再更新
)
@@ -1354,11 +1358,13 @@ class AdShangpinHuQu(APIView):
'yongjin' # 佣金要求如果yaoqiuleixing=2
)
# 9. 查询商品专区数据
shangpinzhuanqu_data = ShangpinZhuanqu.query.all().values(
# 9. 查询商品专区数据(按当前俱乐部)
admin_club_id = resolve_effective_club_id(request, getattr(request, 'user', None)) or 'xq'
shangpinzhuanqu_data = ShangpinZhuanqu.query.filter(club_id=admin_club_id).values(
'id', # 专区ID
'mingzi', # 专区名称
'leixing_id' # 所属类型ID
'leixing_id', # 所属类型ID
'club_id',
)
# 10. 查询会员数据
@@ -1368,15 +1374,16 @@ class AdShangpinHuQu(APIView):
'jiage' # 会员价格
)
# 11. 查询商品数据
shangpin_data = Shangpin.query.all().values(
# 11. 查询商品数据(按当前俱乐部)
shangpin_data = Shangpin.query.filter(club_id=admin_club_id).values(
'id', # 商品ID
'biaoqian', # 商品标题/标签
'jiage', # 商品价格
'leixing_id', # 商品类型ID
'zhuanqu_id', # 商品专区ID
'tupian_url', # 商品图片URL
'duiwai_xiaoliang' # 商品对外销量
'duiwai_xiaoliang', # 商品对外销量
'club_id',
)
# 12. 构造返回数据