From 40f510f37192ae095832b8dbdb3175669629104c Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Fri, 20 Mar 2020 20:34:51 +0800 Subject: [PATCH] refactor: independent sheet. (#697) --- .../controller/admin/api/SheetController.java | 10 +++---- ...SheetDTO.java => IndependentSheetDTO.java} | 8 +++-- .../run/halo/app/service/SheetService.java | 8 ++--- .../app/service/impl/SheetServiceImpl.java | 29 ++++++++++++------- 4 files changed, 32 insertions(+), 23 deletions(-) rename src/main/java/run/halo/app/model/dto/{InternalSheetDTO.java => IndependentSheetDTO.java} (59%) diff --git a/src/main/java/run/halo/app/controller/admin/api/SheetController.java b/src/main/java/run/halo/app/controller/admin/api/SheetController.java index d862e293e..08debcf60 100644 --- a/src/main/java/run/halo/app/controller/admin/api/SheetController.java +++ b/src/main/java/run/halo/app/controller/admin/api/SheetController.java @@ -7,7 +7,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.web.PageableDefault; import org.springframework.web.bind.annotation.*; import run.halo.app.cache.AbstractStringCacheStore; -import run.halo.app.model.dto.InternalSheetDTO; +import run.halo.app.model.dto.IndependentSheetDTO; import run.halo.app.model.dto.post.BasePostDetailDTO; import run.halo.app.model.dto.post.BasePostMinimalDTO; import run.halo.app.model.entity.Sheet; @@ -67,10 +67,10 @@ public class SheetController { return sheetService.convertToListVo(sheetPage); } - @GetMapping("internal") - @ApiOperation("Lists internal sheets") - public List internalSheets() { - return sheetService.listInternal(); + @GetMapping("independent") + @ApiOperation("Lists independent sheets") + public List independentSheets() { + return sheetService.listIndependentSheets(); } @PostMapping diff --git a/src/main/java/run/halo/app/model/dto/InternalSheetDTO.java b/src/main/java/run/halo/app/model/dto/IndependentSheetDTO.java similarity index 59% rename from src/main/java/run/halo/app/model/dto/InternalSheetDTO.java rename to src/main/java/run/halo/app/model/dto/IndependentSheetDTO.java index 607d6c9bd..95d740a27 100644 --- a/src/main/java/run/halo/app/model/dto/InternalSheetDTO.java +++ b/src/main/java/run/halo/app/model/dto/IndependentSheetDTO.java @@ -9,13 +9,15 @@ import lombok.Data; * @date 2019/5/4 */ @Data -public class InternalSheetDTO { +public class IndependentSheetDTO { private Integer id; private String title; - private String url; + private String fullPath; - private Boolean status; + private String routeName; + + private Boolean available; } diff --git a/src/main/java/run/halo/app/service/SheetService.java b/src/main/java/run/halo/app/service/SheetService.java index 0954174a5..c2e0229e9 100644 --- a/src/main/java/run/halo/app/service/SheetService.java +++ b/src/main/java/run/halo/app/service/SheetService.java @@ -2,7 +2,7 @@ package run.halo.app.service; import org.springframework.data.domain.Page; import org.springframework.lang.NonNull; -import run.halo.app.model.dto.InternalSheetDTO; +import run.halo.app.model.dto.IndependentSheetDTO; import run.halo.app.model.entity.Sheet; import run.halo.app.model.entity.SheetMeta; import run.halo.app.model.enums.PostStatus; @@ -100,12 +100,12 @@ public interface SheetService extends BasePostService { String exportMarkdown(@NonNull Sheet sheet); /** - * List internal sheets. + * List independent sheets. * - * @return list of internal sheets + * @return list of independent sheets */ @NonNull - List listInternal(); + List listIndependentSheets(); /** * Converts to list dto page. diff --git a/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java b/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java index d450d17b8..f70b5d38b 100644 --- a/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/SheetServiceImpl.java @@ -13,7 +13,7 @@ import run.halo.app.event.logger.LogEvent; import run.halo.app.event.post.SheetVisitEvent; import run.halo.app.exception.AlreadyExistsException; import run.halo.app.exception.NotFoundException; -import run.halo.app.model.dto.InternalSheetDTO; +import run.halo.app.model.dto.IndependentSheetDTO; import run.halo.app.model.dto.post.BasePostMinimalDTO; import run.halo.app.model.entity.Sheet; import run.halo.app.model.entity.SheetComment; @@ -191,28 +191,35 @@ public class SheetServiceImpl extends BasePostServiceImpl implements Shee } @Override - public List listInternal() { + public List listIndependentSheets() { + + String context = (optionService.isEnabledAbsolutePath() ? optionService.getBlogBaseUrl() : "") + "/"; + + // TODO 日后将重构该部分,提供接口用于拓展独立页面,以供插件系统使用。 // links sheet - InternalSheetDTO linkSheet = new InternalSheetDTO(); + IndependentSheetDTO linkSheet = new IndependentSheetDTO(); linkSheet.setId(1); linkSheet.setTitle("友情链接"); - linkSheet.setUrl((optionService.isEnabledAbsolutePath() ? optionService.getBlogBaseUrl() : "") + "/" + optionService.getLinksPrefix()); - linkSheet.setStatus(themeService.templateExists("links.ftl")); + linkSheet.setFullPath(context + optionService.getLinksPrefix()); + linkSheet.setRouteName("LinkList"); + linkSheet.setAvailable(themeService.templateExists("links.ftl")); // photos sheet - InternalSheetDTO photoSheet = new InternalSheetDTO(); + IndependentSheetDTO photoSheet = new IndependentSheetDTO(); photoSheet.setId(2); photoSheet.setTitle("图库页面"); - photoSheet.setUrl((optionService.isEnabledAbsolutePath() ? optionService.getBlogBaseUrl() : "") + "/" + optionService.getPhotosPrefix()); - photoSheet.setStatus(themeService.templateExists("photos.ftl")); + photoSheet.setFullPath(context + optionService.getPhotosPrefix()); + photoSheet.setRouteName("PhotoList"); + photoSheet.setAvailable(themeService.templateExists("photos.ftl")); // journals sheet - InternalSheetDTO journalSheet = new InternalSheetDTO(); + IndependentSheetDTO journalSheet = new IndependentSheetDTO(); journalSheet.setId(3); journalSheet.setTitle("日志页面"); - journalSheet.setUrl((optionService.isEnabledAbsolutePath() ? optionService.getBlogBaseUrl() : "") + "/" + optionService.getJournalsPrefix()); - journalSheet.setStatus(themeService.templateExists("journals.ftl")); + journalSheet.setFullPath(context + optionService.getJournalsPrefix()); + journalSheet.setRouteName("JournalList"); + journalSheet.setAvailable(themeService.templateExists("journals.ftl")); return Arrays.asList(linkSheet, photoSheet, journalSheet); }