tfse-admin-api-v0.2/Model/model_impl.py

87 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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_question_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 '录入失败'
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 '录入失败'
def get_questionnaire_scripts(types, industry):
"""
根据评价类型和行业查询相对应问卷数据
Parameters:
types: str 评价类型
industry: str 行业
Returns:
result: dict 查询结果
"""
data = find_records('问卷', '问卷数据', {"评价类型": types, "行业": industry})
if data:
return data[0]
else:
return False