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.FirstLevelIndex() 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() for setting_ in second['打分设置']['设置']: set_ = setting.Setting() set_.gear = setting_['档位'] set_.percentage = setting_['百分比(%)'] interval = set_.Interval() interval.gt = setting_['区间']['gt'] interval.lte = setting_['区间']['lte'] set_.interval = interval setting.setting.append(set_) 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 '校验成功'