From 157ac05632a3303073927a0dd45460e882ac90e2 Mon Sep 17 00:00:00 2001 From: XingQue Date: Fri, 19 Jun 2026 23:23:02 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E6=9B=B4=E6=8D=A2=E6=89=93=E6=89=8B=20/ho?= =?UTF-8?q?utai/zxkfghds=20=E9=97=AE=E9=A2=98=EF=BC=9AH5=20=E4=BC=A0=20din?= =?UTF-8?q?gdan=5Fid=EF=BC=8C=E5=90=8E=E7=AB=AF=E5=8F=AA=E8=AF=BB=20OrderI?= =?UTF-8?q?D=20=E2=86=92=20400=E3=80=8C=E5=8F=82=E6=95=B0=E4=B8=8D?= =?UTF-8?q?=E5=AE=8C=E6=95=B4=E3=80=8D=20=E4=BF=AE=E5=A4=8D=EF=BC=9A?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E6=8E=A5=E5=8F=97=20OrderID=20/=20dingdan=5F?= =?UTF-8?q?id=EF=BC=9B=E6=88=90=E5=8A=9F=E5=93=8D=E5=BA=94=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20new=5Fdingdan=5Fid=EF=BC=88=E4=B8=8E=20new=5FOrderI?= =?UTF-8?q?D=20=E4=B8=80=E8=87=B4=EF=BC=89=202.=20=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=BD=9A=E5=8D=95=20/houtai/htfksc=E3=80=81/houtai/kffkdssq=20?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9A=E5=89=8D=E7=AB=AF=E4=BC=A0=20beichu?= =?UTF-8?q?fa=5Fid=E3=80=81chufaliyou=E3=80=81fakuanjine=E3=80=81yingxiang?= =?UTF-8?q?=5Fqiangdan=EF=BC=8C=E5=90=8E=E7=AB=AF=E5=8F=AA=E8=AE=A4=20Pena?= =?UTF-8?q?lizedUserID=E3=80=81Reason=E3=80=81FineAmount=20=E7=AD=89=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=9C=A8=20backend/utils.py=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20pick=5Fpenalty=5Fcreate=5Fparams()?= =?UTF-8?q?=EF=BC=8C=E4=B8=A4=E5=A5=97=E5=AD=97=E6=AE=B5=E5=90=8D=E9=83=BD?= =?UTF-8?q?=E6=94=AF=E6=8C=81=203.=20=E5=90=8E=E5=8F=B0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=EF=BC=88orders/views.py?= =?UTF-8?q?=EF=BC=89=20=E5=89=A9=E4=BD=99=2010=20=E5=A4=84=20=E5=8F=AA?= =?UTF-8?q?=E8=AF=BB=20OrderID=20=E7=9A=84=E6=8E=A5=E5=8F=A3=EF=BC=88?= =?UTF-8?q?=E6=8D=A2=E6=89=93=E6=89=8B=E3=80=81=E9=80=80=E6=AC=BE=E3=80=81?= =?UTF-8?q?=E7=BB=93=E5=8D=95=E3=80=81=E7=BD=9A=E5=8D=95=E7=AD=89=EF=BC=89?= =?UTF-8?q?=E5=B7=B2=E7=BB=9F=E4=B8=80=E5=85=BC=E5=AE=B9=20dingdan=5Fid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/utils.py | 20 +++++++++++++++++++- backend/view.py | 20 +++++++++----------- orders/views.py | 22 +++++++++++----------- 3 files changed, 39 insertions(+), 23 deletions(-) diff --git a/backend/utils.py b/backend/utils.py index 2afb632..17216c1 100644 --- a/backend/utils.py +++ b/backend/utils.py @@ -493,4 +493,22 @@ def check_fadan_permission(permissions, shenfen): for perm, sf in perm_map.items(): if sf == shenfen and perm in permissions: return True - return False \ No newline at end of file + return False + + +def pick_order_id(data): + """兼容前端 dingdan_id 与 SDK 字段 OrderID。""" + return str(data.get('OrderID') or data.get('dingdan_id') or '').strip() + + +def pick_penalty_create_params(data): + """兼容罚单创建:SDK 字段名与旧版拼音字段名。""" + penalized_id = str(data.get('PenalizedUserID') or data.get('beichufa_id') or '').strip() + reason = str(data.get('Reason') or data.get('chufaliyou') or '').strip() + fine_amount = data.get('FineAmount') + if fine_amount is None: + fine_amount = data.get('fakuanjine') + affects = data.get('AffectsGrabbing') + if affects is None: + affects = data.get('yingxiang_qiangdan', 1) + return penalized_id, reason, fine_amount, affects \ No newline at end of file diff --git a/backend/view.py b/backend/view.py index 629add6..141a685 100644 --- a/backend/view.py +++ b/backend/view.py @@ -48,6 +48,8 @@ from .utils import ( SHENFEN_PROFILE_MAP, has_fadan_view_permission, check_fadan_permission, + pick_order_id, + pick_penalty_create_params, ) # models 集中导入 @@ -5831,13 +5833,10 @@ class FaKuanChuangJianView(APIView): def post(self, request): try: username = request.data.get('username', '').strip() - PenalizedUserID = request.data.get('PenalizedUserID', '').strip() + PenalizedUserID, Reason, FineAmount, AffectsGrabbing = pick_penalty_create_params(request.data) shenfen = request.data.get('shenfen') - Reason = request.data.get('Reason', '').strip() - FineAmount = request.data.get('FineAmount') - AffectsGrabbing = request.data.get('AffectsGrabbing', 1) - if not all([username, PenalizedUserID, shenfen, Reason, FineAmount]): + if not all([username, PenalizedUserID, shenfen, Reason, FineAmount is not None]): return Response({'code': 400, 'msg': '参数不完整'}) try: @@ -5930,12 +5929,10 @@ class FineApplyView(APIView): def post(self, request): try: username = request.data.get('username', '').strip() - OrderID = request.data.get('OrderID', '').strip() - Reason = request.data.get('Reason', '').strip() - FineAmount = request.data.get('FineAmount') - AffectsGrabbing = request.data.get('AffectsGrabbing', 1) + OrderID = pick_order_id(request.data) + _, Reason, FineAmount, AffectsGrabbing = pick_penalty_create_params(request.data) - if not all([username, OrderID, Reason, FineAmount]): + if not all([username, OrderID, Reason, FineAmount is not None]): return Response({'code': 400, 'msg': '参数不完整'}) try: @@ -8044,7 +8041,7 @@ class ZxkfghdsView(APIView): def post(self, request): # ========== 1. 参数提取 ========== username = request.data.get('username', '').strip() - OrderID = request.data.get('OrderID', '').strip() + OrderID = pick_order_id(request.data) if not username or not OrderID: logger.warning("更换打手参数不完整") return Response({'code': 400, 'msg': '参数不完整'}) @@ -8234,6 +8231,7 @@ class ZxkfghdsView(APIView): 'msg': '更换成功', 'data': { 'new_OrderID': new_OrderID, + 'new_dingdan_id': new_OrderID, 'new_lianjie': link_url, } }) diff --git a/orders/views.py b/orders/views.py index 2ff01ef..aa4ca4c 100644 --- a/orders/views.py +++ b/orders/views.py @@ -4411,7 +4411,7 @@ class AdGetDingdanXiangQing(APIView): try: # 1. 获取前端参数 qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() if not qianzhanghao or not dingdan_id: return Response( @@ -4617,7 +4617,7 @@ class AdGengHuanDaShou(APIView): try: # 1. 获取前端参数 qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() new_dashou_id = request.data.get('new_dashou_id', '').strip() if not qianzhanghao or not dingdan_id or not new_dashou_id: @@ -4837,7 +4837,7 @@ class AdQiangZhiJieDan(APIView): try: # 1. 获取前端参数 qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() if not qianzhanghao or not dingdan_id: return Response( @@ -5019,7 +5019,7 @@ class AdJuJueTuiKuan(APIView): try: # 1. 获取前端参数 qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() jujue_liyou = request.data.get('jujue_liyou', '').strip() if not qianzhanghao or not dingdan_id: @@ -5219,7 +5219,7 @@ class AdTongYiTuiKuanShangJia(APIView): try: # 1. 获取前端参数 qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() tuikuan_liyou = request.data.get('tuikuan_liyou', '').strip() pay_password = request.data.get('pay_password', '').strip() @@ -5420,7 +5420,7 @@ class AdTongYiTuiKuanPingTai(APIView): try: # 1. 获取前端参数 qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() tuikuan_liyou = request.data.get('tuikuan_liyou', '').strip() pay_password = request.data.get('pay_password', '').strip() @@ -5805,7 +5805,7 @@ class AdJuJueJieSuan(APIView): try: # 1. 获取参数 qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() tkly = request.data.get('tkly', '').strip() if not all([qianzhanghao, dingdan_id, tkly]): @@ -5896,7 +5896,7 @@ class AdZhuanYiDaTing(APIView): def post(self, request): try: qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() if not all([qianzhanghao, dingdan_id]): return Response( @@ -5978,7 +5978,7 @@ class AdQuXiaoZhiDing(APIView): def post(self, request): try: qianzhanghao = request.data.get('zhanghao', '').strip() - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() if not all([qianzhanghao, dingdan_id]): return Response( @@ -6051,7 +6051,7 @@ class DashouXiugaiView(APIView): def post(self, request): # 获取请求数据 data = request.data - dingdan_id = data.get('OrderID', '') + dingdan_id = str(data.get('OrderID') or data.get('dingdan_id') or '').strip() liuyan = data.get('liuyan', '') deleted_images = data.get('deleted_images', []) new_images = data.get('new_images', []) @@ -6373,7 +6373,7 @@ class ShangjiaFakuanApplyView(APIView): return Response({'code': 1, 'msg': '用户认证失败'}, status=status.HTTP_401_UNAUTHORIZED) # ========== 2. 参数提取与校验 ========== - dingdan_id = request.data.get('OrderID', '').strip() + dingdan_id = str(request.data.get('OrderID') or request.data.get('dingdan_id') or '').strip() chufa_liyou = request.data.get('chufa_liyou', '').strip() fakuanjine = request.data.get('fakuanjine', 0) yingxiang_qiangdan = int(request.data.get('yingxiang_qiangdan', 1))