87 lines
2.4 KiB
Python
87 lines
2.4 KiB
Python
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 |