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
|
|||
|
|
|||
|
|