From b84f8e406be2a5ab56da49f8741c9b8161f03829 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Wed, 24 Jun 2026 08:53:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20test=5Fpricing=20=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E4=BB=8EDB=E8=8E=B7=E5=8F=96=E5=8E=9F=E5=A7=8BYAML=E9=81=BF?= =?UTF-8?q?=E5=85=8DDictObject=E5=BA=8F=E5=88=97=E5=8C=96=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pricing/pricing.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pricing/pricing.py b/pricing/pricing.py index be3485f..a21fd29 100644 --- a/pricing/pricing.py +++ b/pricing/pricing.py @@ -983,9 +983,16 @@ async def get_pricing_program_timeing(pptid): return ppt async def test_pricing(pptid, data): - ppt = await get_pricing_program_timeing(pptid) - # ppt.pricing_data 已被 ppt_db2app 解析为 dict,需要转回 YAML 字符串 - yamlstr = yaml.dump(ppt.pricing_data, allow_unicode=True) if isinstance(ppt.pricing_data, dict) else ppt.pricing_data + # 直接从 DB 获取原始 pricing_data(不调用 ppt_db2app),避免 DictObject 序列化问题 + env = ServerEnv() + async with get_sor_context(env, 'pricing') as sor: + recs = await sor.R('pricing_program_timing', {'id': pptid}) + if len(recs) == 0: + return None + ppt = recs[0] + if ppt.pricing_data is None: + return None + yamlstr = ppt.pricing_data # 原始 YAML 字符串 prices = PricingProgram.get_pricing_from_ymalstr(data, yamlstr) if prices is None: return None