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))