累计改动汇总(相对远程,全在 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():
|
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:
|
if not dingdan:
|
||||||
return Response({'code': 2, 'msg': '订单不存在', 'data': None})
|
return Response({'code': 2, 'msg': '订单不存在', 'data': None})
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ class WechatPayNotifyView(APIView):
|
|||||||
|
|
||||||
# 锁定订单防止并发
|
# 锁定订单防止并发
|
||||||
try:
|
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:
|
except Exception as e:
|
||||||
logger.error(f"查询订单异常: {e}")
|
logger.error(f"查询订单异常: {e}")
|
||||||
raise
|
raise
|
||||||
@@ -328,7 +328,7 @@ class WechatPayNotifyView(APIView):
|
|||||||
logger.info(f"进入 _handle_failure, out_trade_no={out_trade_no}")
|
logger.info(f"进入 _handle_failure, out_trade_no={out_trade_no}")
|
||||||
|
|
||||||
try:
|
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:
|
if not dingdan:
|
||||||
logger.warning(f"订单不存在: {out_trade_no}")
|
logger.warning(f"订单不存在: {out_trade_no}")
|
||||||
return
|
return
|
||||||
@@ -504,7 +504,7 @@ class PaymentVerifyView(APIView):
|
|||||||
"""
|
"""
|
||||||
with transaction.atomic():
|
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:
|
if dingdan.Status != 9:
|
||||||
# 订单状态已被其他进程更新,直接返回(幂等)
|
# 订单状态已被其他进程更新,直接返回(幂等)
|
||||||
return
|
return
|
||||||
@@ -2388,7 +2388,7 @@ class ShangjiaJiesuanView(APIView):
|
|||||||
try:
|
try:
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
# 4. 查询订单并加锁(修复并发问题)
|
# 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(
|
shangjia_kuozhan = MerchantOrderExt.query.filter(
|
||||||
@@ -3627,7 +3627,7 @@ class QiangdanView(APIView):
|
|||||||
|
|
||||||
def _validate_and_lock_order(self, dingdan_id, dashou_yonghuid):
|
def _validate_and_lock_order(self, dingdan_id, dashou_yonghuid):
|
||||||
try:
|
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]:
|
if order.Status not in [1, 7]:
|
||||||
return "订单状态不可抢"
|
return "订单状态不可抢"
|
||||||
if order.Status == 7:
|
if order.Status == 7:
|
||||||
@@ -5466,7 +5466,7 @@ class AdTongYiTuiKuanPingTai(APIView):
|
|||||||
# 7. 查询订单主表(加锁)
|
# 7. 查询订单主表(加锁)
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
try:
|
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:
|
except Order.DoesNotExist:
|
||||||
return Response(
|
return Response(
|
||||||
{'code': 404, 'message': '订单不存在', 'data': None},
|
{'code': 404, 'message': '订单不存在', 'data': None},
|
||||||
|
|||||||
Reference in New Issue
Block a user