kboss/b/product/wlwl_parameter_search.dspy
2025-07-16 14:27:17 +08:00

101 lines
4.3 KiB
Plaintext

async def wlwl_parameter_search(ns={}):
"""
规格参数查找
:param ns:
:return:
"""
if ns.get('discount'):
if float(ns.get('discount')) > 1:
ns['discount'] = float(ns.get('discount')) / 10
high_school = ns.get('high_school')
chaosuan_center = ns.get('chaosuan_center')
params_list = [
['长距离', '双路由', '1G', '25000'],
['长距离', '双路由', '10G', '80000'],
['长距离', '双路由', '100G', '350000'],
['长距离', '单路由', '1G', '20000'],
['长距离', '单路由', '10G', '60000'],
['长距离', '单路由', '100G', '220000'],
['短距离', '双路由', '1G', '19000'],
['短距离', '双路由', '10G', '60000'],
['短距离', '双路由', '100G', '260000'],
['短距离', '单路由', '1G', '15000'],
['短距离', '单路由', '10G', '50000'],
['短距离', '单路由', '100G', '200000'],
['省内', '双路由', '1G', '13000'],
['省内', '双路由', '10G', '40000'],
['省内', '双路由', '100G', '180000'],
['省内', '单路由', '1G', '10000'],
['省内', '单路由', '10G', '30000'],
['省内', '单路由', '100G', '140000']
]
format_params = []
for item in params_list:
item_dic = {}
item_dic['distance'] = item[0]
item_dic['route_num'] = item[1]
item_dic['broadband'] = item[2]
item_dic['price'] = item[3]
if high_school and chaosuan_center and ns.get('route_num') and ns.get('broadband'):
if chaosuan_center == '无锡超算' and chaosuan_center == '上海交通大学':
distance = '短距离'
else:
distance = '长距离'
if distance == item[0] and ns.get('route_num') == item[1] and ns.get('broadband') == item[2]:
if not ns.get('discount'):
ns['discount'] = 1
return {
'status': True,
'msg': 'price search success',
'data': {'price': float(item[3]), 'distance': distance, 'discount_price': '%.1f'%(int(item[3]) * float(ns.get('discount')))}
}
format_params.append(item_dic)
data_dic = {}
data_dic['price_list'] = format_params
data_dic['distance'] = [{'distance': '长距离'},{'distance': '短距离'},{'distance': '省内'}]
data_dic['route_num'] = [{'route_num': '单路由'}, {'route_num': '双路由'}]
data_dic['broadband'] = [{'broadband': '1G'}, {'broadband': '10G'}, {'broadband': '100G'}]
data_dic['high_school'] = [{'name': '北京航空航天大学'}, {'name': '上海交通大学'}]
data_dic['chaosuan_center'] = [{'name': '济南超算'}, {'name': '无锡超算'}, {'name': '广州超算'}, {'name': '青岛超算'}]
if not ns:
return {
'status': True,
'msg': 'product params search success',
'data': data_dic
}
if ns.get('distance') and ns.get('route_num') and ns.get('broadband'):
pass
if ns.get('keyword') == 'distance':
return {
'status': True,
'msg': 'distance search success',
'data': [{'dist': '长距离'},{'dist': '短距离'},{'dist': '省内'}]
}
if ns.get('keyword') == 'route_num':
return {
'status': True,
'msg': 'route_num search success',
'data': [{'route_num': '单路由'}, {'route_num': '双路由'}]
}
if ns.get('keyword') == 'broadband':
return {
'status': True,
'msg': 'broadband search success',
'data': [{'broadband': '1G'}, {'broadband': '10G'}, {'broadband': '100G'}]
}
if ns.get('keyword') == 'chaosuan_center':
return {
'status': True,
'msg': 'chao suan center search success',
'data': [{'name': '济南超算'}, {'name': '无锡超算'}, {'name': '广州超算'}, {'name': '青岛超算'}]
}
if ns.get('keyword') == 'high_school':
return {
'status': True,
'msg': 'high school center search success',
'data': [{'name': '北京航空航天大学'}, {'name': '上海交通大学'}]
}
ret = await wlwl_parameter_search(params_kw)
return ret