api-datamanager/Modules/Models/SModels/SModelImpl.py

68 lines
1.8 KiB
Python
Raw Normal View History

2022-06-23 16:44:09 +08:00
from DBHelper.MongoHelperInstance import DB_TEST
from Modules.Functions.FinIndex.FinIndexObj import FinIndexObj
class ModelImpl(object):
@staticmethod
def new_calculate_func(**kwargs):
"""新建计算函数"""
data = kwargs['data']
func = FinIndexObj()
func.func_name = data['函数名称']
func.describe = data['说明']
func.method = data['方法']
func.param = list()
for params in data['参数']:
param = func.Param()
param.name = params['参数名']
param.mark = params['备注']
func.param.append(param)
func.tags = data['标签']
DB_TEST.insert_single_data(
'模型数据',
'计算函数',
func.fields_toggle()
)
return '新建成功'
@staticmethod
def check_calculate_func(**kwargs):
"""校验计算函数"""
func = kwargs['方法']
param = kwargs['参数']
try:
eval(func, param)
return '校验通过'
except Exception:
return '校验失败'
@staticmethod
def search_tags(**kwargs):
"""标签搜索"""
total = DB_TEST.find_all_data_with_count(
'模型数据',
'标签数据',
{'标签名称': {"$regex": kwargs['tag_name']}}
)
records = DB_TEST.find_data_by_page_with_sort(
'模型数据',
'标签数据',
{'标签名称': {"$regex": kwargs['tag_name']}},
['标签名称'],
{'标签名称': -1},
kwargs['page_size'],
kwargs['page_no']
)
result = {
"total": total,
"records": records
}
return result