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