diff --git a/storage_resource/__pycache__/init.cpython-310.pyc b/storage_resource/__pycache__/init.cpython-310.pyc new file mode 100644 index 0000000..1c5a6c6 Binary files /dev/null and b/storage_resource/__pycache__/init.cpython-310.pyc differ 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: