|
|
@@ -3,10 +3,10 @@ package nju.seec.helper.logic.convert;
|
|
|
import com.google.common.collect.ImmutableMap;
|
|
|
import lombok.experimental.UtilityClass;
|
|
|
import nju.seec.helper.data.entity.Item;
|
|
|
-import nju.seec.helper.data.entity.Page;
|
|
|
-import nju.seec.helper.data.entity.Quiz;
|
|
|
import nju.seec.helper.data.entity.Slide;
|
|
|
-import nju.seec.helper.logic.vo.*;
|
|
|
+import nju.seec.helper.logic.vo.ItemVO;
|
|
|
+import nju.seec.helper.logic.vo.SlideVO;
|
|
|
+import org.springframework.data.util.Pair;
|
|
|
|
|
|
import java.util.Comparator;
|
|
|
import java.util.Map;
|
|
|
@@ -18,49 +18,27 @@ import java.util.stream.Collectors;
|
|
|
@UtilityClass
|
|
|
public class EntityConvertFactory {
|
|
|
@SuppressWarnings("rawtypes")
|
|
|
- private final static Map<Pair, EntityConverter> MAP = new ImmutableMap.Builder<Pair, EntityConverter>()
|
|
|
+ private final Map<Pair, EntityConverter> MAP = new ImmutableMap.Builder<Pair, EntityConverter>()
|
|
|
.put(Pair.of(Slide.class, SlideVO.class), (EntityConverter<Slide, SlideVO>) slide -> SlideVO.builder()
|
|
|
.id(slide.getId())
|
|
|
.courseId(slide.getCourseId())
|
|
|
.frontendId(slide.getFrontendId())
|
|
|
+ .placeholder(slide.getPlaceholder())
|
|
|
.name(slide.getName())
|
|
|
.state(slide.getState())
|
|
|
.createTime(slide.getCreateTime())
|
|
|
.updateTime(slide.getUpdateTime())
|
|
|
- .pages(slide.getPages().stream()
|
|
|
- .sorted(Comparator.comparingInt(Page::getNumber))
|
|
|
- .map(page -> PageVO.builder()
|
|
|
- .id(page.getId())
|
|
|
- .frontendId(page.getFrontendId())
|
|
|
- .items(page.getItems().stream()
|
|
|
- .sorted(Comparator.comparingInt(Item::getNumber))
|
|
|
- .map(item -> ItemVO.builder()
|
|
|
- .id(item.getId())
|
|
|
- .frontendId(item.getFrontendId())
|
|
|
- .content(item.getContent())
|
|
|
- .build())
|
|
|
- .collect(Collectors.toList()))
|
|
|
- .quizzes(page.getQuizzes().stream()
|
|
|
- .sorted(Comparator.comparingInt(Quiz::getNumber))
|
|
|
- .map(quiz -> QuizVO.builder()
|
|
|
- .id(quiz.getId())
|
|
|
- .systemId(quiz.getSystemId())
|
|
|
- .quizType(quiz.getType())
|
|
|
- .content(quiz.getContent())
|
|
|
- .build())
|
|
|
- .collect(Collectors.toList()))
|
|
|
+ .items(slide.getItems().stream()
|
|
|
+ .sorted(Comparator.comparingInt(Item::getNumber))
|
|
|
+ .map(item -> ItemVO.builder()
|
|
|
+ .id(item.getId())
|
|
|
+ .frontendId(item.getFrontendId())
|
|
|
+ .content(item.getContent())
|
|
|
+ .transition(item.getTransition())
|
|
|
+ .type(item.getType())
|
|
|
.build())
|
|
|
.collect(Collectors.toList()))
|
|
|
.build())
|
|
|
- .put(Pair.of(Slide.class, SlideOutlineVO.class), (EntityConverter<Slide, SlideOutlineVO>) slide -> SlideOutlineVO.builder()
|
|
|
- .id(slide.getId())
|
|
|
- .courseId(slide.getCourseId())
|
|
|
- .frontendId(slide.getFrontendId())
|
|
|
- .name(slide.getName())
|
|
|
- .state(slide.getState())
|
|
|
- .createTime(slide.getCreateTime())
|
|
|
- .updateTime(slide.getUpdateTime())
|
|
|
- .build())
|
|
|
.build();
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|