diff --git a/pricing/pricing.py b/pricing/pricing.py index 289a853..b376c42 100644 --- a/pricing/pricing.py +++ b/pricing/pricing.py @@ -621,8 +621,16 @@ order by b.enabled_date desc""" # 检查 filters 区间条件(新格式,AND逻辑:所有filter_item都要匹配) # 带 unit_prices 的 filter_item 是 tiered 定价,跳过(由后面第二块处理) + # 兼容两种格式:list of dicts 或 dict if p_ok and is_new_format and 'filters' in p: - for filter_item in p['filters']: + raw_filters = p['filters'] + if isinstance(raw_filters, dict): + filter_items = [raw_filters] + else: + filter_items = raw_filters + for filter_item in filter_items: + if not isinstance(filter_item, dict): + continue if 'unit_prices' in filter_item: continue # tiered定价项,不在此处检查 item_ok = True