修复了一些

This commit is contained in:
2026-06-18 18:02:45 +08:00
parent e67bc17fa2
commit 53049d1588
20 changed files with 3671 additions and 2541 deletions

View File

@@ -14,7 +14,7 @@ from decimal import Decimal
import logging
# 导入模型 - 确保路径正确
from orders.models import Dingdan
from orders.models import Order
from users.models import UserDashou, UserShangjia
from gvsdsdk.models import User
from utils.celery_utils import safe_decimal_operation, log_task_execution, rollback_on_failure
@@ -40,25 +40,25 @@ def process_expired_order(self, dingdan_id):
with transaction.atomic():
# 获取订单,同时锁定记录
order = Dingdan.objects.select_for_update().get(
dingdan_id=dingdan_id
order = Order.objects.select_for_update().get(
OrderID=dingdan_id
)
# 再次检查订单状态是否为8
if order.zhuangtai != 8:
logger.info(f"订单{dingdan_id}状态已不是8当前:{order.zhuangtai}),跳过处理")
if order.Status != 8:
logger.info(f"订单{dingdan_id}状态已不是8当前:{order.Status}),跳过处理")
return f"订单{dingdan_id}状态已变更,跳过处理"
# 获取发单平台类型
fadan_pingtai = order.fadan_pingtai
fadan_pingtai = order.Platform
# 获取打手ID和分成金额
dashou_id = order.jiedan_dashou_id
dashou_fencheng = safe_decimal_operation(order.dashou_fencheng)
dashou_id = order.PlayerID
dashou_fencheng = safe_decimal_operation(order.PlayerCommission)
# 1. 更新订单状态为3已完成
order.zhuangtai = 3
order.save(update_fields=['zhuangtai'])
order.Status = 3
order.save(update_fields=['Status'])
# 2. 更新打手信息(如果存在)
updated_dashou = False
@@ -121,7 +121,7 @@ def process_expired_order(self, dingdan_id):
log_task_execution(f"自动结算订单 {dingdan_id}", True, result_msg)
return result_msg
except Dingdan.DoesNotExist:
except Order.DoesNotExist:
error_msg = f"订单{dingdan_id}不存在"
logger.warning(error_msg)
return error_msg
@@ -155,10 +155,10 @@ def check_order_expire_task():
check_time = timezone.now() - timedelta(seconds=settings.ORDER_EXPIRE_SECONDS + 86400) # 48+24=72小时
# 查询状态为8且创建时间早于检查时间的订单
expired_orders = Dingdan.query.filter(
zhuangtai=8,
create_time__lt=check_time
).values_list('dingdan_id', flat=True)
expired_orders = Order.query.filter(
Status=8,
CreateTime__lt=check_time
).values_list('OrderID', flat=True)
expired_count = expired_orders.count()