Jelajahi Sumber

修改试卷接口,答卷提交补全缺失的任务试卷的数据关联关系

zhaosongshan 7 bulan lalu
induk
melakukan
b5ed365cb3

+ 16 - 1
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/service/impl/ExamPaperAnswerServiceImpl.java

@@ -2,6 +2,8 @@ package vip.xiaonuo.exam.service.impl;
 
 import cn.hutool.json.JSONString;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import vip.xiaonuo.auth.core.pojo.SaBaseLoginUser;
 import vip.xiaonuo.exam.domain.*;
@@ -114,11 +116,23 @@ public class ExamPaperAnswerServiceImpl extends BaseServiceImpl<ExamPaperAnswer>
         examPaperQuestionCustomerAnswerService.insertList(examPaperQuestionCustomerAnswers);
         ExamPaperTypeEnum examPaperTypeEnum = ExamPaperTypeEnum.fromCode(examPaper.getPaperType());
         if(Task.equals(examPaperTypeEnum)){
+            TextContent taskTextContent = new TextContent();
+            taskTextContent.setCreateTime(now);
+            JSONArray jsonArray = new JSONArray();
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("examPaperId", examPaper.getId());
+            jsonObject.put("examPaperAnswerId", examPaperAnswer.getId());
+            jsonObject.put("status", 1); // 1 未完成 2 完成
+            jsonArray.add(jsonObject);
+            taskTextContent.setContent(jsonArray.toJSONString());
+            textContentService.insertByFilter(taskTextContent);
+
+
             TaskExamCustomerAnswer taskExamCustomerAnswer = new TaskExamCustomerAnswer();
             taskExamCustomerAnswer.setCreateUser(user.getId());
             taskExamCustomerAnswer.setTaskExamId(examPaper.getTaskExamId());
             taskExamCustomerAnswer.setCreateTime(now);
-            taskExamCustomerAnswer.setTextContentId(textContent.getId());
+            taskExamCustomerAnswer.setTextContentId(taskTextContent.getId());
             taskExamCustomerAnswerMapper.insertSelective(taskExamCustomerAnswer);
         }
         return examPaperAnswerInfo;
@@ -160,6 +174,7 @@ public class ExamPaperAnswerServiceImpl extends BaseServiceImpl<ExamPaperAnswer>
                 TaskExamCustomerAnswer taskExamCustomerAnswer = taskExamCustomerAnswerMapper.getByTUid(taskId, userId);
                 TextContent textContent = textContentService.selectById(taskExamCustomerAnswer.getTextContentId());
                 List<TaskItemAnswerObject> taskItemAnswerObjects = JsonUtil.toJsonListObject(textContent.getContent(), TaskItemAnswerObject.class);
+
                 taskItemAnswerObjects.stream()
                         .filter(d -> d.getExamPaperAnswerId().equals(examPaperAnswer.getId()))
                         .findFirst().ifPresent(taskItemAnswerObject -> taskItemAnswerObject.setStatus(examPaperAnswer.getStatus()));