tfse-admin-api-v0.2/Models/Implements/ModelImpl.py

84 lines
2.4 KiB
Python
Raw Normal View History

2022-05-18 15:16:34 +08:00
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