diff --git a/Manage/rating/scripts.py b/Manage/rating/scripts.py index 0e34f7b..670a197 100644 --- a/Manage/rating/scripts.py +++ b/Manage/rating/scripts.py @@ -125,7 +125,7 @@ def report_create_script(rid, cid): Returns: result: type 生成结果 """ - url = 'http://139.9.249.34:51012/tfse_rating/report/generate_pdf_report' + url = 'http://api.fecribd.com/tfse_rating/report/generate_pdf_report' token = 'X0gSlC!YE8jmr2jJr&ilcjS83j!tsoh5' headers = {'token': token, 'Content-Type': 'application/json;charset=UTF-8'} res = requests.post(url, headers=headers, data=json.dumps(text_data)) diff --git a/Model/__init__.py b/Model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Model/model_db.py b/Model/model_db.py new file mode 100644 index 0000000..cc62a7c --- /dev/null +++ b/Model/model_db.py @@ -0,0 +1,35 @@ +import pymongo +from bson import ObjectId +from gridfs import GridFS + +client = pymongo.MongoClient('mongodb://{}:{}@{}:{}'.format('root', 'sromitdTW569kC#M', '116.63.130.34', 27018)) + + +def find_records(param1, param2, param3): + """ + 查询数据库相关记录 + Parameters: + param1: str 数据库名称 + param2: str 数据集名称 + param3: obj 查询条件 + Returns: + result: bool 执行结果 + """ + collection = client[param1][param2] + res = list(collection.find(param3, {'_id': False})) + return res + + +def insert_data(param1, param2, param3): + """ + 插入一条数据 + Parameters: + param1: str 数据库 + param2: str 数据集 + param3: obj 查询条件 + Returns: + result: bool 执行结果 + """ + collection = client[param1][param2] + collection.insert_one(param3) + return True diff --git a/Model/model_impl.py b/Model/model_impl.py new file mode 100644 index 0000000..75438aa --- /dev/null +++ b/Model/model_impl.py @@ -0,0 +1,50 @@ +import random + +from Model.model_db import * + + +def gen_new_rid(): + """ + 生成新的问题ID,如果该ID存在,则重新生成 + Parameters: + - + Returns: + new_id: 生成的问题ID + """ + # 生成新ID + new_id = make_id(8) + # 检查新ID是否存在,如果存在则继续生成新ID + case = find_records('问卷', '问题数据', {"ID": new_id}) is [] + while case: + new_id = make_id(8) + # 新ID可使用,返回新ID + return new_id + + +def make_id(num): + """ + 随机生成字符串 + """ + choices = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + salt = '' + for i in range(num): + salt += random.choice(choices) + return salt + + +def insert_questionnaire_scripts(question): + """ + 插入一条新的问题数据 + Parameters: + question: dict 问题数据(包括:类型、题干、详情、打分标准) + Returns: + result: str 插入结果 + """ + insert_dict = dict() + insert_dict['ID'] = gen_new_rid() + insert_dict = dict(insert_dict, **question) + result = insert_data('问卷', '问题数据', insert_dict) + if result: + return '录入成功' + else: + return '录入失败' diff --git a/Model/model_obj.py b/Model/model_obj.py new file mode 100644 index 0000000..a26cd15 --- /dev/null +++ b/Model/model_obj.py @@ -0,0 +1,14 @@ +from Model.model_impl import insert_questionnaire_scripts + + +class ModelObj: + + def __init__(self): + self.question = None + + def insert_questionnaire(self): + """ + 插入一条新的问题数据 + """ + info = insert_questionnaire_scripts(self.question) + return info diff --git a/Model/model_routes.py b/Model/model_routes.py new file mode 100644 index 0000000..5cb4160 --- /dev/null +++ b/Model/model_routes.py @@ -0,0 +1,25 @@ +from flask import Blueprint, request + +from Model.model_obj import ModelObj +from user.user_auth import verify_token, authority_scope + +model_route = Blueprint('model', __name__) + + +@model_route.route('/insert_new_question', methods=['POST']) +@verify_token +@authority_scope(['admin', 'developer', 'analysts', 'operator']) +def insert_new_question(**kwargs): + """ + 插入新问题数据 + Parameters: + - + Returns: + info: 返回信息 + result: 返回数据 + """ + model = ModelObj() + model.question = request.json['question'] + info = model.insert_questionnaire() + status = 200 if info == '插入成功' else 210 + return {"info": info}, status diff --git a/app.py b/app.py index c75f36d..7142cca 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ from flask_cors import * from Board.board_routes import board_route from Manage.industry.industry_routes import industry_route +from Model.model_routes import model_route from TestCenter.tc_routes import test_route from Manage.company.routes import company_route from Manage.rating.routes import rating_route @@ -23,6 +24,7 @@ app.register_blueprint(macro_route, url_prefix='/admin/macro') app.register_blueprint(file_route, url_prefix='/admin/file') app.register_blueprint(board_route, url_prefix='/admin/board') app.register_blueprint(industry_route, url_prefix='/admin/manage/industry') +app.register_blueprint(model_route, url_prefix='/admin/model/questionnaire') @app.route('/admin/version')