Compare commits
3 Commits
1e65451da4
...
30766b6c88
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30766b6c88 | ||
|
|
b2521678ad | ||
|
|
03a0bea51f |
@ -617,7 +617,9 @@ order by b.enabled_date desc"""
|
|||||||
continue
|
continue
|
||||||
f = d.fields.get(k)
|
f = d.fields.get(k)
|
||||||
if not f:
|
if not f:
|
||||||
continue # 非字段key(如value_mode等控制参数),跳过
|
e = f'定价项({i})中的{k}在fields中没有定义'
|
||||||
|
exception(f'{e}')
|
||||||
|
raise Exception(e)
|
||||||
data_value = config_data.get(k)
|
data_value = config_data.get(k)
|
||||||
data_value = data_mapping(d, k, data_value)
|
data_value = data_mapping(d, k, data_value)
|
||||||
if data_value is None:
|
if data_value is None:
|
||||||
@ -644,6 +646,7 @@ order by b.enabled_date desc"""
|
|||||||
if 'unit_prices' in filter_item:
|
if 'unit_prices' in filter_item:
|
||||||
continue # tiered定价项,不在此处检查
|
continue # tiered定价项,不在此处检查
|
||||||
item_ok = True
|
item_ok = True
|
||||||
|
item_value_mode = filter_item.get('value_mode')
|
||||||
for fk, fv in filter_item.items():
|
for fk, fv in filter_item.items():
|
||||||
if fk in ('unit_prices', 'value_mode'):
|
if fk in ('unit_prices', 'value_mode'):
|
||||||
continue
|
continue
|
||||||
@ -655,7 +658,7 @@ order by b.enabled_date desc"""
|
|||||||
if data_value is None:
|
if data_value is None:
|
||||||
continue # 数据中没有该键,视为匹配
|
continue # 数据中没有该键,视为匹配
|
||||||
try:
|
try:
|
||||||
flg = check_value(f, fv, data_value)
|
flg = check_value(f, fv, data_value, item_value_mode)
|
||||||
if not flg:
|
if not flg:
|
||||||
item_ok = False
|
item_ok = False
|
||||||
break
|
break
|
||||||
@ -683,6 +686,7 @@ order by b.enabled_date desc"""
|
|||||||
# 处理 filters 中的区间定价(查找匹配的 unit_prices)
|
# 处理 filters 中的区间定价(查找匹配的 unit_prices)
|
||||||
if 'filters' in p:
|
if 'filters' in p:
|
||||||
for filter_item in p['filters']:
|
for filter_item in p['filters']:
|
||||||
|
item_value_mode = filter_item.get('value_mode')
|
||||||
for fk, fv in filter_item.items():
|
for fk, fv in filter_item.items():
|
||||||
if fk in ('unit_prices', 'value_mode'):
|
if fk in ('unit_prices', 'value_mode'):
|
||||||
continue
|
continue
|
||||||
@ -694,7 +698,7 @@ order by b.enabled_date desc"""
|
|||||||
if data_value is None:
|
if data_value is None:
|
||||||
continue
|
continue
|
||||||
try:
|
try:
|
||||||
flg = check_value(f, fv, data_value)
|
flg = check_value(f, fv, data_value, item_value_mode)
|
||||||
if flg and 'unit_prices' in filter_item:
|
if flg and 'unit_prices' in filter_item:
|
||||||
unit_price = filter_item['unit_prices']
|
unit_price = filter_item['unit_prices']
|
||||||
except:
|
except:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user