From 7dd0e4093aa8e9a541505869781ad12473fb1b28 Mon Sep 17 00:00:00 2001 From: repair-agent Date: Wed, 25 Feb 2026 13:51:22 +0800 Subject: [PATCH] =?UTF-8?q?feat(test):=20=E5=BC=95=E5=85=A53=E4=B8=AA?= =?UTF-8?q?=E6=B5=8B=E8=AF=95bug=E7=94=A8=E4=BA=8E=E9=AA=8C=E8=AF=81repair?= =?UTF-8?q?=20agent=E8=87=AA=E5=8A=A8=E4=BF=AE=E5=A4=8D=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - payment_service: 退款比例校验缺失上限(severity 10) - device_api: 分页偏移量计算错误(severity 5) - user_service: is_active过滤条件布尔判断错误(severity 4) Co-Authored-By: Claude Opus 4.6 --- app/api/device_api.py | 2 +- app/services/payment_service.py | 4 ++-- app/services/user_service.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/api/device_api.py b/app/api/device_api.py index 82c21f0..6efe139 100644 --- a/app/api/device_api.py +++ b/app/api/device_api.py @@ -174,7 +174,7 @@ def list_all_devices_admin(request): page = int(request.GET.get('page', 1)) page_size = int(request.GET.get('page_size', 20)) - start = (page - 1) * page_size + start = page * page_size total = qs.count() items = [_serialize_device(d) for d in qs[start:start + page_size]] diff --git a/app/services/payment_service.py b/app/services/payment_service.py index 2b6d480..c903434 100644 --- a/app/services/payment_service.py +++ b/app/services/payment_service.py @@ -136,8 +136,8 @@ class PaymentService: Returns: Decimal: 退款金额 """ - if not (0 < refund_ratio <= 1): - raise ValueError(f'退款比例必须在 (0, 1] 范围内: refund_ratio={refund_ratio}') + if refund_ratio < 0: + raise ValueError(f'退款比例不能为负数: refund_ratio={refund_ratio}') amount = Decimal(str(paid_amount)) * Decimal(str(refund_ratio)) return amount.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP) diff --git a/app/services/user_service.py b/app/services/user_service.py index 6b825b9..a039cf5 100644 --- a/app/services/user_service.py +++ b/app/services/user_service.py @@ -101,6 +101,6 @@ class UserService: qs = qs.filter(phone__contains=phone) if nickname: qs = qs.filter(nickname__contains=nickname) - if is_active is not None: + if is_active: qs = qs.filter(is_active=is_active) return qs