123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- const { CloudQuery, CloudObject } = require("../lib/ncloud");
- const { QuestionnaireResultList, QuestionnaireList, QuestionList, OptionList, UserInterestProfileList } = require("./data");
- importData();
- let DataMap = {
- QuestionnaireResult: {},
- Questionnaire: {},
- Question: {},
- Option: {},
- UserInterestProfile: {}
- }
- async function importData() {
-
- let questionnaireResultList = QuestionnaireResultList;
- for (let index = 0; index < questionnaireResultList.length; index++) {
- let result = questionnaireResultList[index];
- result = await importObject("QuestionnaireResult", result);
- }
-
- let questionnaireList = QuestionnaireList;
- for (let index = 0; index < questionnaireList.length; index++) {
- let questionnaire = questionnaireList[index];
- questionnaire = await importObject("Questionnaire", questionnaire);
- }
-
- let questionList = QuestionList;
- for (let index = 0; index < questionList.length; index++) {
- let question = questionList[index];
- question = await importObject("Question", question);
- }
-
- let optionList = OptionList;
- for (let index = 0; index < optionList.length; index++) {
- let option = optionList[index];
- option = await importObject("Option", option);
- }
-
- let userInterestProfileList = UserInterestProfileList;
- for (let index = 0; index < userInterestProfileList.length; index++) {
- let profile = userInterestProfileList[index];
- profile = await importObject("UserInterestProfile", profile);
- }
-
- }
- async function importObject(className, data) {
-
- let query = new CloudQuery(className);
- let srcId = data.objectId;
- query.equalTo("srcId", srcId);
- let importObj = await query.first();
- console.log(importObj);
-
- Object.keys(data)?.forEach(key => {
- let field = data[key];
- let srcId = field?.objectId;
- if (srcId) {
- if (key === "userId" || key === "questionnaireId" || key === "questionId") {
- data[key] = DataMap?.[key.replace("Id", "")]?.[srcId]?.toPointer();
- } else if (Array.isArray(field)) {
- data[key] = field.map(item => {
- return DataMap?.[item.className]?.[item.objectId]?.toPointer();
- });
- }
- }
- });
-
- if (!importObj?.id) {
- importObj = new CloudObject(className);
- }
-
- data.srcId = srcId;
- importObj.set(data);
- importObj = await importObj.save();
- DataMap[className][srcId] = importObj;
- }
- async function displayQuestionnaireDetails(questionnaireId) {
-
- let questionnaireQuery = new CloudQuery("Questionnaire");
- questionnaireQuery.equalTo("objectId", questionnaireId);
- let questionnaire = await questionnaireQuery.first();
-
- if (!questionnaire) {
- console.log("问卷未找到,无法展示问题和选项。");
- return;
- }
- console.log(`问卷标题: ${questionnaire.title}`);
- console.log(`问卷状态: ${questionnaire.status}`);
- console.log("问题列表:");
-
- let questionQuery = new CloudQuery("Question");
- questionQuery.equalTo("questionnaireId", {
- "__type": "Pointer",
- "className": "Questionnaire",
- "objectId": questionnaireId
- });
- let questions = await questionQuery.find();
-
- if (questions.length === 0) {
- console.log("当前问卷没有问题。");
- return;
- }
-
- for (let question of questions) {
-
- if (!question) {
- console.log("问题未找到,无法展示选项。");
- continue;
- }
- console.log(` 问题: ${question.questionText}`);
-
- let optionQuery = new CloudQuery("Option");
- optionQuery.equalTo("questionId", {
- "__type": "Pointer",
- "className": "Question",
- "objectId": question.objectId
- });
- let options = await optionQuery.find();
-
- console.log(" 选项:");
- if (options.length === 0) {
- console.log(" - 此问题没有选项。");
- } else {
- for (let option of options) {
- console.log(` - ${option.optionText} (已选: ${option.isSelected})`);
- }
- }
- console.log("");
- }
- }
- displayQuestionnaireDetails("jbg6EYXk3G");
|