修复了一些
This commit is contained in:
148
config/views.py
148
config/views.py
@@ -42,7 +42,7 @@ from users.models import (
|
||||
)
|
||||
from gvsdsdk.models import User
|
||||
|
||||
from orders.models import Lilubiao, Dingdan, DingdanShangjia
|
||||
from orders.models import CommissionRate, Order, MerchantOrderExt
|
||||
from orders.notice_tasks import dingdan_guangbo
|
||||
|
||||
from rank.models import Chenghao, DingdanBiaoqian
|
||||
@@ -226,12 +226,12 @@ class AdminConfigQueryView(APIView):
|
||||
})
|
||||
|
||||
# 查询利率配置
|
||||
platform_rate_obj = Lilubiao.query.filter(fadanpingtai='1').first()
|
||||
shop_rate_obj = Lilubiao.query.filter(fadanpingtai='3').first()
|
||||
platform_rate_obj = CommissionRate.query.filter(Platform='1').first()
|
||||
shop_rate_obj = CommissionRate.query.filter(Platform='3').first()
|
||||
# 🔴【新增】打手提现抽成利率(字符5)
|
||||
dashou_withdraw_obj = Lilubiao.query.filter(fadanpingtai='5').first()
|
||||
dashou_withdraw_obj = CommissionRate.query.filter(Platform='5').first()
|
||||
# 🔴【新增】管事提现抽成利率(字符6)
|
||||
guanshi_withdraw_obj = Lilubiao.query.filter(fadanpingtai='6').first()
|
||||
guanshi_withdraw_obj = CommissionRate.query.filter(Platform='6').first()
|
||||
|
||||
# 构建返回数据
|
||||
data = {
|
||||
@@ -241,14 +241,14 @@ class AdminConfigQueryView(APIView):
|
||||
},
|
||||
'qq_groups': qq_groups,
|
||||
'rates': {
|
||||
'platform_rate': float(platform_rate_obj.lilu) if platform_rate_obj and platform_rate_obj.lilu else 0.0,
|
||||
'shop_rate': float(shop_rate_obj.lilu) if shop_rate_obj and shop_rate_obj.lilu else 0.0,
|
||||
'platform_rate': float(platform_rate_obj.Rate) if platform_rate_obj and platform_rate_obj.Rate else 0.0,
|
||||
'shop_rate': float(shop_rate_obj.Rate) if shop_rate_obj and shop_rate_obj.Rate else 0.0,
|
||||
# 🔴【新增】打手提现抽成利率
|
||||
'dashou_withdraw_rate': float(
|
||||
dashou_withdraw_obj.lilu) if dashou_withdraw_obj and dashou_withdraw_obj.lilu else 0.0,
|
||||
dashou_withdraw_obj.Rate) if dashou_withdraw_obj and dashou_withdraw_obj.Rate else 0.0,
|
||||
# 🔴【新增】管事提现抽成利率
|
||||
'guanshi_withdraw_rate': float(
|
||||
guanshi_withdraw_obj.lilu) if guanshi_withdraw_obj and guanshi_withdraw_obj.lilu else 0.0
|
||||
guanshi_withdraw_obj.Rate) if guanshi_withdraw_obj and guanshi_withdraw_obj.Rate else 0.0
|
||||
|
||||
}
|
||||
}
|
||||
@@ -504,17 +504,17 @@ class AdminUpdateConfigView(APIView):
|
||||
platform_rate_float = float(platform_rate)
|
||||
if 0 <= platform_rate_float <= 1:
|
||||
# 🔴 修复:查询现有记录,如果不存在则创建
|
||||
platform_rate_obj = Lilubiao.query.filter(fadanpingtai='1').first()
|
||||
platform_rate_obj = CommissionRate.query.filter(Platform='1').first()
|
||||
|
||||
if platform_rate_obj:
|
||||
# 更新现有记录
|
||||
platform_rate_obj.lilu = platform_rate_float
|
||||
platform_rate_obj.Rate = platform_rate_float
|
||||
platform_rate_obj.save()
|
||||
else:
|
||||
# 创建新记录
|
||||
platform_rate_obj = Lilubiao.query.create(
|
||||
lilu=platform_rate_float,
|
||||
fadanpingtai='1'
|
||||
platform_rate_obj = CommissionRate.query.create(
|
||||
Rate=platform_rate_float,
|
||||
Platform='1'
|
||||
)
|
||||
|
||||
updated_rates['platform_rate'] = platform_rate_float
|
||||
@@ -538,17 +538,17 @@ class AdminUpdateConfigView(APIView):
|
||||
shop_rate_float = float(shop_rate)
|
||||
if 0 <= shop_rate_float <= 1:
|
||||
# 🔴 修复:查询现有记录,如果不存在则创建
|
||||
shop_rate_obj = Lilubiao.query.filter(fadanpingtai='3').first()
|
||||
shop_rate_obj = CommissionRate.query.filter(Platform='3').first()
|
||||
|
||||
if shop_rate_obj:
|
||||
# 更新现有记录
|
||||
shop_rate_obj.lilu = shop_rate_float
|
||||
shop_rate_obj.Rate = shop_rate_float
|
||||
shop_rate_obj.save()
|
||||
else:
|
||||
# 创建新记录
|
||||
shop_rate_obj = Lilubiao.query.create(
|
||||
lilu=shop_rate_float,
|
||||
fadanpingtai='3'
|
||||
shop_rate_obj = CommissionRate.query.create(
|
||||
Rate=shop_rate_float,
|
||||
Platform='3'
|
||||
)
|
||||
|
||||
updated_rates['shop_rate'] = shop_rate_float
|
||||
@@ -575,17 +575,17 @@ class AdminUpdateConfigView(APIView):
|
||||
dashou_withdraw_rate_float = float(dashou_withdraw_rate)
|
||||
if 0 <= dashou_withdraw_rate_float <= 1:
|
||||
# 查询现有记录,如果不存在则创建
|
||||
dashou_withdraw_obj = Lilubiao.query.filter(fadanpingtai='5').first()
|
||||
dashou_withdraw_obj = CommissionRate.query.filter(Platform='5').first()
|
||||
|
||||
if dashou_withdraw_obj:
|
||||
# 更新现有记录
|
||||
dashou_withdraw_obj.lilu = dashou_withdraw_rate_float
|
||||
dashou_withdraw_obj.Rate = dashou_withdraw_rate_float
|
||||
dashou_withdraw_obj.save()
|
||||
else:
|
||||
# 创建新记录
|
||||
dashou_withdraw_obj = Lilubiao.query.create(
|
||||
lilu=dashou_withdraw_rate_float,
|
||||
fadanpingtai='5'
|
||||
dashou_withdraw_obj = CommissionRate.query.create(
|
||||
Rate=dashou_withdraw_rate_float,
|
||||
Platform='5'
|
||||
)
|
||||
|
||||
updated_rates['dashou_withdraw_rate'] = dashou_withdraw_rate_float
|
||||
@@ -609,17 +609,17 @@ class AdminUpdateConfigView(APIView):
|
||||
guanshi_withdraw_rate_float = float(guanshi_withdraw_rate)
|
||||
if 0 <= guanshi_withdraw_rate_float <= 1:
|
||||
# 查询现有记录,如果不存在则创建
|
||||
guanshi_withdraw_obj = Lilubiao.query.filter(fadanpingtai='6').first()
|
||||
guanshi_withdraw_obj = CommissionRate.query.filter(Platform='6').first()
|
||||
|
||||
if guanshi_withdraw_obj:
|
||||
# 更新现有记录
|
||||
guanshi_withdraw_obj.lilu = guanshi_withdraw_rate_float
|
||||
guanshi_withdraw_obj.Rate = guanshi_withdraw_rate_float
|
||||
guanshi_withdraw_obj.save()
|
||||
else:
|
||||
# 创建新记录
|
||||
guanshi_withdraw_obj = Lilubiao.query.create(
|
||||
lilu=guanshi_withdraw_rate_float,
|
||||
fadanpingtai='6'
|
||||
guanshi_withdraw_obj = CommissionRate.query.create(
|
||||
Rate=guanshi_withdraw_rate_float,
|
||||
Platform='6'
|
||||
)
|
||||
|
||||
updated_rates['guanshi_withdraw_rate'] = guanshi_withdraw_rate_float
|
||||
@@ -1788,8 +1788,8 @@ class ShangjiaGenerateLinkView(APIView):
|
||||
|
||||
# 利率
|
||||
try:
|
||||
lilu = float(Lilubiao.query.get(fadanpingtai='3').lilu) or 1.0
|
||||
except Lilubiao.DoesNotExist:
|
||||
lilu = float(CommissionRate.query.get(Platform='3').Rate) or 1.0
|
||||
except CommissionRate.DoesNotExist:
|
||||
lilu = 1.0
|
||||
dashou_fencheng = Decimal(str(round(float(jiage) * lilu, 2)))
|
||||
|
||||
@@ -1838,26 +1838,26 @@ class ShangjiaGenerateLinkView(APIView):
|
||||
secure_token = generate_secure_token(dingdan_id, user.yonghuid)
|
||||
|
||||
# 创建订单主表
|
||||
dingdan = Dingdan.query.create(
|
||||
dingdan_id=dingdan_id,
|
||||
zhuangtai=13,
|
||||
fadan_pingtai=2,
|
||||
jine=jiage,
|
||||
dashou_fencheng=dashou_fencheng,
|
||||
leixing_id=shangpin_type_id,
|
||||
dingdan = Order.query.create(
|
||||
OrderID=dingdan_id,
|
||||
Status=13,
|
||||
Platform=2,
|
||||
Amount=jiage,
|
||||
PlayerCommission=dashou_fencheng,
|
||||
ProductTypeID=shangpin_type_id,
|
||||
yaoqiuleixing=final_yaoqiuleixing,
|
||||
huiyuan_id=final_huiyuan_id,
|
||||
yongjin=final_yongjin,
|
||||
jieshao=moban.moban_jieshao[:2000],
|
||||
Description=moban.moban_jieshao[:2000],
|
||||
user1_id=f"Sj{user.yonghuid}",
|
||||
tupian=user.avatar or '',
|
||||
ImageURL=user.avatar or '',
|
||||
)
|
||||
|
||||
# 商家扩展表
|
||||
DingdanShangjia.query.create(
|
||||
dingdan=dingdan,
|
||||
shangjia_id=user.yonghuid,
|
||||
sjnicheng=shangjia.nicheng or f"商家{user.yonghuid}",
|
||||
MerchantOrderExt.query.create(
|
||||
Order=dingdan,
|
||||
MerchantID=user.yonghuid,
|
||||
MerchantNickname=shangjia.nicheng or f"商家{user.yonghuid}",
|
||||
)
|
||||
|
||||
# 关联标签
|
||||
@@ -2186,7 +2186,7 @@ class KehuGetDingdanLianjieView(APIView):
|
||||
if lianjie_obj.dingdan_id:
|
||||
try:
|
||||
# 查询订单主表
|
||||
dingdan_obj = Dingdan.query.get(dingdan_id=lianjie_obj.dingdan_id)
|
||||
dingdan_obj = Order.query.get(OrderID=lianjie_obj.dingdan_id)
|
||||
|
||||
# 获取商家昵称
|
||||
shangjia_nicheng = ''
|
||||
@@ -2207,10 +2207,10 @@ class KehuGetDingdanLianjieView(APIView):
|
||||
|
||||
# ========== 构建订单信息 ==========
|
||||
dingdan_info = {
|
||||
'jieshao': dingdan_obj.jieshao or '',
|
||||
'jiage': str(dingdan_obj.jine) if dingdan_obj.jine is not None else '0.00', # 金额字段名是 jine
|
||||
'jieshao': dingdan_obj.Description or '',
|
||||
'jiage': str(dingdan_obj.Amount) if dingdan_obj.Amount is not None else '0.00', # 金额字段名是 Amount
|
||||
'shangjia_mingcheng': shangjia_nicheng,
|
||||
'zhuangtai': dingdan_obj.zhuangtai,
|
||||
'zhuangtai': dingdan_obj.Status,
|
||||
# 新增配置字段
|
||||
'kefu_link': kefu_link,
|
||||
'oss_url': oss_url,
|
||||
@@ -2223,25 +2223,25 @@ class KehuGetDingdanLianjieView(APIView):
|
||||
# 如果已使用,返回已填写的信息
|
||||
if lianjie_obj.is_used:
|
||||
dingdan_info.update({
|
||||
'youxi_nicheng': dingdan_obj.nicheng or '',
|
||||
'youxi_nicheng': dingdan_obj.Nickname or '',
|
||||
'zhiding_dashou': dingdan_obj.zhiding_id or '',
|
||||
'beizhu': dingdan_obj.beizhu or '',
|
||||
'beizhu': dingdan_obj.Remark or '',
|
||||
})
|
||||
|
||||
# 获取聊天相关标识
|
||||
# 9.1 获取接单打手ID
|
||||
jiedan_dashou_id = dingdan_obj.jiedan_dashou_id
|
||||
jiedan_dashou_id = dingdan_obj.PlayerID
|
||||
dashou_biaoshi = f'Ds{jiedan_dashou_id}' if jiedan_dashou_id else ''
|
||||
|
||||
# 9.2 获取商家标识
|
||||
shangjia_biaoshi = ''
|
||||
try:
|
||||
shangjia_kuozhan = DingdanShangjia.query.select_related('dingdan').filter(
|
||||
dingdan__dingdan_id=lianjie_obj.dingdan_id
|
||||
shangjia_kuozhan = MerchantOrderExt.query.select_related('Order').filter(
|
||||
Order__OrderID=lianjie_obj.dingdan_id
|
||||
).first()
|
||||
|
||||
if shangjia_kuozhan and shangjia_kuozhan.shangjia_id:
|
||||
shangjia_biaoshi = f'Sj{shangjia_kuozhan.shangjia_id}'
|
||||
if shangjia_kuozhan and shangjia_kuozhan.MerchantID:
|
||||
shangjia_biaoshi = f'Sj{shangjia_kuozhan.MerchantID}'
|
||||
logger.info(f"生成商家标识: {shangjia_biaoshi}")
|
||||
else:
|
||||
logger.info(f"订单 {lianjie_obj.dingdan_id} 没有商家订单扩展信息")
|
||||
@@ -2257,7 +2257,7 @@ class KehuGetDingdanLianjieView(APIView):
|
||||
|
||||
response_data.update(dingdan_info)
|
||||
|
||||
except Dingdan.DoesNotExist:
|
||||
except Order.DoesNotExist:
|
||||
logger.error(f"订单不存在 - 订单ID: {lianjie_obj.dingdan_id}")
|
||||
response_data.update({
|
||||
'jieshao': '',
|
||||
@@ -2533,12 +2533,12 @@ class KehuTianxieDingdanView(APIView):
|
||||
logger.error(f"链接记录中订单ID为空 - 链接ID: {lianjie_obj.id}")
|
||||
raise ValueError("订单ID为空")
|
||||
|
||||
dingdan_obj = Dingdan.query.get(dingdan_id=lianjie_obj.dingdan_id)
|
||||
dingdan_obj = Order.query.get(OrderID=lianjie_obj.dingdan_id)
|
||||
|
||||
# 检查订单状态是否为13(灰色状态)
|
||||
if dingdan_obj.zhuangtai != 13:
|
||||
if dingdan_obj.Status != 13:
|
||||
logger.warning(
|
||||
f"订单状态不允许修改 - 订单ID: {dingdan_obj.dingdan_id}, 当前状态: {dingdan_obj.zhuangtai}")
|
||||
f"订单状态不允许修改 - 订单ID: {dingdan_obj.OrderID}, 当前状态: {dingdan_obj.Status}")
|
||||
# 回滚事务
|
||||
transaction.set_rollback(True)
|
||||
return Response({
|
||||
@@ -2548,9 +2548,9 @@ class KehuTianxieDingdanView(APIView):
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
# 更新订单信息
|
||||
dingdan_obj.nicheng = youxi_nicheng # 游戏昵称
|
||||
dingdan_obj.beizhu = beizhu if beizhu else '' # 备注
|
||||
dingdan_obj.zhuangtai = zhuangtai_xin # 新状态:1或7
|
||||
dingdan_obj.Nickname = youxi_nicheng # 游戏昵称
|
||||
dingdan_obj.Remark = beizhu if beizhu else '' # 备注
|
||||
dingdan_obj.Status = zhuangtai_xin # 新状态:1或7
|
||||
|
||||
# 如果是指定打手,设置zhiding_id
|
||||
if zhiding_dashou and zhuangtai_xin == 7:
|
||||
@@ -2558,14 +2558,14 @@ class KehuTianxieDingdanView(APIView):
|
||||
|
||||
dingdan_obj.save()
|
||||
logger.info(
|
||||
f"更新订单成功 - 订单ID: {dingdan_obj.dingdan_id}, 新状态: {zhuangtai_xin}, 指定打手: {zhiding_dashou or '无'}")
|
||||
f"更新订单成功 - 订单ID: {dingdan_obj.OrderID}, 新状态: {zhuangtai_xin}, 指定打手: {zhiding_dashou or '无'}")
|
||||
|
||||
# 构建通知数据(你的 _get_game_type_name 方法保留在视图里直接用)
|
||||
order_info = {
|
||||
'dingdan_id': dingdan_obj.dingdan_id,
|
||||
'game_type': self._get_game_type_name(dingdan_obj.leixing_id),
|
||||
'amount': str(dingdan_obj.jine),
|
||||
'order_desc': (dingdan_obj.jieshao or '')[:50],
|
||||
'dingdan_id': dingdan_obj.OrderID,
|
||||
'game_type': self._get_game_type_name(dingdan_obj.ProductTypeID),
|
||||
'amount': str(dingdan_obj.Amount),
|
||||
'order_desc': (dingdan_obj.Description or '')[:50],
|
||||
}
|
||||
dingdan_guangbo.delay(order_info) # 瞬间返回,不阻塞请求
|
||||
|
||||
@@ -2590,12 +2590,12 @@ class KehuTianxieDingdanView(APIView):
|
||||
'zhuangtai_text': '普通订单' if zhuangtai_xin == 1 else '指定打手订单'
|
||||
}
|
||||
|
||||
logger.info(f"订单提交成功 - 订单ID: {dingdan_obj.dingdan_id}, IP: {client_ip}")
|
||||
logger.info(f"订单提交成功 - 订单ID: {dingdan_obj.OrderID}, IP: {client_ip}")
|
||||
|
||||
# 新方法(行为驱动,更安全)
|
||||
update_shangjia_daily(
|
||||
yonghuid=lianjie_obj.yonghu_id,
|
||||
amount=Decimal(str(dingdan_obj.jine)),
|
||||
amount=Decimal(str(dingdan_obj.Amount)),
|
||||
action=1 # 1 = 派发
|
||||
)
|
||||
|
||||
@@ -2605,7 +2605,7 @@ class KehuTianxieDingdanView(APIView):
|
||||
'data': response_data
|
||||
}, status=status.HTTP_200_OK)
|
||||
|
||||
except Dingdan.DoesNotExist:
|
||||
except Order.DoesNotExist:
|
||||
logger.error(f"订单不存在 - 订单ID: {lianjie_obj.dingdan_id}")
|
||||
return Response({
|
||||
'code': 500,
|
||||
@@ -2637,17 +2637,17 @@ class KehuTianxieDingdanView(APIView):
|
||||
try:
|
||||
# 获取游戏类型名称
|
||||
try:
|
||||
leixing_obj = ShangpinLeixing.query.get(id=dingdan.leixing_id)
|
||||
leixing_obj = ShangpinLeixing.query.get(id=dingdan.ProductTypeID)
|
||||
game_type = leixing_obj.jieshao
|
||||
except:
|
||||
game_type = '未知游戏'
|
||||
|
||||
# 构建订单信息
|
||||
order_info = {
|
||||
'dingdan_id': dingdan.dingdan_id,
|
||||
'dingdan_id': dingdan.OrderID,
|
||||
'game_type': game_type,
|
||||
'amount': str(dingdan.jine),
|
||||
'order_desc': dingdan.jieshao[:50] if dingdan.jieshao else '新订单',
|
||||
'amount': str(dingdan.Amount),
|
||||
'order_desc': dingdan.Description[:50] if dingdan.Description else '新订单',
|
||||
'youxi_nicheng': youxi_nicheng,
|
||||
'order_type': '指定订单' if zhuangtai == 7 else '普通订单',
|
||||
'zhiding_dashou': zhiding_dashou or ''
|
||||
|
||||
Reference in New Issue
Block a user