feat: 仅特约商家可更换打手,后台可开关

This commit is contained in:
XingQue
2026-07-27 09:16:27 +08:00
parent b5506f5361
commit 8e71cd4243
4 changed files with 55 additions and 5 deletions

View File

@@ -1785,12 +1785,23 @@ class ZxsjghdsView(APIView):
except AttributeError:
return Response({'code': 1, 'msg': '用户认证失败'}, status=status.HTTP_401_UNAUTHORIZED)
# ========== 2. 提取订单ID ==========
# ========== 2. 仅特约商家可更换打手 ==========
try:
shop_profile = UserShangjia.query.get(user__UserUID=yonghuid)
except UserShangjia.DoesNotExist:
return Response({'code': 3, 'msg': '商家信息不存在'}, status=status.HTTP_403_FORBIDDEN)
if not bool(getattr(shop_profile, 'is_teyue_shangjia', False)):
return Response(
{'code': 403, 'msg': '仅特约商家可更换打手,请申请退款或结算'},
status=status.HTTP_403_FORBIDDEN,
)
# ========== 3. 提取订单ID ==========
dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip()
if not dingdan_id:
return Response({'code': 2, 'msg': '订单ID不能为空'}, status=status.HTTP_400_BAD_REQUEST)
# ========== 3. 查询订单并校验权限 ==========
# ========== 4. 查询订单并校验权限 ==========
try:
# 关联查询商家扩展表,确保当前商家是该订单的发布者
shangjia_kuozhan = MerchantOrderExt.query.select_related('Order').get(
@@ -1802,7 +1813,7 @@ class ZxsjghdsView(APIView):
old_order = shangjia_kuozhan.Order
# ========== 4. 状态校验(仅允许进行中或结算中) ==========
# ========== 5. 状态校验(仅允许进行中或结算中) ==========
if old_order.Status not in [2, 8]:
return Response({'code': 4, 'msg': '当前订单状态不允许更换打手'}, status=status.HTTP_400_BAD_REQUEST)