累计改动汇总(相对远程,全在 orders/views.py)
处罚扣积分:dashou.jifen(不再误用 DeductedPoints) 商家/打手详情:兼容 dingdan_id 与 OrderID 抢单等:Dingdan.objects → Order.query
This commit is contained in:
@@ -87,7 +87,7 @@ class PaymentFailView(APIView):
|
||||
|
||||
with transaction.atomic():
|
||||
# 锁定订单防止并发
|
||||
dingdan = Dingdan.objects.select_for_update().filter(OrderID=dingdanid).first()
|
||||
dingdan = Order.query.select_for_update().filter(OrderID=dingdanid).first()
|
||||
if not dingdan:
|
||||
return Response({'code': 2, 'msg': '订单不存在', 'data': None})
|
||||
|
||||
@@ -189,7 +189,7 @@ class WechatPayNotifyView(APIView):
|
||||
|
||||
# 锁定订单防止并发
|
||||
try:
|
||||
dingdan = Dingdan.objects.select_for_update().filter(OrderID=out_trade_no).first()
|
||||
dingdan = Order.query.select_for_update().filter(OrderID=out_trade_no).first()
|
||||
except Exception as e:
|
||||
logger.error(f"查询订单异常: {e}")
|
||||
raise
|
||||
@@ -328,7 +328,7 @@ class WechatPayNotifyView(APIView):
|
||||
logger.info(f"进入 _handle_failure, out_trade_no={out_trade_no}")
|
||||
|
||||
try:
|
||||
dingdan = Dingdan.objects.select_for_update().filter(OrderID=out_trade_no).first()
|
||||
dingdan = Order.query.select_for_update().filter(OrderID=out_trade_no).first()
|
||||
if not dingdan:
|
||||
logger.warning(f"订单不存在: {out_trade_no}")
|
||||
return
|
||||
@@ -504,7 +504,7 @@ class PaymentVerifyView(APIView):
|
||||
"""
|
||||
with transaction.atomic():
|
||||
# 重新锁定订单,防止并发更新
|
||||
dingdan = Dingdan.objects.select_for_update().get(pk=dingdan.pk)
|
||||
dingdan = Order.query.select_for_update().get(pk=dingdan.pk)
|
||||
if dingdan.Status != 9:
|
||||
# 订单状态已被其他进程更新,直接返回(幂等)
|
||||
return
|
||||
@@ -2388,7 +2388,7 @@ class ShangjiaJiesuanView(APIView):
|
||||
try:
|
||||
with transaction.atomic():
|
||||
# 4. 查询订单并加锁(修复并发问题)
|
||||
order = Dingdan.objects.select_for_update().get(OrderID=dingdan_id)
|
||||
order = Order.query.select_for_update().get(OrderID=dingdan_id)
|
||||
|
||||
# 验证订单是否属于当前商家
|
||||
shangjia_kuozhan = MerchantOrderExt.query.filter(
|
||||
@@ -3627,7 +3627,7 @@ class QiangdanView(APIView):
|
||||
|
||||
def _validate_and_lock_order(self, dingdan_id, dashou_yonghuid):
|
||||
try:
|
||||
order = Dingdan.objects.select_for_update().get(OrderID=dingdan_id)
|
||||
order = Order.query.select_for_update().get(OrderID=dingdan_id)
|
||||
if order.Status not in [1, 7]:
|
||||
return "订单状态不可抢"
|
||||
if order.Status == 7:
|
||||
@@ -5466,7 +5466,7 @@ class AdTongYiTuiKuanPingTai(APIView):
|
||||
# 7. 查询订单主表(加锁)
|
||||
with transaction.atomic():
|
||||
try:
|
||||
dingdan_obj = Dingdan.objects.select_related('pingtai_kuozhan').select_for_update().get(OrderID=dingdan_id)
|
||||
dingdan_obj = Order.query.select_related('pingtai_kuozhan').select_for_update().get(OrderID=dingdan_id)
|
||||
except Order.DoesNotExist:
|
||||
return Response(
|
||||
{'code': 404, 'message': '订单不存在', 'data': None},
|
||||
|
||||
Reference in New Issue
Block a user