From c16bf8741dcaf93f62b399b265b16d83ad4ef0d2 Mon Sep 17 00:00:00 2001 From: P3ngSaM <61768364+P3ngSaM@users.noreply.github.com> Date: Mon, 21 Mar 2022 14:10:00 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E9=97=AE=E9=A2=98=E7=94=9F=E6=88=90/?= =?UTF-8?q?=E9=97=AE=E5=8D=B7=E7=94=9F=E6=88=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/model_db.py | 17 +++++++++++++++++ Model/model_impl.py | 23 ++++++++++++++++++++++- Model/model_obj.py | 14 +++++++++++--- Model/model_routes.py | 23 +++++++++++++++++++++-- 4 files changed, 71 insertions(+), 6 deletions(-) diff --git a/Model/model_db.py b/Model/model_db.py index cc62a7c..0a7e3c1 100644 --- a/Model/model_db.py +++ b/Model/model_db.py @@ -33,3 +33,20 @@ def insert_data(param1, param2, param3): collection = client[param1][param2] collection.insert_one(param3) return True + + +def update_data(param1, param2, param3, param4): + """ + 更新一条数据 + Parameters: + param1: str 数据库 + param2: str 数据集 + param3: obj 查询条件 + param4: obj 更新数据 + Returns: + result: bool 更新结果 + """ + collection = client[param1][param2] + res = collection.update_one(param3, {"$set": param4}, upsert=True) + info = res.raw_result['ok'] + return info diff --git a/Model/model_impl.py b/Model/model_impl.py index 75438aa..22bdff6 100644 --- a/Model/model_impl.py +++ b/Model/model_impl.py @@ -32,7 +32,7 @@ def make_id(num): return salt -def insert_questionnaire_scripts(question): +def insert_question_scripts(question): """ 插入一条新的问题数据 Parameters: @@ -48,3 +48,24 @@ def insert_questionnaire_scripts(question): return '录入成功' else: return '录入失败' + + +def insert_questionnaire_scripts(questionnaire): + """ + + Parameters: + questionnaire: dict 问卷数据(由问题数据构成) + Returns: + result: str 新增结果 + """ + insert_dict = dict() + insert_dict['问卷ID'] = gen_new_rid() + for num in range(len(questionnaire['问卷内容'])): + questionnaire['问卷内容'][num]['label'] = str(num+1) + '.' + questionnaire['问卷内容'][num]['label'] + insert_dict = dict(insert_dict, **questionnaire) + search = {"评价类型": insert_dict['评价类型'], "行业": insert_dict['行业']} + result = update_data('问卷', '问卷数据', search, insert_dict) + if result: + return '录入成功' + else: + return '录入失败' diff --git a/Model/model_obj.py b/Model/model_obj.py index a26cd15..35d9519 100644 --- a/Model/model_obj.py +++ b/Model/model_obj.py @@ -1,14 +1,22 @@ -from Model.model_impl import insert_questionnaire_scripts +from Model.model_impl import insert_question_scripts, insert_questionnaire_scripts class ModelObj: def __init__(self): self.question = None + self.questionnaire = None - def insert_questionnaire(self): + def insert_question(self): """ 插入一条新的问题数据 """ - info = insert_questionnaire_scripts(self.question) + info = insert_question_scripts(self.question) return info + + def insert_questionnaire(self): + """ + 新增行业问卷数据 + """ + info = insert_questionnaire_scripts(self.questionnaire) + return info \ No newline at end of file diff --git a/Model/model_routes.py b/Model/model_routes.py index 5cb4160..fe417af 100644 --- a/Model/model_routes.py +++ b/Model/model_routes.py @@ -20,6 +20,25 @@ def insert_new_question(**kwargs): """ model = ModelObj() model.question = request.json['question'] - info = model.insert_questionnaire() - status = 200 if info == '插入成功' else 210 + info = model.insert_question() + status = 200 if info == '录入成功' else 210 + return {"info": info}, status + + +@model_route.route('/insert_new_questionnaire', methods=['POST']) +@verify_token +@authority_scope(['admin', 'developer', 'analysts', 'operator']) +def insert_new_questionnaire(**kwargs): + """ + 根据问题集合插入行业新问卷数据 + Parameters: + - + Returns: + info: 返回信息 + result: 返回数据 + """ + model = ModelObj() + model.questionnaire = request.json['questionnaire'] + info = model.insert_questionnaire() + status = 200 if info == '录入成功' else 210 return {"info": info}, status