加入了 GVSDSDK 模块,进行了 QModel 兼容层的尝试,生产环境可用

This commit is contained in:
2026-06-16 00:13:10 +08:00
parent 9d9cfa53a4
commit 63e0f4edfc
68 changed files with 10256 additions and 1143 deletions

View File

@@ -11,7 +11,8 @@ from decimal import Decimal, InvalidOperation
from django.conf import settings
from django.db import transaction, connection
from django.db.models import Q, F, Max, Prefetch
from django.db.models import Q, F, Max, Prefetch
from gvsdsdk.fluent import db, func, FQ
from django.core.cache import cache
from django.core.paginator import Paginator
from django.utils import timezone
@@ -130,11 +131,11 @@ class ShangpinGonggaoView(APIView):
try:
logger.info("收到商品公告和轮播图请求")
# 1. 查询公告类型为1
gonggao_obj = Gonggao.objects.filter(leixing=1).first()
gonggao_obj = Gonggao.query.filter(leixing=1).first()
# 获取公告内容,如果没有则返回空字符串
gonggao_content = gonggao_obj.jieshao if gonggao_obj else ""
# 2. 查询轮播图类型为1按显示顺序排序
lunbo_queryset = Lunbo.objects.filter(leixing=1)
lunbo_queryset = Lunbo.query.filter(leixing=1)
# 提取轮播图URL列表
lunbo_urls = [lunbo.tupian_url for lunbo in lunbo_queryset]
# 3. 构建返回数据
@@ -209,11 +210,11 @@ class AdminConfigQueryView(APIView):
}, status=status.HTTP_401_UNAUTHORIZED)
# 查询图片配置
rule_image = Tupianpeizhi.objects.filter(leixing=1).first()
default_avatar = Tupianpeizhi.objects.filter(leixing=2).first()
rule_image = Tupianpeizhi.query.filter(leixing=1).first()
default_avatar = Tupianpeizhi.query.filter(leixing=2).first()
# 查询群配置
qun_configs = Qunpeizhi.objects.all()
qun_configs = Qunpeizhi.query.all()
qq_groups = []
for config in qun_configs:
qq_groups.append({
@@ -224,12 +225,12 @@ class AdminConfigQueryView(APIView):
})
# 查询利率配置
platform_rate_obj = Lilubiao.objects.filter(fadanpingtai='1').first()
shop_rate_obj = Lilubiao.objects.filter(fadanpingtai='3').first()
platform_rate_obj = Lilubiao.query.filter(fadanpingtai='1').first()
shop_rate_obj = Lilubiao.query.filter(fadanpingtai='3').first()
# 🔴【新增】打手提现抽成利率字符5
dashou_withdraw_obj = Lilubiao.objects.filter(fadanpingtai='5').first()
dashou_withdraw_obj = Lilubiao.query.filter(fadanpingtai='5').first()
# 🔴【新增】管事提现抽成利率字符6
guanshi_withdraw_obj = Lilubiao.objects.filter(fadanpingtai='6').first()
guanshi_withdraw_obj = Lilubiao.query.filter(fadanpingtai='6').first()
# 构建返回数据
data = {
@@ -372,7 +373,7 @@ class AdminUploadImageView(APIView):
# 更新数据库
with transaction.atomic():
# 获取或创建图片配置记录
tupian_peizhi, created = Tupianpeizhi.objects.get_or_create(leixing=int(leixing))
tupian_peizhi, created = Tupianpeizhi.query.get_or_create(leixing=int(leixing))
tupian_peizhi.tupian = fixed_relative_url
tupian_peizhi.save()
@@ -452,7 +453,7 @@ class AdminUpdateConfigView(APIView):
continue
# 🔴 修复使用filter()确保查询到正确的记录
qun_configs = Qunpeizhi.objects.filter(peizhiid=peizhiid)
qun_configs = Qunpeizhi.query.filter(peizhiid=peizhiid)
if qun_configs.exists():
# 如果存在多个相同peizhiid的记录取第一个应该只有一个
@@ -473,7 +474,7 @@ class AdminUpdateConfigView(APIView):
qun_config.save()
else:
# 如果不存在创建新的使用提供的peizhiid
qun_config = Qunpeizhi.objects.create(
qun_config = Qunpeizhi.query.create(
peizhiid=peizhiid,
neirong=group_data.get('neirong', '') or '',
qunid=group_data.get('qunid', '') or '',
@@ -502,7 +503,7 @@ class AdminUpdateConfigView(APIView):
platform_rate_float = float(platform_rate)
if 0 <= platform_rate_float <= 1:
# 🔴 修复:查询现有记录,如果不存在则创建
platform_rate_obj = Lilubiao.objects.filter(fadanpingtai='1').first()
platform_rate_obj = Lilubiao.query.filter(fadanpingtai='1').first()
if platform_rate_obj:
# 更新现有记录
@@ -510,7 +511,7 @@ class AdminUpdateConfigView(APIView):
platform_rate_obj.save()
else:
# 创建新记录
platform_rate_obj = Lilubiao.objects.create(
platform_rate_obj = Lilubiao.query.create(
lilu=platform_rate_float,
fadanpingtai='1'
)
@@ -536,7 +537,7 @@ class AdminUpdateConfigView(APIView):
shop_rate_float = float(shop_rate)
if 0 <= shop_rate_float <= 1:
# 🔴 修复:查询现有记录,如果不存在则创建
shop_rate_obj = Lilubiao.objects.filter(fadanpingtai='3').first()
shop_rate_obj = Lilubiao.query.filter(fadanpingtai='3').first()
if shop_rate_obj:
# 更新现有记录
@@ -544,7 +545,7 @@ class AdminUpdateConfigView(APIView):
shop_rate_obj.save()
else:
# 创建新记录
shop_rate_obj = Lilubiao.objects.create(
shop_rate_obj = Lilubiao.query.create(
lilu=shop_rate_float,
fadanpingtai='3'
)
@@ -573,7 +574,7 @@ class AdminUpdateConfigView(APIView):
dashou_withdraw_rate_float = float(dashou_withdraw_rate)
if 0 <= dashou_withdraw_rate_float <= 1:
# 查询现有记录,如果不存在则创建
dashou_withdraw_obj = Lilubiao.objects.filter(fadanpingtai='5').first()
dashou_withdraw_obj = Lilubiao.query.filter(fadanpingtai='5').first()
if dashou_withdraw_obj:
# 更新现有记录
@@ -581,7 +582,7 @@ class AdminUpdateConfigView(APIView):
dashou_withdraw_obj.save()
else:
# 创建新记录
dashou_withdraw_obj = Lilubiao.objects.create(
dashou_withdraw_obj = Lilubiao.query.create(
lilu=dashou_withdraw_rate_float,
fadanpingtai='5'
)
@@ -607,7 +608,7 @@ class AdminUpdateConfigView(APIView):
guanshi_withdraw_rate_float = float(guanshi_withdraw_rate)
if 0 <= guanshi_withdraw_rate_float <= 1:
# 查询现有记录,如果不存在则创建
guanshi_withdraw_obj = Lilubiao.objects.filter(fadanpingtai='6').first()
guanshi_withdraw_obj = Lilubiao.query.filter(fadanpingtai='6').first()
if guanshi_withdraw_obj:
# 更新现有记录
@@ -615,7 +616,7 @@ class AdminUpdateConfigView(APIView):
guanshi_withdraw_obj.save()
else:
# 创建新记录
guanshi_withdraw_obj = Lilubiao.objects.create(
guanshi_withdraw_obj = Lilubiao.query.create(
lilu=guanshi_withdraw_rate_float,
fadanpingtai='6'
)
@@ -786,7 +787,7 @@ class DashouPaihangView(APIView):
chaxun_tiaojian = Q(**{f'{shouyi_ziduan}__gt': 0}) & Q(zhanghaozhuangtai=1)
# 查询打手扩展表,并关联用户主表
dashou_list = UserDashou.objects.select_related('user').filter(
dashou_list = UserDashou.query.select_related('user').filter(
chaxun_tiaojian
).order_by(f'-{shouyi_ziduan}')[:self.ZUI_DAO_CHA_XUN_SHU_LIANG]
@@ -852,7 +853,7 @@ class DashouPaihangView(APIView):
chaxun_tiaojian = Q(**{f'{chaxun_ziduan}__gt': 0}) & Q(zhuangtai=1)
# 查询管事扩展表,并关联用户主表
guanshi_list = UserGuanshi.objects.select_related('user').filter(
guanshi_list = UserGuanshi.query.select_related('user').filter(
chaxun_tiaojian
).order_by(f'-{chaxun_ziduan}')[:self.ZUI_DAO_CHA_XUN_SHU_LIANG]
@@ -878,7 +879,7 @@ class DashouPaihangView(APIView):
user_main = guanshi.user
# 管事的昵称需要查询老板扩展表
boss_profile = UserBoss.objects.filter(user=user_main).first()
boss_profile = UserBoss.query.filter(user=user_main).first()
guanshi_nicheng = boss_profile.nickname if boss_profile else '未设置昵称'
# 获取头像相对URL
@@ -919,7 +920,7 @@ class DashouPaihangView(APIView):
chaxun_tiaojian = Q(**{f'{liushui_ziduan}__gt': 0}) & Q(zhuangtai=1)
# 查询商家扩展表,并关联用户主表
shangjia_list = UserShangjia.objects.select_related('user').filter(
shangjia_list = UserShangjia.query.select_related('user').filter(
chaxun_tiaojian
).order_by(f'-{liushui_ziduan}')[:self.ZUI_DAO_CHA_XUN_SHU_LIANG]
@@ -945,7 +946,7 @@ class DashouPaihangView(APIView):
user_main = shangjia.user
# 商家的昵称需要查询老板扩展表
boss_profile = UserBoss.objects.filter(user=user_main).first()
boss_profile = UserBoss.query.filter(user=user_main).first()
shangjia_nicheng = boss_profile.nickname if boss_profile else '未设置昵称'
# 获取头像相对URL
@@ -1365,14 +1366,14 @@ class ShangjiaMobanListView(APIView):
if label_id:
query &= Q(chenghao_id=label_id)
mobans = ShangjiaMoban.objects.filter(query).order_by('-id')
mobans = ShangjiaMoban.query.filter(query).order_by('-id')
formatted = []
for moban in mobans:
texiao_json = ''
label_name = ''
if moban.chenghao_id:
try:
ch = Chenghao.objects.get(id=moban.chenghao_id)
ch = Chenghao.query.get(id=moban.chenghao_id)
label_name = ch.mingcheng
texiao_json = ch.texiao_miaoshu or ''
except Chenghao.DoesNotExist:
@@ -1393,7 +1394,7 @@ class ShangjiaMobanListView(APIView):
return Response({'code': 200, 'msg': '搜索成功', 'data': {'list': formatted, 'total': len(formatted), 'hasMore': False}})
# 分页模式
queryset = ShangjiaMoban.objects.filter(query).order_by('-id')
queryset = ShangjiaMoban.query.filter(query).order_by('-id')
paginator = Paginator(queryset, page_size)
if page < 1 or page > paginator.num_pages:
return Response({'code': 400, 'msg': '页码超出范围', 'data': {}}, status=400)
@@ -1405,7 +1406,7 @@ class ShangjiaMobanListView(APIView):
label_name = ''
if moban.chenghao_id:
try:
ch = Chenghao.objects.get(id=moban.chenghao_id)
ch = Chenghao.query.get(id=moban.chenghao_id)
label_name = ch.mingcheng
texiao_json = ch.texiao_miaoshu or ''
except Chenghao.DoesNotExist:
@@ -1521,7 +1522,7 @@ class ShangjiaTianjiaMobanView(APIView):
# 8. 验证商品类型是否存在且可用
try:
shangpin_obj = ShangpinLeixing.objects.get(
shangpin_obj = ShangpinLeixing.query.get(
id=leixing_id,
shenhezhuangtai=1 # 审核通过
)
@@ -1529,7 +1530,7 @@ class ShangjiaTianjiaMobanView(APIView):
return Response({'code': 404, 'msg': '商品类型不存在或已禁用', 'data': {}}, status=404)
# 9. 检查同一用户、同一类型下是否已存在相同介绍的模板
if ShangjiaMoban.objects.filter(
if ShangjiaMoban.query.filter(
yonghu_id=yonghu_id,
leixing_id=leixing_id,
moban_jieshao=jieshao
@@ -1538,7 +1539,7 @@ class ShangjiaTianjiaMobanView(APIView):
# 10. 执行数据库创建(事务)
with transaction.atomic():
moban = ShangjiaMoban.objects.create(
moban = ShangjiaMoban.query.create(
yonghu_id=yonghu_id,
leixing_id=leixing_id,
moban_jieshao=jieshao,
@@ -1597,7 +1598,7 @@ class ShangjiaShanchuMobanView(APIView):
return Response({'code': 400, 'msg': '参数缺失', 'data': {}}, status=400)
try:
moban = ShangjiaMoban.objects.get(id=moban_id, yonghu_id=yonghu_id, leixing_id=leixing_id)
moban = ShangjiaMoban.query.get(id=moban_id, yonghu_id=yonghu_id, leixing_id=leixing_id)
except ShangjiaMoban.DoesNotExist:
return Response({'code': 404, 'msg': '模板不存在', 'data': {}}, status=404)
@@ -1641,7 +1642,7 @@ class ShangjiaGengxinMobanView(APIView):
# 查询模板
try:
moban = ShangjiaMoban.objects.get(
moban = ShangjiaMoban.query.get(
id=moban_id,
yonghu_id=yonghu_id,
leixing_id=leixing_id
@@ -1705,7 +1706,7 @@ class ShangjiaGengxinMobanView(APIView):
# 检查介绍唯一性
if 'moban_jieshao' in update_fields:
if ShangjiaMoban.objects.filter(
if ShangjiaMoban.query.filter(
yonghu_id=yonghu_id,
leixing_id=leixing_id,
moban_jieshao=moban.moban_jieshao
@@ -1770,13 +1771,13 @@ class ShangjiaGenerateLinkView(APIView):
# 商品类型
try:
shangpin_leixing = ShangpinLeixing.objects.get(id=shangpin_type_id, shenhezhuangtai=1)
shangpin_leixing = ShangpinLeixing.query.get(id=shangpin_type_id, shenhezhuangtai=1)
except ShangpinLeixing.DoesNotExist:
return Response({'code': 400, 'msg': '商品类型不存在或已禁用', 'data': {}}, status=400)
# 查询模板
try:
moban = ShangjiaMoban.objects.get(id=moban_id, yonghu_id=user.yonghuid, leixing_id=shangpin_type_id)
moban = ShangjiaMoban.query.get(id=moban_id, yonghu_id=user.yonghuid, leixing_id=shangpin_type_id)
except ShangjiaMoban.DoesNotExist:
return Response({'code': 400, 'msg': '模板不存在', 'data': {}}, status=400)
@@ -1786,7 +1787,7 @@ class ShangjiaGenerateLinkView(APIView):
# 利率
try:
lilu = float(Lilubiao.objects.get(fadanpingtai='3').lilu) or 1.0
lilu = float(Lilubiao.query.get(fadanpingtai='3').lilu) or 1.0
except Lilubiao.DoesNotExist:
lilu = 1.0
dashou_fencheng = Decimal(str(round(float(jiage) * lilu, 2)))
@@ -1806,7 +1807,7 @@ class ShangjiaGenerateLinkView(APIView):
label_name = ''
if chenghao_id:
try:
label_name = Chenghao.objects.get(id=chenghao_id).mingcheng
label_name = Chenghao.query.get(id=chenghao_id).mingcheng
except Chenghao.DoesNotExist:
pass
@@ -1823,7 +1824,7 @@ class ShangjiaGenerateLinkView(APIView):
raw = f"{timestamp}:{dd_id}:{uid}:{salt}"
token = hashlib.sha256(raw.encode()).hexdigest()[:24]
# 确保唯一性(极小概率重复再试一次)
if ShangjiaLianjie.objects.filter(lianjie_token=token).exists():
if ShangjiaLianjie.query.filter(lianjie_token=token).exists():
return generate_secure_token(dd_id, uid)
return token
@@ -1836,7 +1837,7 @@ class ShangjiaGenerateLinkView(APIView):
secure_token = generate_secure_token(dingdan_id, user.yonghuid)
# 创建订单主表
dingdan = Dingdan.objects.create(
dingdan = Dingdan.query.create(
dingdan_id=dingdan_id,
zhuangtai=13,
fadan_pingtai=2,
@@ -1852,7 +1853,7 @@ class ShangjiaGenerateLinkView(APIView):
)
# 商家扩展表
DingdanShangjia.objects.create(
DingdanShangjia.query.create(
dingdan=dingdan,
shangjia_id=user.yonghuid,
sjnicheng=shangjia.nicheng or f"商家{user.yonghuid}",
@@ -1861,13 +1862,13 @@ class ShangjiaGenerateLinkView(APIView):
# 关联标签
if chenghao_id:
try:
ch = Chenghao.objects.get(id=chenghao_id)
DingdanBiaoqian.objects.create(dingdan=dingdan, chenghao=ch)
ch = Chenghao.query.get(id=chenghao_id)
DingdanBiaoqian.query.create(dingdan=dingdan, chenghao=ch)
except Chenghao.DoesNotExist:
logger.warning(f"称号{chenghao_id}不存在,跳过关联")
# 更新商家余额和统计
UserShangjia.objects.filter(id=shangjia.id).update(
UserShangjia.query.filter(id=shangjia.id).update(
fabu=F('fabu') + 1,
yue=F('yue') - jiage,
jinridingdan=F('jinridingdan') + 1,
@@ -1878,7 +1879,7 @@ class ShangjiaGenerateLinkView(APIView):
# 生成链接并保存
link_url = generate_link_url(secure_token)
lianjie_obj = ShangjiaLianjie.objects.create(
lianjie_obj = ShangjiaLianjie.query.create(
yonghu_id=user.yonghuid,
leixing_id=shangpin_type_id,
moban_id=moban_id,
@@ -1890,7 +1891,7 @@ class ShangjiaGenerateLinkView(APIView):
)
# 更新模板发布数量
ShangjiaMoban.objects.filter(id=moban_id).update(fabu_shuliang=F('fabu_shuliang') + 1)
ShangjiaMoban.query.filter(id=moban_id).update(fabu_shuliang=F('fabu_shuliang') + 1)
shangjia.refresh_from_db()
logger.info(f"链接生成成功 - 订单ID: {dingdan_id}, 标签: {label_name}")
@@ -1937,11 +1938,11 @@ class ShangjiaLianjieListView(APIView):
# 校验模板归属
try:
moban = ShangjiaMoban.objects.get(id=moban_id, yonghu_id=yonghu_id)
moban = ShangjiaMoban.query.get(id=moban_id, yonghu_id=yonghu_id)
except ShangjiaMoban.DoesNotExist:
return Response({'code': 404, 'msg': '模板不存在或无权查看', 'data': {}}, status=404)
links = ShangjiaLianjie.objects.filter(
links = ShangjiaLianjie.query.filter(
yonghu_id=yonghu_id,
moban_id=moban_id,
is_used=(used == 1)
@@ -2136,7 +2137,7 @@ class KehuGetDingdanLianjieView(APIView):
# 5. 查询链接记录
try:
lianjie_obj = ShangjiaLianjie.objects.select_related().get(lianjie_token=token)
lianjie_obj = ShangjiaLianjie.query.select_related().get(lianjie_token=token)
logger.info(f"找到链接记录 - 链接ID: {lianjie_obj.id}, 商家ID: {lianjie_obj.yonghu_id}")
except ShangjiaLianjie.DoesNotExist:
logger.warning(f"链接不存在 - Token: {token[:8]}..., IP: {client_ip}")
@@ -2184,12 +2185,12 @@ class KehuGetDingdanLianjieView(APIView):
if lianjie_obj.dingdan_id:
try:
# 查询订单主表
dingdan_obj = Dingdan.objects.get(dingdan_id=lianjie_obj.dingdan_id)
dingdan_obj = Dingdan.query.get(dingdan_id=lianjie_obj.dingdan_id)
# 获取商家昵称
shangjia_nicheng = ''
try:
user_main = UserMain.objects.get(yonghuid=lianjie_obj.yonghu_id)
user_main = UserMain.query.get(yonghuid=lianjie_obj.yonghu_id)
shangjia_obj = user_main.shop_profile
shangjia_nicheng = shangjia_obj.nicheng
except (UserMain.DoesNotExist, UserShangjia.DoesNotExist):
@@ -2234,7 +2235,7 @@ class KehuGetDingdanLianjieView(APIView):
# 9.2 获取商家标识
shangjia_biaoshi = ''
try:
shangjia_kuozhan = DingdanShangjia.objects.select_related('dingdan').filter(
shangjia_kuozhan = DingdanShangjia.query.select_related('dingdan').filter(
dingdan__dingdan_id=lianjie_obj.dingdan_id
).first()
@@ -2435,7 +2436,7 @@ class KehuTianxieDingdanView(APIView):
# 9. 查询链接记录
try:
lianjie_obj = ShangjiaLianjie.objects.get(lianjie_token=token)
lianjie_obj = ShangjiaLianjie.query.get(lianjie_token=token)
logger.info(
f"找到链接记录 - 链接ID: {lianjie_obj.id}, 商家ID: {lianjie_obj.yonghu_id}, 是否已使用: {lianjie_obj.is_used}")
except ShangjiaLianjie.DoesNotExist:
@@ -2471,7 +2472,7 @@ class KehuTianxieDingdanView(APIView):
# 验证打手是否存在且有效
try:
# 先查询用户主表
dashou_user = UserMain.objects.get(yonghuid=zhiding_dashou)
dashou_user = UserMain.query.get(yonghuid=zhiding_dashou)
logger.info(f"找到打手用户 - 用户ID: {zhiding_dashou}")
# 通过反向关系获取打手扩展信息
@@ -2531,7 +2532,7 @@ class KehuTianxieDingdanView(APIView):
logger.error(f"链接记录中订单ID为空 - 链接ID: {lianjie_obj.id}")
raise ValueError("订单ID为空")
dingdan_obj = Dingdan.objects.get(dingdan_id=lianjie_obj.dingdan_id)
dingdan_obj = Dingdan.query.get(dingdan_id=lianjie_obj.dingdan_id)
# 检查订单状态是否为13灰色状态
if dingdan_obj.zhuangtai != 13:
@@ -2569,7 +2570,7 @@ class KehuTianxieDingdanView(APIView):
# 获取商家信息用于返回
try:
user_main = UserMain.objects.get(yonghuid=lianjie_obj.yonghu_id)
user_main = UserMain.query.get(yonghuid=lianjie_obj.yonghu_id)
shangjia_obj = user_main.shop_profile
shangjia_mingcheng = shangjia_obj.nicheng
except:
@@ -2621,7 +2622,7 @@ class KehuTianxieDingdanView(APIView):
def _get_game_type_name(self, leixing_id):
try:
gt = ShangpinLeixing.objects.filter(id=leixing_id).first()
gt = ShangpinLeixing.query.filter(id=leixing_id).first()
return gt.jieshao if gt else '游戏订单'
except Exception as e:
logger.error(f"获取游戏类型名称异常: {e}")
@@ -2635,7 +2636,7 @@ class KehuTianxieDingdanView(APIView):
try:
# 获取游戏类型名称
try:
leixing_obj = ShangpinLeixing.objects.get(id=dingdan.leixing_id)
leixing_obj = ShangpinLeixing.query.get(id=dingdan.leixing_id)
game_type = leixing_obj.jieshao
except:
game_type = '未知游戏'
@@ -2697,7 +2698,7 @@ class GuanZhuAListView(APIView):
def post(self, request):
try:
# 查询类型为3的所有记录
qs = Tupianpeizhi.objects.filter(leixing=3)
qs = Tupianpeizhi.query.filter(leixing=3)
if not qs.exists():
return Response({
'code': 0,
@@ -3168,7 +3169,7 @@ class PopupConfigView(APIView):
# 3. 查询页面配置
try:
popup_page = PopupPage.objects.get(page_key=page_key, is_active=True)
popup_page = PopupPage.query.get(page_key=page_key, is_active=True)
except PopupPage.DoesNotExist:
# 该页面没有配置弹窗,返回空
return Response({
@@ -3181,7 +3182,7 @@ class PopupConfigView(APIView):
# 4. 查询该页面下所有启用的弹窗(且在有效时间范围内)
now = timezone.now()
popups = PopupConfig.objects.filter(
popups = PopupConfig.query.filter(
page=popup_page,
is_active=True,
start_time__lte=now,
@@ -3215,7 +3216,7 @@ class GetWithdrawModeView(APIView):
def post(self, request, *args, **kwargs):
# 尝试获取 ID=1 的记录
config = WithdrawConfig.objects.filter(id=1).first()
config = WithdrawConfig.query.filter(id=1).first()
# 如果存在则取实际值,否则默认 2手动提现
mode = config.mode if config else 2
@@ -3278,16 +3279,16 @@ class CheckPhoneAuthView(APIView):
"""
try:
# 先确认用户是打手
UserDashou.objects.get(user=user)
UserDashou.query.get(user=user)
except UserDashou.DoesNotExist:
return False
# 检查是否有任意会员购买记录
return Huiyuangoumai.objects.filter(yonghu_id=user.yonghuid).exists()
return Huiyuangoumai.query.filter(yonghu_id=user.yonghuid).exists()
def _shangjia_meets_threshold(self, user):
"""商家条件:发布订单总数 fabu >= 5"""
try:
shop = UserShangjia.objects.get(user=user)
shop = UserShangjia.query.get(user=user)
except UserShangjia.DoesNotExist:
return False
return shop.fabu >= 5
@@ -3295,7 +3296,7 @@ class CheckPhoneAuthView(APIView):
def _guanshi_meets_threshold(self, user):
"""管事条件:充值分佣总额 chongzhifenrun >= 15"""
try:
guanshi = UserGuanshi.objects.get(user=user)
guanshi = UserGuanshi.query.get(user=user)
except UserGuanshi.DoesNotExist:
return False
return guanshi.chongzhifenrun >= 15
@@ -3303,7 +3304,7 @@ class CheckPhoneAuthView(APIView):
def _zuzhang_meets_threshold(self, user):
"""组长条件:分佣总额 fenyong_zonge >= 2"""
try:
zuzhang = UserZuzhang.objects.get(user=user)
zuzhang = UserZuzhang.query.get(user=user)
except UserZuzhang.DoesNotExist:
return False
return zuzhang.fenyong_zonge >= 2
@@ -3311,7 +3312,7 @@ class CheckPhoneAuthView(APIView):
def _boss_meets_threshold(self, user):
"""老板条件:消费总额 zonge >= 20"""
try:
boss = UserBoss.objects.get(user=user)
boss = UserBoss.query.get(user=user)
except UserBoss.DoesNotExist:
return False
return boss.zonge >= 20