diff --git a/Modules/File/FileImpl.py b/Modules/File/FileImpl.py index 8e1584c..e62d5a9 100644 --- a/Modules/File/FileImpl.py +++ b/Modules/File/FileImpl.py @@ -1,3 +1,5 @@ +import os + from Utils.ObjUtil import SpecObject from Utils.ValidateUtil import ValidateAttr @@ -6,7 +8,15 @@ class FileObjImpl(object): """对象文件创建""" @staticmethod - def new_file_obj(**kwargs): + def get_project_abs_path(**kwargs): + file_abs_path = os.path.abspath(os.path.dirname(__file__)) + project_abs_path = file_abs_path[:file_abs_path.find('wide_rating') + len('wide_rating')] + name = kwargs['name'] + pdf_relative_path = '/Modules/File/static/{}'.format(name) + pdf_abs_path = os.path.abspath(project_abs_path + pdf_relative_path) + return pdf_abs_path + + def new_file_obj(self, **kwargs): """ 新建对象文件 1.根据参数动态创建class类 @@ -15,8 +25,9 @@ class FileObjImpl(object): data = kwargs['data'] name = data['class_name'] + file_name = '{}.py'.format(name) parameter = data['parameter'] - filename = './Modules/File/static/{}.py'.format(name) + filename = self.get_project_abs_path(name=file_name) with open(filename, 'w', encoding="utf-8") as f: f.write('from Utils.ObjUtil import SpecObject') diff --git a/Modules/Filters/FiltersImpl.py b/Modules/Filters/FiltersImpl.py index 8b1748d..2236b21 100644 --- a/Modules/Filters/FiltersImpl.py +++ b/Modules/Filters/FiltersImpl.py @@ -1,6 +1,6 @@ import time -from Modules.Filters.FiltersObj import FiltersObj, DataBaseRange, DataSheetRange, FieldRange, SubFieldRange +from Modules.Filters.FiltersObj import FiltersObj, DataBaseRange, DataSheetRange, FieldRange, SubFieldRange, data_base from Modules.Filters.FiltersUtils import FilterUtils from DBHelper.MongoHelperInstance import DB_TEST @@ -59,7 +59,8 @@ class FilterImpl(object): ) return '新建成功' - def eidt_filter(self, **kwargs): + @staticmethod + def eidt_filter(**kwargs): """编辑筛选器""" data = kwargs['data'] @@ -83,23 +84,44 @@ class FilterImpl(object): if data['filter_name'] != case1 and data['filter_name'] in case2: return '筛选器名称已存在' - verify_result = self.verify_data(data['filter_range']) - if verify_result == '校验通过': - filters = FiltersObj() - filters.filter_id = data['filter_id'] - filters.filter_name = data['filter_name'] - filters.filter_range = data['filter_range'] - filters.date = time.strftime("%Y-%m-%d", time.localtime()) + filters = FiltersObj() + filters.filter_id = data['filter_id'] + filters.filter_name = data['filter_name'] + filters.date = time.strftime("%Y-%m-%d", time.localtime()) + # 处理筛选范围 + filters.filter_range = list() + for base in data['filter_range']: + # 数据库名称 + database = DataBaseRange() + database.value = base['value'] + if len(base['choices']): + database.choices = list() + for sheet in base['choices']: + # 数据表名称 + datasheet = DataSheetRange() + datasheet.value = sheet['value'] + if len(sheet['choices']): + datasheet.choices = list() + for field in sheet['choices']: + datafield = FieldRange() + datafield.value = field['value'] + if 'choices' in field and len(field['choices']): + datafield.choices = list() + for sub in field['choices']: + subfiled = SubFieldRange() + subfiled.value = sub['value'] + datafield.choices.append(subfiled) + datasheet.choices.append(datafield) + database.choices.append(datasheet) + filters.filter_range.append(database) - DB_TEST.update_single_data( - '模型数据', - '筛选器数据', - {'筛选器ID': data['filter_id']}, - filters.fields_toggle() - ) - return '修改成功' - else: - return verify_result + DB_TEST.update_single_data( + '模型数据', + '筛选器数据', + {'筛选器ID': data['filter_id']}, + filters.fields_toggle() + ) + return '编辑成功' @staticmethod def delete_filter(**kwargs): @@ -157,7 +179,29 @@ class FilterImpl(object): record_dict['filter_name'] = record['筛选器名称'] if '筛选器ID' in record: record_dict['filter_id'] = record['筛选器ID'] - record_dict['filter_range'] = record['筛选范围'] + record_dict['filter_range'] = list() + for base in record['筛选范围']: + base_dict = dict() + base_dict['value'] = base['数据库名称'] + if len(base['选择范围']): + base_dict['choices'] = list() + for sheet in base['选择范围']: + sheet_dict = dict() + sheet_dict['value'] = sheet['数据集名称'] + if '选择范围' in sheet['选择范围'] and len(sheet['选择范围']): + sheet_dict['choices'] = list() + for field in sheet['选择范围']: + field_dict = dict() + field_dict['value'] = field['字段名称'] + if '选择范围' in field and len(field['选择范围']): + field_dict['choices'] = list() + for sub in field['选择范围']: + sub_dict = dict() + sub_dict['value'] = sub['子字段名称'] + field_dict['choices'].append(sub_dict) + sheet_dict['choices'].append(field_dict) + base_dict['choices'].append(sheet_dict) + record_dict['filter_range'].append(base_dict) record_dict['date'] = record['创建日期'] record_list.append(record_dict) @@ -168,7 +212,8 @@ class FilterImpl(object): return result - def search_db_gather(self, **kwargs): + @staticmethod + def search_db_gather(**kwargs): """查询数据库所有集合名""" db_name = kwargs['db_name'] if len(db_name): @@ -179,7 +224,7 @@ class FilterImpl(object): records = DB_TEST.find_database_all_gather(db_name) return_list = list() for record in records: - if record in self.filter_list: + if record in data_base: return_list.append(record) return return_list diff --git a/Modules/Filters/FiltersRoutes.py b/Modules/Filters/FiltersRoutes.py index 1369905..17481f6 100644 --- a/Modules/Filters/FiltersRoutes.py +++ b/Modules/Filters/FiltersRoutes.py @@ -30,9 +30,11 @@ def edit_filter_route(): data = request.json impl = FilterImpl() result = impl.eidt_filter(data=data) - return {"info": "新建筛选器", "result": result}, 200 + return {"info": "编辑筛选器", "result": result}, 200 except APIReturnError as e: return {"info": e.__str__()}, e.status_code + except AttrCheckError as e: + return {"info": e.__str__()} @filters_route.route('/delete', methods=['GET'])