80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
import time
|
|
|
|
from DBHelper.MongoHelperInstance import DB_TEST
|
|
from Modules.Models.SModels.SModelsObj import ScoreModelObj
|
|
|
|
|
|
class ScoreModelImpl(object):
|
|
|
|
@staticmethod
|
|
def search_score_model(**kwargs):
|
|
"""搜索打分模型"""
|
|
total = DB_TEST.find_all_data_with_count(
|
|
'模型数据',
|
|
'打分模型',
|
|
{'模型名称': {"$regex": kwargs['model_name']}}
|
|
)
|
|
|
|
records = DB_TEST.find_all_data_with_single_sort(
|
|
'模型数据',
|
|
'打分模型',
|
|
{'模型名称': {"$regex": kwargs['model_name']}},
|
|
['模型名称', '作者', '日期', '标签'],
|
|
{'日期': -1},
|
|
kwargs['page_size'],
|
|
kwargs['page_no']
|
|
)
|
|
|
|
result = {
|
|
"total": total,
|
|
"records": records
|
|
}
|
|
|
|
return result
|
|
|
|
@staticmethod
|
|
def new_score_model(**kwargs):
|
|
"""构建打分模型"""
|
|
data = kwargs['data']
|
|
model = ScoreModelObj()
|
|
model.model_name = data['model_name']
|
|
model.author = data['author']
|
|
model.tags = data['tags']
|
|
model.dimension = list()
|
|
model.date = time.strftime('%Y-%m-%d', time.localtime())
|
|
|
|
# 维度
|
|
for item in data['dimension']:
|
|
dimension = model.Dimension()
|
|
dimension.name = item['维度名称']
|
|
dimension.first_level_index = list()
|
|
for first in item['一级指标']:
|
|
first_level = dimension.FirstIndex()
|
|
first_level.name = first['指标名称']
|
|
first_level.secondary_index = list()
|
|
for second in first['二级指标']:
|
|
second_level = first_level.SecondaryIndex()
|
|
second_level.name = second['指标名称']
|
|
second_level.standard_score = second['标准分']
|
|
setting = second_level.ScoreSetting()
|
|
setting.pattern = second['打分设置']['模式']
|
|
setting.setting = list()
|
|
second_level.score_setting = setting
|
|
first_level.secondary_index.append(second_level)
|
|
dimension.first_level_index.append(first_level)
|
|
model.dimension.append(dimension)
|
|
|
|
DB_TEST.upsert_single_data(
|
|
'模型数据',
|
|
'打分模型',
|
|
{'模型名称': data['model_name']},
|
|
model.fields_toggle()
|
|
)
|
|
|
|
return '构建成功'
|
|
|
|
@staticmethod
|
|
def check_score_model(**kwargs):
|
|
data = kwargs['data']
|
|
return '校验成功'
|