Просмотр исходного кода

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

zhaosongshan 7 месяцев назад
Родитель
Сommit
899d5d64b8

+ 85 - 24
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/src/main/java/vip/xiaonuo/exam/controller/student/DashboardController.java

@@ -1,5 +1,7 @@
 package vip.xiaonuo.exam.controller.student;
 
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -75,21 +77,58 @@ public class DashboardController extends BaseApiController {
     public CommonResult<List<TaskItemVm>> task() {
         SaBaseLoginUser user = getCurrentUser();
         List<TaskExam> taskExams = taskExamService.getByGradeLevel(user.getSortCode());
+
         if (taskExams.size() == 0) {
             return CommonResult.data(new ArrayList<>());
         }
         List<Integer> tIds = taskExams.stream().map(taskExam -> taskExam.getId()).collect(Collectors.toList());
         List<TaskExamCustomerAnswer> taskExamCustomerAnswers = taskExamCustomerAnswerService.selectByTUid(tIds, user.getId());
-        List<TaskItemVm> vm = taskExams.stream().map(t -> {
+
+
+        List<TaskItemVm> vm = new ArrayList<TaskItemVm>();
+        for(TaskExam t : taskExams){
             TaskItemVm itemVm = new TaskItemVm();
             itemVm.setId(t.getId());
             itemVm.setTitle(t.getTitle());
-            TaskExamCustomerAnswer taskExamCustomerAnswer = taskExamCustomerAnswers.stream()
-                    .filter(tc -> tc.getTaskExamId().equals(t.getId())).findFirst().orElse(null);
-            List<TaskItemPaperVm> paperItemVMS = getTaskItemPaperVm(t.getFrameTextContentId(), taskExamCustomerAnswer);
-            itemVm.setPaperItems(paperItemVMS);
-            return itemVm;
-        }).collect(Collectors.toList());
+            TaskExamCustomerAnswer taskExamCustomerAnswer = null;
+            for(TaskExamCustomerAnswer tec : taskExamCustomerAnswers){
+                System.out.println(tec.getTaskExamId().intValue());
+                System.out.println(t.getId().intValue());
+                if(tec.getTaskExamId().intValue() == t.getId().intValue()){
+                    taskExamCustomerAnswer = tec;
+                }
+            }
+            if(taskExamCustomerAnswer != null){
+                List<TaskItemPaperVm> paperItemVMS = getTaskItemPaperVm(t.getFrameTextContentId(), taskExamCustomerAnswer);
+                if(paperItemVMS != null){
+                    itemVm.setPaperItems(paperItemVMS);
+                }
+                vm.add(itemVm);
+            }
+        }
+
+
+
+//        List<TaskItemVm> vm = taskExams.stream().map(t -> {
+//            TaskItemVm itemVm = new TaskItemVm();
+//            itemVm.setId(t.getId());
+//            itemVm.setTitle(t.getTitle());
+//            TaskExamCustomerAnswer taskExamCustomerAnswer = null;
+//            for(TaskExamCustomerAnswer tec : taskExamCustomerAnswers){
+//                System.out.println(tec.getTaskExamId().intValue());
+//                System.out.println(t.getId().intValue());
+//                if(tec.getTaskExamId().intValue() == t.getId().intValue()){
+//                    taskExamCustomerAnswer = tec;
+//                }
+//            }
+//            if(taskExamCustomerAnswer != null){
+//                System.out.println("taskExamCustomerAnswertaskExamCustomerAnswer "+taskExamCustomerAnswer);
+//                List<TaskItemPaperVm> paperItemVMS = getTaskItemPaperVm(t.getFrameTextContentId(), taskExamCustomerAnswer);
+//                itemVm.setPaperItems(paperItemVMS);
+//                return itemVm;
+//            }
+//
+//        }).collect(Collectors.toList());
         return CommonResult.data(vm);
     }
 
@@ -103,24 +142,46 @@ public class DashboardController extends BaseApiController {
             TextContent answerTextContent = textContentService.selectById(taskExamCustomerAnswers.getTextContentId());
             answerPaperItems = JsonUtil.toJsonListObject(answerTextContent.getContent(), TaskItemAnswerObject.class);
         }
-
-
-        List<TaskItemAnswerObject> finalAnswerPaperItems = answerPaperItems;
-        return paperItems.stream().map(p -> {
-                    TaskItemPaperVm ivm = new TaskItemPaperVm();
-                    ivm.setExamPaperId(p.getExamPaperId());
-                    ivm.setExamPaperName(p.getExamPaperName());
-                    if (null != finalAnswerPaperItems) {
-                        finalAnswerPaperItems.stream()
-                                .filter(a -> a.getExamPaperId().equals(p.getExamPaperId()))
-                                .findFirst()
-                                .ifPresent(a -> {
-                                    ivm.setExamPaperAnswerId(a.getExamPaperAnswerId());
-                                    ivm.setStatus(a.getStatus());
-                                });
+        if(answerPaperItems != null){
+            List<TaskItemAnswerObject> finalAnswerPaperItems = answerPaperItems;
+
+            List<TaskItemPaperVm> results = new ArrayList<TaskItemPaperVm>();
+            for(TaskItemObject p : paperItems){
+                TaskItemPaperVm ivm = new TaskItemPaperVm();
+                ivm.setExamPaperId(p.getExamPaperId());
+                ivm.setExamPaperName(p.getExamPaperName());
+                if (null != finalAnswerPaperItems) {
+                    for(TaskItemAnswerObject a :finalAnswerPaperItems){
+                        if(a != null && a.getExamPaperId() !=null && a.getExamPaperId().equals(p.getExamPaperId())){
+                            ivm.setExamPaperAnswerId(a.getExamPaperAnswerId());
+                            ivm.setStatus(a.getStatus());
+                        }
                     }
-                    return ivm;
                 }
-        ).collect(Collectors.toList());
+                if(ivm.getExamPaperAnswerId() == null){
+                    results.add(ivm);
+                }
+            }
+            return results;
+
+//            return paperItems.stream().map(p -> {
+//                        TaskItemPaperVm ivm = new TaskItemPaperVm();
+//                        ivm.setExamPaperId(p.getExamPaperId());
+//                        ivm.setExamPaperName(p.getExamPaperName());
+//                        if (null != finalAnswerPaperItems) {
+//                            finalAnswerPaperItems.stream()
+//                                    .filter(a -> a.getExamPaperId().equals(p.getExamPaperId()))
+//                                    .findFirst()
+//                                    .ifPresent(a -> {
+//                                        ivm.setExamPaperAnswerId(a.getExamPaperAnswerId());
+//                                        ivm.setStatus(a.getStatus());
+//                                    });
+//                        }
+//                        return ivm;
+//                    }
+//            ).collect(Collectors.toList());
+        }else{
+            return null;
+        }
     }
 }