From 3e6f448a39f3f2115d6aa556849178a55a640723 Mon Sep 17 00:00:00 2001 From: ymq Date: Wed, 26 Aug 2026 17:33:04 +0800 Subject: [PATCH] =?UTF-8?q?fix(pricing):=20storage=5Fcharging=20=E7=94=A8?= =?UTF-8?q?=E9=94=99=E5=AE=9A=E4=BB=B7=E5=87=BD=E6=95=B0=E2=80=94=E2=80=94?= =?UTF-8?q?pricing=5Fprogram=5Fcharging(=E4=B8=89=E5=8F=82)=20=E6=94=B9=20?= =?UTF-8?q?buffered=5Fcharging(=E4=B8=A4=E5=8F=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit buffered_charging 返回价格对象列表,需 sum(getattr(p,'amount',0)) 汇总。 原用 pricing_program_charging=charging(sor,ppid,data) 三参,传两参导致 'missing 1 required positional argument: data',存储计费金额恒为 0。 --- .../__pycache__/init.cpython-310.pyc | Bin 0 -> 11491 bytes storage_resource/init.py | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 storage_resource/__pycache__/init.cpython-310.pyc diff --git a/storage_resource/__pycache__/init.cpython-310.pyc b/storage_resource/__pycache__/init.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1c5a6c6b11e93a243d8a6aa69d21255bdf8837fb GIT binary patch literal 11491 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 literal 0 HcmV?d00001 diff --git a/storage_resource/init.py b/storage_resource/init.py index 0109b11..93cbd63 100644 --- a/storage_resource/init.py +++ b/storage_resource/init.py @@ -262,16 +262,16 @@ async def storage_charging(spec_id_or_code, meter_mode, userid, userorgid, amount = 0.0 if ppid: - charging = getattr(env, 'pricing_program_charging', None) + charging = getattr(env, 'buffered_charging', None) if charging is None: logger.warning('pricing 模块未加载,存储计费金额记 0(ppid=%s)', ppid) else: try: - r = await charging(ppid, usages) - if isinstance(r, dict): - amount = float(r.get('amount', 0) or 0) - elif isinstance(r, (int, float)): - amount = float(r) + prices = await charging(ppid, usages) + if prices is None: + logger.error('存储定价计算返回空 ppid=%s', ppid) + else: + amount = float(sum(getattr(p, 'amount', 0) or 0 for p in prices)) except Exception as e: logger.error('存储计费失败 ppid=%s: %s', ppid, e) else: