From 790c2ba4a0b46edf191e3bac84931f796bd42b8f Mon Sep 17 00:00:00 2001
From: zhangf <1603559716@qq.com>
Date: 星期三, 24 七月 2024 09:02:49 +0800
Subject: [PATCH] 三方对接接口优化

---
 exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 0 deletions(-)

diff --git a/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
new file mode 100644
index 0000000..8a4a0a6
--- /dev/null
+++ b/exam-system/src/main/java/com/gkhy/exam/institutionalaccess/service/serviceImpl/ThStudyRecordManagerServiceImpl.java
@@ -0,0 +1,104 @@
+package com.gkhy.exam.institutionalaccess.service.serviceImpl;
+
+import com.gkhy.exam.institutionalaccess.entity.*;
+import com.gkhy.exam.institutionalaccess.model.query.ThStudyDetailQuery;
+import com.gkhy.exam.institutionalaccess.model.vo.ThStudyAuthVO;
+import com.gkhy.exam.institutionalaccess.model.vo.ThStudyDetailVO;
+import com.gkhy.exam.institutionalaccess.model.vo.ThStudyTrackVO;
+import com.gkhy.exam.institutionalaccess.service.*;
+import com.gkhy.exam.institutionalaccess.utils.ConvertTimeUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service("ThStudyRecordManagerService")
+public class ThStudyRecordManagerServiceImpl implements ThStudyRecordManagerService {
+    @Autowired
+    private ThStudyDetailService thStudyDetailService;
+    @Autowired
+    private ThStudyTrackService thStudyTrackService;
+    @Autowired
+    private ThStudyAuthService thStudyAuthService;
+    @Autowired
+    private ThCourseChapterService thCourseChapterService;;
+    @Autowired
+    private ThCourseService thCourseService;
+    @Autowired
+    private ThBatchService thBatchService;
+    @Autowired
+    private ThStudentService studentService;;
+
+    @Override
+    public List<ThStudyDetailVO> listByPage(ThStudyDetailQuery query) {
+        query.setStartSize((query.getPageNum()-1)*query.getPageSize());
+
+        List<ThStudyDetailVO> thStudyDetailVOS = thStudyDetailService.listByPage(query);
+
+        if(!CollectionUtils.isEmpty(thStudyDetailVOS)){
+            List<String> detailUuids = thStudyDetailVOS.stream().map(ThStudyDetailVO::getUuid).collect(Collectors.toList());
+            //获取认证记录
+            List<ThStudyAuth> authList = thStudyAuthService.getByStudyDetaiUuids(detailUuids);
+            //获取轨迹
+            List<ThStudyTrack> trackList = thStudyTrackService.getListByStudyDetaiIds(detailUuids);
+            //获取章节名称
+            List<String> chapterUuids = thStudyDetailVOS.stream().map(ThStudyDetailVO::getChapterUuid).collect(Collectors.toList());
+            List<ThCourseChapter> chapterList = thCourseChapterService.getChapterNameByUuids(chapterUuids);
+            //获取课程名称
+            List<String> courseUuids = thStudyDetailVOS.stream().map(ThStudyDetailVO::getCourseUuid).collect(Collectors.toList());
+            List<ThCourse> courseList = thCourseService.getCourseNameByUuids(courseUuids);
+            //获取批次名称
+            List<String> batchUuids = thStudyDetailVOS.stream().map(ThStudyDetailVO::getBatchUuid).collect(Collectors.toList());
+            List<ThBatch> batchList = thBatchService.getBatchNameByUuids(batchUuids);
+            //学生信息
+            List<String> idcards = thStudyDetailVOS.stream().map(ThStudyDetailVO::getIdcard).collect(Collectors.toList());
+            List<ThStudent> studentList = studentService.getNameByIdcards(idcards);
+            for(ThStudyDetailVO thStudyDetailVO : thStudyDetailVOS){
+                thStudyDetailVO.setDurationDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getDuration()));
+                thStudyDetailVO.setStartPositionDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getStartPosition()));
+                thStudyDetailVO.setFinishPositionDesc(ConvertTimeUtils.convertTimeToString(thStudyDetailVO.getFinishPosition()));
+                List<ThStudyAuthVO> thStudyAuthVOList = authList.stream().filter(a -> a.getStudyDetailUuid().equals(thStudyDetailVO.getUuid()))
+                        .map(a -> {
+                            ThStudyAuthVO thStudyAuthVO = new ThStudyAuthVO();
+                            BeanUtils.copyProperties(a, thStudyAuthVO);
+                            thStudyAuthVO.setAuthPostionDesc(ConvertTimeUtils.convertTimeToString(a.getAuthPosition()));
+                            return thStudyAuthVO;
+                        }).collect(Collectors.toList());
+
+                List<ThStudyTrackVO> trackVOList = trackList.stream().filter(t -> t.getStudyDetailUuid().equals(thStudyDetailVO.getUuid()))
+                        .map(t -> {
+                            ThStudyTrackVO thStudyTrackVO = new ThStudyTrackVO();
+                            BeanUtils.copyProperties(t, thStudyTrackVO);
+                            thStudyTrackVO.setTimeIntervalDesc(ConvertTimeUtils.convertTimeToString(t.getTimeInterval()));
+                            return thStudyTrackVO;
+                        }).collect(Collectors.toList());
+                thStudyDetailVO.setAuthList(thStudyAuthVOList);
+                thStudyDetailVO.setTrackList(trackVOList);
+                List<ThCourseChapter> chapterSelectList = chapterList.stream().filter(chapter -> chapter.getUuid().equals(thStudyDetailVO.getChapterUuid())).collect(Collectors.toList());
+                if(!CollectionUtils.isEmpty(chapterSelectList)){
+                    thStudyDetailVO.setChapterName(chapterSelectList.get(0).getChapterName());
+                }
+                List<ThCourse> courseSelectList = courseList.stream().filter(c -> c.getUuid().equals(thStudyDetailVO.getCourseUuid())).collect(Collectors.toList());
+                if(!CollectionUtils.isEmpty(courseSelectList)){
+                    thStudyDetailVO.setCourseName(courseSelectList.get(0).getCourseName());
+                }
+                List<ThBatch> batchSelectList = batchList.stream().filter(b -> b.getUuid().equals(thStudyDetailVO.getBatchUuid())).collect(Collectors.toList());
+                if(!CollectionUtils.isEmpty(batchSelectList)){
+                    thStudyDetailVO.setBatchName(batchSelectList.get(0).getBatchName());
+                }
+                List<ThStudent> studentSelectList = studentList.stream().filter(thStudent -> thStudent.getIdcard().equals(thStudyDetailVO.getIdcard())).collect(Collectors.toList());
+                if(!CollectionUtils.isEmpty(studentSelectList)){
+                    thStudyDetailVO.setName(studentSelectList.get(0).getName());
+                }
+
+            }
+        }
+        return thStudyDetailVOS;
+    }
+
+
+}

--
Gitblit v1.9.2