84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
import random
|
||
|
||
from DBHelper.MongoHelper import MongoHelper
|
||
from Models.Objects.ModelObject import CreditQuestionnarie, QuestionObject, QuestionnaireObject
|
||
|
||
|
||
class ModelAboutImpl(CreditQuestionnarie):
|
||
"""模型端相关类"""
|
||
db = MongoHelper("tfse_v0.21")
|
||
|
||
@staticmethod
|
||
def make_id(num):
|
||
"""
|
||
随机生成字符串
|
||
"""
|
||
choices = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
|
||
salt = ''
|
||
for i in range(num):
|
||
salt += random.choice(choices)
|
||
return salt
|
||
|
||
def gen_new_rid(self):
|
||
"""
|
||
生成新的问题ID,如果该ID存在,则重新生成
|
||
Parameters:
|
||
-
|
||
Returns:
|
||
new_id: 生成的问题ID
|
||
"""
|
||
# 生成新ID
|
||
new_id = self.make_id(8)
|
||
# 检查新ID是否存在,如果存在则继续生成新ID
|
||
case_01 = self.db.find_single_data('模型端', '问卷数据', {"问卷ID": new_id}, '问卷ID') is []
|
||
case_02 = self.db.find_single_data('模型端', '问题数据', {"问题ID": new_id}, '问题ID') is []
|
||
while case_01 and case_02:
|
||
new_id = self.make_id(8)
|
||
# 新ID可使用,返回新ID
|
||
return new_id
|
||
|
||
def insert_question(self, data):
|
||
"""插入新的问题数据"""
|
||
question = QuestionObject()
|
||
question.qid = self.gen_new_rid()
|
||
question.types = data['类型']
|
||
question.stem = data['题干']
|
||
question.option = data['选项']
|
||
insert = question.dict_to_save()
|
||
|
||
self.db.insert_single_data(
|
||
'模型端',
|
||
'问题数据',
|
||
insert
|
||
)
|
||
return '录入成功'
|
||
|
||
def insert_questionnaire(self, data):
|
||
"""插入新的问卷数据"""
|
||
questionnaire = QuestionnaireObject()
|
||
questionnaire.qid = self.gen_new_rid()
|
||
questionnaire.industry = data['行业']
|
||
questionnaire.content = data['问卷内容']
|
||
insert = questionnaire.dict_to_save()
|
||
|
||
self.db.insert_single_data(
|
||
'模型端',
|
||
'问卷数据',
|
||
insert
|
||
)
|
||
return '录入成功'
|
||
|
||
def get_questionnaire(self):
|
||
"""获取综信评价问卷"""
|
||
industry = self.dict_to_save()
|
||
data = self.db.find_single_data(
|
||
'模型端',
|
||
'综信评价问卷',
|
||
industry,
|
||
['问卷内容']
|
||
)
|
||
|
||
return data
|
||
|
||
|