From df927e141db961238ddfb5d90b12ed00fc44ae72 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Fri, 19 Jun 2026 15:13:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=8F=96=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a_long_dianjing/settings.py | 1 + backend/view.py | 29 +++++++++++++++++++---------- users/views.py | 18 +++++++++--------- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/a_long_dianjing/settings.py b/a_long_dianjing/settings.py index 327e7b0..e266766 100644 --- a/a_long_dianjing/settings.py +++ b/a_long_dianjing/settings.py @@ -234,6 +234,7 @@ IP_WHITELIST = [ '111.32.64.171', '43.142.0.208', '223.104.7.77', + '' ] # 黑名单(blacklist 模式下生效)— 支持单 IP 和 CIDR 网段 IP_BLACKLIST = [] diff --git a/backend/view.py b/backend/view.py index 3a7fd47..6e337b8 100644 --- a/backend/view.py +++ b/backend/view.py @@ -2312,8 +2312,8 @@ class AddProductView(APIView): yaoqiuleixing=yaoqiuleixing, huiyuan_id=huiyuan_id_val, yongjin=yongjin_val, - kaioi_ewai_PlayerCommission=kaioi_ewai, - ewai_PlayerCommission=ewai_fencheng, + kaioi_ewai_dashou_fencheng=kaioi_ewai, + ewai_dashou_fencheng=ewai_fencheng, paixu=0, # 新商品默认排序最后 shenhezhuangtai=1, # 正常状态 ) @@ -2463,8 +2463,8 @@ class GetProductDetailView(APIView): 'huiyuan_id': product.huiyuan_id, 'yongjin': str(product.yongjin) if product.yongjin is not None else None, 'tupian_url': product.tupian_url, - 'kaioi_ewai_PlayerCommission': product.kaioi_ewai_PlayerCommission, - 'ewai_PlayerCommission': str(product.ewai_PlayerCommission) if product.ewai_PlayerCommission is not None else '0', + 'kaioi_ewai_PlayerCommission': product.kaioi_ewai_dashou_fencheng, + 'ewai_PlayerCommission': str(product.ewai_dashou_fencheng) if product.ewai_dashou_fencheng is not None else '0', 'create_time': product.create_time.isoformat() if product.create_time else None, 'shenhezhuangtai': product.shenhezhuangtai, } @@ -2648,8 +2648,8 @@ class UpdateProductView(APIView): product.yaoqiuleixing = yaoqiuleixing product.huiyuan_id = huiyuan_id product.yongjin = yongjin - product.kaioi_ewai_PlayerCommission = kaioi_ewai - product.ewai_PlayerCommission = ewai_fencheng + product.kaioi_ewai_dashou_fencheng = kaioi_ewai + product.ewai_dashou_fencheng = ewai_fencheng product.jieshao = jieshao product.xiadan_xuzhi = xiadan_xuzhi product.tupian_url = tupian_url @@ -5565,8 +5565,8 @@ class ProductListView(APIView): 'yaoqiuleixing': p.yaoqiuleixing, 'huiyuan_id': p.huiyuan_id or '', 'yongjin': p.yongjin, - 'kaioi_ewai_PlayerCommission': p.kaioi_ewai_PlayerCommission, - 'ewai_PlayerCommission': p.ewai_PlayerCommission, + 'kaioi_ewai_PlayerCommission': p.kaioi_ewai_dashou_fencheng, + 'ewai_PlayerCommission': p.ewai_dashou_fencheng, 'create_time': p.create_time.isoformat() if p.create_time else '', 'update_time': p.update_time.isoformat() if p.update_time else '', 'paixu': p.paixu, @@ -5659,6 +5659,11 @@ class ProductModifyView(APIView): # ---------- 应用修改 ---------- # 允许修改的字段白名单(防止注入) + # 前端参数名 → 模型字段名映射 + field_name_map = { + 'kaioi_ewai_PlayerCommission': 'kaioi_ewai_dashou_fencheng', + 'ewai_PlayerCommission': 'ewai_dashou_fencheng', + } allowed_fields = [ 'biaoqian', 'jiage', 'kucun', 'leixing_id', 'duiwai_xiaoliang', 'jieshao', 'xiadan_xuzhi', 'yaoqiuleixing', 'yongjin', @@ -5666,18 +5671,22 @@ class ProductModifyView(APIView): 'shangjia_zhuangtai', 'fengjin_zhuangtai', 'shenhe_zhuangtai' ] + update_fields = [] for field in allowed_fields: value = request.data.get(field) if value is not None: + model_field = field_name_map.get(field, field) # 简单类型校验(根据字段类型) if field in ['jiage', 'kucun', 'duiwai_xiaoliang', 'yongjin', 'ewai_PlayerCommission', 'paixu']: try: value = float(value) if 'jiage' in field or 'yongjin' in field or 'ewai' in field else int(value) except (ValueError, TypeError): return Response({'code': 400, 'msg': f'字段 {field} 值格式错误'}) - setattr(product, field, value) + setattr(product, model_field, value) + update_fields.append(model_field) - product.save(update_fields=allowed_fields) + if update_fields: + product.save(update_fields=update_fields) return Response({'code': 0, 'msg': '商品修改成功'}) diff --git a/users/views.py b/users/views.py index a5e7a7d..f02a25e 100644 --- a/users/views.py +++ b/users/views.py @@ -3864,7 +3864,7 @@ class AdckyhxqView(APIView): 'phone': user_main.Phone, 'ip': user_main.IP, 'create_time': user_main.UserCreateTime, - 'update_time': user_main.update_time, + 'update_time': user_main.UserCreateTime, 'user_type': user_type } @@ -8562,7 +8562,7 @@ class KefuGetDashouDetailView(APIView): try: # 使用 select_related 预加载 dashou_profile,减少数据库查询 user_main = User.query.select_related('DashouProfile').get( - yonghuid=uid + UserUID=uid ) except User.DoesNotExist: return Response({'code': 404, 'msg': '打手不存在'}, status=status.HTTP_404_NOT_FOUND) @@ -9042,13 +9042,13 @@ class KefuPunishmentListView(APIView): list_data = [] for item in records: list_data.append({ - 'dingdan_id': item.dingdan_id, - 'dashouid': item.dashouid, - 'qingqiuid': item.qingqiuid, - 'cfliyou': item.cfliyou, - 'sqzhuangtai': item.sqzhuangtai, - 'create_time': item.create_time, - 'update_time': item.update_time, + 'dingdan_id': item.OrderID, + 'dashouid': item.PlayerID, + 'qingqiuid': item.ApplicantID, + 'cfliyou': item.PenaltyReason, + 'sqzhuangtai': item.ApplyStatus, + 'create_time': item.CreateTime, + 'update_time': item.UpdateTime, # 其他字段按需添加 })