From bd6cb393ff554b27d1c57c7aae0a096ae40e1ff3 Mon Sep 17 00:00:00 2001 From: Ryan Wang Date: Fri, 17 Jan 2020 12:47:55 +0800 Subject: [PATCH] feat: create theme content api. (#503) --- .../halo/app/config/HaloConfiguration.java | 2 +- .../content/ContentArchiveController.java | 2 - .../content/ContentContentController.java | 8 +- .../content/ContentIndexController.java | 2 +- .../content/api/ArchiveController.java | 4 +- .../content/api/CategoryController.java | 4 +- .../content/api/JournalController.java | 2 +- .../content/api/LinkController.java | 4 +- .../content/api/MenuController.java | 4 +- .../content/api/OptionController.java | 4 +- .../content/api/PostController.java | 4 +- .../content/api/SheetController.java | 4 +- .../content/api/StatisticController.java | 2 +- .../controller/content/api/TagController.java | 4 +- .../content/api/ThemeController.java | 43 ++++++++++ .../content/api/UserController.java | 4 +- .../controller/content/model/PostModel.java | 17 ++-- .../halo/app/model/enums/BanStatusEnum.java | 5 +- .../model/enums/CommentViolationTypeEnum.java | 1 + .../model/properties/CommentProperties.java | 1 - .../run/halo/app/model/vo/AdjacentPostVO.java | 5 +- .../app/repository/PostCommentRepository.java | 1 - .../repository/base/BasePostRepository.java | 7 +- .../app/service/CommentBlackListService.java | 1 + .../run/halo/app/service/PostService.java | 12 ++- .../app/service/impl/PostServiceImpl.java | 84 +++++++------------ .../service/impl/StaticPageServiceImpl.java | 1 - 27 files changed, 123 insertions(+), 109 deletions(-) create mode 100644 src/main/java/run/halo/app/controller/content/api/ThemeController.java diff --git a/src/main/java/run/halo/app/config/HaloConfiguration.java b/src/main/java/run/halo/app/config/HaloConfiguration.java index 2d4205e28..eb67f0bf2 100644 --- a/src/main/java/run/halo/app/config/HaloConfiguration.java +++ b/src/main/java/run/halo/app/config/HaloConfiguration.java @@ -69,7 +69,7 @@ public class HaloConfiguration { case "level": stringCacheStore = new LevelCacheStore(); break; - + case "memory": default: //memory or default diff --git a/src/main/java/run/halo/app/controller/content/ContentArchiveController.java b/src/main/java/run/halo/app/controller/content/ContentArchiveController.java index 47c11b360..f772b7423 100644 --- a/src/main/java/run/halo/app/controller/content/ContentArchiveController.java +++ b/src/main/java/run/halo/app/controller/content/ContentArchiveController.java @@ -1,8 +1,6 @@ package run.halo.app.controller.content; import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.PageUtil; -import java.util.Optional; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; diff --git a/src/main/java/run/halo/app/controller/content/ContentContentController.java b/src/main/java/run/halo/app/controller/content/ContentContentController.java index 9bcd4e40c..d4cc54ab6 100644 --- a/src/main/java/run/halo/app/controller/content/ContentContentController.java +++ b/src/main/java/run/halo/app/controller/content/ContentContentController.java @@ -59,7 +59,7 @@ public class ContentContentController { this.sheetService = sheetService; } - @GetMapping("{prefix}") + // @GetMapping("{prefix}") public String content(@PathVariable("prefix") String prefix, Model model) { String archivesPrefix = optionService.getByPropertyOrDefault(PermalinkProperties.ARCHIVES_PREFIX, String.class, PermalinkProperties.ARCHIVES_PREFIX.defaultValue()); @@ -89,7 +89,7 @@ public class ContentContentController { } } - @GetMapping("{prefix}/{url}") + // @GetMapping("{prefix}/{url}") public String content(@PathVariable("prefix") String prefix, @PathVariable("url") String url, @RequestParam(value = "token", required = false) String token, @@ -132,7 +132,7 @@ public class ContentContentController { } } -// @GetMapping("{year:^[^A-Za-z]*$}/{month:^[^A-Za-z]*$}/{url}") + // @GetMapping("{year:^[^A-Za-z]*$}/{month:^[^A-Za-z]*$}/{url}") public String content(@PathVariable("year") Integer year, @PathVariable("month") Integer month, @PathVariable("url") String url, @@ -147,7 +147,7 @@ public class ContentContentController { } } -// @GetMapping("{year:^[^A-Za-z]*$}/{month:^[^A-Za-z]*$}/{day:^[^A-Za-z]*$}/{url}") + // @GetMapping("{year:^[^A-Za-z]*$}/{month:^[^A-Za-z]*$}/{day:^[^A-Za-z]*$}/{url}") public String content(@PathVariable("year") Integer year, @PathVariable("month") Integer month, @PathVariable("day") Integer day, diff --git a/src/main/java/run/halo/app/controller/content/ContentIndexController.java b/src/main/java/run/halo/app/controller/content/ContentIndexController.java index 447a8a27f..555549a84 100644 --- a/src/main/java/run/halo/app/controller/content/ContentIndexController.java +++ b/src/main/java/run/halo/app/controller/content/ContentIndexController.java @@ -64,7 +64,7 @@ public class ContentIndexController { * Render blog index * * @param model model - * @param page current page number + * @param page current page number * @return template path: themes/{theme}/index.ftl */ @GetMapping(value = "page/{page}") diff --git a/src/main/java/run/halo/app/controller/content/api/ArchiveController.java b/src/main/java/run/halo/app/controller/content/api/ArchiveController.java index 9c48e7d4c..a0da511a4 100644 --- a/src/main/java/run/halo/app/controller/content/api/ArchiveController.java +++ b/src/main/java/run/halo/app/controller/content/api/ArchiveController.java @@ -10,10 +10,10 @@ import run.halo.app.service.PostService; import java.util.List; /** - * Archive portal controller. + * Content archive controller. * * @author johnniang - * @date 4/2/19 + * @date 2019-04-02 */ @RestController("ApiContentArchiveController") @RequestMapping("/api/content/archives") diff --git a/src/main/java/run/halo/app/controller/content/api/CategoryController.java b/src/main/java/run/halo/app/controller/content/api/CategoryController.java index 2974ccd9e..b07c609db 100644 --- a/src/main/java/run/halo/app/controller/content/api/CategoryController.java +++ b/src/main/java/run/halo/app/controller/content/api/CategoryController.java @@ -21,10 +21,10 @@ import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; /** - * Category portal controller. + * Content category controller. * * @author ryanwang - * @date 6/9/19 + * @date 2019-06-09 */ @RestController("ApiContentCategoryController") @RequestMapping("/api/content/categories") diff --git a/src/main/java/run/halo/app/controller/content/api/JournalController.java b/src/main/java/run/halo/app/controller/content/api/JournalController.java index d655825fb..d4ddfd9c2 100644 --- a/src/main/java/run/halo/app/controller/content/api/JournalController.java +++ b/src/main/java/run/halo/app/controller/content/api/JournalController.java @@ -29,7 +29,7 @@ import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; /** - * Content Journal controller. + * Content journal controller. * * @author johnniang * @author ryanwang diff --git a/src/main/java/run/halo/app/controller/content/api/LinkController.java b/src/main/java/run/halo/app/controller/content/api/LinkController.java index 20b51b35f..80d7aae46 100644 --- a/src/main/java/run/halo/app/controller/content/api/LinkController.java +++ b/src/main/java/run/halo/app/controller/content/api/LinkController.java @@ -15,11 +15,11 @@ import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; /** - * Portal link controller. + * Content link controller. * * @author johnniang * @author ryanwang - * @date 4/3/19 + * @date 2019-04-03 */ @RestController("ApiContentLinkController") @RequestMapping("/api/content/links") diff --git a/src/main/java/run/halo/app/controller/content/api/MenuController.java b/src/main/java/run/halo/app/controller/content/api/MenuController.java index 866cb5894..c03d748c9 100644 --- a/src/main/java/run/halo/app/controller/content/api/MenuController.java +++ b/src/main/java/run/halo/app/controller/content/api/MenuController.java @@ -15,11 +15,11 @@ import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; /** - * Portal menu controller. + * Content menu controller. * * @author johnniang * @author ryanwang - * @date 4/3/19 + * @date 2019-04-03 */ @RestController("ApiContentMenuController") @RequestMapping("/api/content/menus") diff --git a/src/main/java/run/halo/app/controller/content/api/OptionController.java b/src/main/java/run/halo/app/controller/content/api/OptionController.java index 4ca8000db..940890920 100644 --- a/src/main/java/run/halo/app/controller/content/api/OptionController.java +++ b/src/main/java/run/halo/app/controller/content/api/OptionController.java @@ -13,10 +13,10 @@ import java.util.List; import java.util.Map; /** - * Portal option controller. + * Content option controller. * * @author johnniang - * @date 4/3/19 + * @date 2019-04-03 */ @RestController("ApiContentOptionController") @RequestMapping("/api/content/options") diff --git a/src/main/java/run/halo/app/controller/content/api/PostController.java b/src/main/java/run/halo/app/controller/content/api/PostController.java index c8856b02f..01191fad1 100644 --- a/src/main/java/run/halo/app/controller/content/api/PostController.java +++ b/src/main/java/run/halo/app/controller/content/api/PostController.java @@ -26,10 +26,10 @@ import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; /** - * Portal post controller. + * Content post controller. * * @author johnniang - * @date 4/2/19 + * @date 2019-04-02 */ @RestController("ApiContentPostController") @RequestMapping("/api/content/posts") diff --git a/src/main/java/run/halo/app/controller/content/api/SheetController.java b/src/main/java/run/halo/app/controller/content/api/SheetController.java index 29dce97f3..0e097be36 100644 --- a/src/main/java/run/halo/app/controller/content/api/SheetController.java +++ b/src/main/java/run/halo/app/controller/content/api/SheetController.java @@ -25,11 +25,11 @@ import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; /** - * Sheet controller. + * Content sheet controller. * * @author johnniang * @author ryanwang - * @date 19-4-26 + * @date 2019-04-26 */ @RestController("ApiContentSheetController") @RequestMapping("/api/content/sheets") diff --git a/src/main/java/run/halo/app/controller/content/api/StatisticController.java b/src/main/java/run/halo/app/controller/content/api/StatisticController.java index 9faca5bf8..d4780cbaf 100644 --- a/src/main/java/run/halo/app/controller/content/api/StatisticController.java +++ b/src/main/java/run/halo/app/controller/content/api/StatisticController.java @@ -9,7 +9,7 @@ import run.halo.app.model.dto.StatisticWithUserDTO; import run.halo.app.service.StatisticService; /** - * Statistic controller. + * Content statistic controller. * * @author ryan0up * @date 2019-12-16 diff --git a/src/main/java/run/halo/app/controller/content/api/TagController.java b/src/main/java/run/halo/app/controller/content/api/TagController.java index ecf7e9ebb..4800f1b2d 100644 --- a/src/main/java/run/halo/app/controller/content/api/TagController.java +++ b/src/main/java/run/halo/app/controller/content/api/TagController.java @@ -22,11 +22,11 @@ import java.util.List; import static org.springframework.data.domain.Sort.Direction.DESC; /** - * Portal tag controller. + * Content tag controller. * * @author johnniang * @author ryanwang - * @date 4/2/19 + * @date 2019-04-02 */ @RestController("ApiContentTagController") @RequestMapping("/api/content/tags") diff --git a/src/main/java/run/halo/app/controller/content/api/ThemeController.java b/src/main/java/run/halo/app/controller/content/api/ThemeController.java new file mode 100644 index 000000000..37f8e6c57 --- /dev/null +++ b/src/main/java/run/halo/app/controller/content/api/ThemeController.java @@ -0,0 +1,43 @@ +package run.halo.app.controller.content.api; + +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import run.halo.app.handler.theme.config.support.ThemeProperty; +import run.halo.app.service.ThemeService; +import run.halo.app.service.ThemeSettingService; + +import java.util.Map; + +/** + * Content theme controller. + * + * @author ryanwang + * @date 2020-01-17 + */ +@RestController("ApiContentThemeController") +@RequestMapping("/api/content/themes") +public class ThemeController { + + private final ThemeService themeService; + + private final ThemeSettingService themeSettingService; + + public ThemeController(ThemeService themeService, ThemeSettingService themeSettingService) { + this.themeService = themeService; + this.themeSettingService = themeSettingService; + } + + @GetMapping("activation") + @ApiOperation("Gets activated theme property") + public ThemeProperty getBy() { + return themeService.getThemeOfNonNullBy(themeService.getActivatedThemeId()); + } + + @GetMapping("activation/settings") + @ApiOperation("Lists activated theme settings") + public Map listSettingsBy() { + return themeSettingService.listAsMapBy(themeService.getActivatedThemeId()); + } +} diff --git a/src/main/java/run/halo/app/controller/content/api/UserController.java b/src/main/java/run/halo/app/controller/content/api/UserController.java index b9377e740..d7de6ec0b 100644 --- a/src/main/java/run/halo/app/controller/content/api/UserController.java +++ b/src/main/java/run/halo/app/controller/content/api/UserController.java @@ -8,10 +8,10 @@ import run.halo.app.model.dto.UserDTO; import run.halo.app.service.UserService; /** - * Portal user controller. + * Content user controller. * * @author johnniang - * @date 4/3/19 + * @date 2019-04-03 */ @RestController("ApiContentUserController") @RequestMapping("/api/content/users") diff --git a/src/main/java/run/halo/app/controller/content/model/PostModel.java b/src/main/java/run/halo/app/controller/content/model/PostModel.java index 224904599..8848a49dd 100644 --- a/src/main/java/run/halo/app/controller/content/model/PostModel.java +++ b/src/main/java/run/halo/app/controller/content/model/PostModel.java @@ -1,7 +1,6 @@ package run.halo.app.controller.content.model; import cn.hutool.core.util.PageUtil; -import java.util.Optional; import org.apache.commons.lang3.StringUtils; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -51,14 +50,14 @@ public class PostModel { private final StringCacheStore cacheStore; public PostModel(PostService postService, - ThemeService themeService, - PostCategoryService postCategoryService, - CategoryService categoryService, - PostMetaService postMetaService, - PostTagService postTagService, - TagService tagService, - OptionService optionService, - StringCacheStore cacheStore) { + ThemeService themeService, + PostCategoryService postCategoryService, + CategoryService categoryService, + PostMetaService postMetaService, + PostTagService postTagService, + TagService tagService, + OptionService optionService, + StringCacheStore cacheStore) { this.postService = postService; this.themeService = themeService; this.postCategoryService = postCategoryService; diff --git a/src/main/java/run/halo/app/model/enums/BanStatusEnum.java b/src/main/java/run/halo/app/model/enums/BanStatusEnum.java index 7871e7116..c36ab2b03 100644 --- a/src/main/java/run/halo/app/model/enums/BanStatusEnum.java +++ b/src/main/java/run/halo/app/model/enums/BanStatusEnum.java @@ -4,6 +4,7 @@ import lombok.Getter; /** * 封禁状态 + * * @author Lei XinXin * @date 2020/1/5 */ @@ -12,9 +13,11 @@ public enum BanStatusEnum { /** * 封禁状态 */ - NORMAL(0),; + NORMAL(0), + ; private int status; + BanStatusEnum(int status) { this.status = status; } diff --git a/src/main/java/run/halo/app/model/enums/CommentViolationTypeEnum.java b/src/main/java/run/halo/app/model/enums/CommentViolationTypeEnum.java index ec3d0728e..15a31a294 100644 --- a/src/main/java/run/halo/app/model/enums/CommentViolationTypeEnum.java +++ b/src/main/java/run/halo/app/model/enums/CommentViolationTypeEnum.java @@ -21,6 +21,7 @@ public enum CommentViolationTypeEnum { ; private int type; + CommentViolationTypeEnum(int type) { this.type = type; } diff --git a/src/main/java/run/halo/app/model/properties/CommentProperties.java b/src/main/java/run/halo/app/model/properties/CommentProperties.java index 4e75ff505..f08aab9e8 100644 --- a/src/main/java/run/halo/app/model/properties/CommentProperties.java +++ b/src/main/java/run/halo/app/model/properties/CommentProperties.java @@ -32,7 +32,6 @@ public enum CommentProperties implements PropertyEnum { COMMENT_RANGE("comment_range", Integer.class, "30"); - private final String value; private final Class type; diff --git a/src/main/java/run/halo/app/model/vo/AdjacentPostVO.java b/src/main/java/run/halo/app/model/vo/AdjacentPostVO.java index 3f1798191..21337c068 100644 --- a/src/main/java/run/halo/app/model/vo/AdjacentPostVO.java +++ b/src/main/java/run/halo/app/model/vo/AdjacentPostVO.java @@ -1,12 +1,13 @@ package run.halo.app.model.vo; -import java.util.Optional; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import run.halo.app.model.entity.Post; +import java.util.Optional; + /** * AdjacentPost class * @@ -22,7 +23,7 @@ public class AdjacentPostVO { private Post prePost; private Post nextPost; - public Optional getOptionalPrePost(){ + public Optional getOptionalPrePost() { return Optional.ofNullable(this.getPrePost()); } diff --git a/src/main/java/run/halo/app/repository/PostCommentRepository.java b/src/main/java/run/halo/app/repository/PostCommentRepository.java index 8e05920ae..37ec1878a 100644 --- a/src/main/java/run/halo/app/repository/PostCommentRepository.java +++ b/src/main/java/run/halo/app/repository/PostCommentRepository.java @@ -7,7 +7,6 @@ import run.halo.app.model.projection.CommentChildrenCountProjection; import run.halo.app.model.projection.CommentCountProjection; import run.halo.app.repository.base.BaseCommentRepository; -import java.time.LocalDateTime; import java.util.Collection; import java.util.Date; import java.util.List; diff --git a/src/main/java/run/halo/app/repository/base/BasePostRepository.java b/src/main/java/run/halo/app/repository/base/BasePostRepository.java index 867f262b0..396060ee8 100644 --- a/src/main/java/run/halo/app/repository/base/BasePostRepository.java +++ b/src/main/java/run/halo/app/repository/base/BasePostRepository.java @@ -1,8 +1,5 @@ package run.halo.app.repository.base; -import java.util.Date; -import java.util.List; -import java.util.Optional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; @@ -13,6 +10,10 @@ import org.springframework.lang.NonNull; import run.halo.app.model.entity.BasePost; import run.halo.app.model.enums.PostStatus; +import java.util.Date; +import java.util.List; +import java.util.Optional; + /** * Base post repository. * diff --git a/src/main/java/run/halo/app/service/CommentBlackListService.java b/src/main/java/run/halo/app/service/CommentBlackListService.java index 6c7cc24ce..703cc91b7 100644 --- a/src/main/java/run/halo/app/service/CommentBlackListService.java +++ b/src/main/java/run/halo/app/service/CommentBlackListService.java @@ -4,6 +4,7 @@ import run.halo.app.model.enums.CommentViolationTypeEnum; /** * Comment BlackList Service + * * @author Lei XinXin * @date 2020/1/3 */ diff --git a/src/main/java/run/halo/app/service/PostService.java b/src/main/java/run/halo/app/service/PostService.java index ea51f159a..5217eb19d 100755 --- a/src/main/java/run/halo/app/service/PostService.java +++ b/src/main/java/run/halo/app/service/PostService.java @@ -1,6 +1,5 @@ package run.halo.app.service; -import javax.validation.constraints.NotNull; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; @@ -9,13 +8,10 @@ import run.halo.app.model.entity.Post; import run.halo.app.model.entity.PostMeta; import run.halo.app.model.enums.PostStatus; import run.halo.app.model.params.PostQuery; -import run.halo.app.model.vo.AdjacentPostVO; -import run.halo.app.model.vo.ArchiveMonthVO; -import run.halo.app.model.vo.ArchiveYearVO; -import run.halo.app.model.vo.PostDetailVO; -import run.halo.app.model.vo.PostListVO; +import run.halo.app.model.vo.*; import run.halo.app.service.base.BasePostService; +import javax.validation.constraints.NotNull; import java.util.Collection; import java.util.List; import java.util.Set; @@ -234,6 +230,7 @@ public interface PostService extends BasePostService { /** * Gets pre && next post. + * * @param currentPost post must not be null * @return AdjacentPostVO. it contains prePost and nextPost. * AdjacentPostVO will not be null. But prePost and nextPost may be null. @@ -243,8 +240,9 @@ public interface PostService extends BasePostService { /** * Get Post Pageable default sort - * @Desc contains three parts. First, Top Priority; Second, From Custom index sort; Third, basic id sort + * * @return + * @Desc contains three parts. First, Top Priority; Second, From Custom index sort; Third, basic id sort */ @NotNull Sort getPostDefaultSort(); diff --git a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java index 0d9b85109..9e7e4957b 100644 --- a/src/main/java/run/halo/app/service/impl/PostServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/PostServiceImpl.java @@ -1,27 +1,8 @@ package run.halo.app.service.impl; -import static org.springframework.data.domain.Sort.Direction.DESC; - import cn.hutool.core.date.DateUtil; import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.StrUtil; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; -import javax.persistence.criteria.Subquery; -import javax.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.context.ApplicationEventPublisher; @@ -40,39 +21,30 @@ import run.halo.app.event.logger.LogEvent; import run.halo.app.event.post.PostVisitEvent; import run.halo.app.exception.NotFoundException; import run.halo.app.model.dto.BaseMetaDTO; -import run.halo.app.model.dto.post.BasePostMinimalDTO; -import run.halo.app.model.entity.Category; -import run.halo.app.model.entity.Post; -import run.halo.app.model.entity.PostCategory; -import run.halo.app.model.entity.PostComment; -import run.halo.app.model.entity.PostMeta; -import run.halo.app.model.entity.PostTag; -import run.halo.app.model.entity.Tag; +import run.halo.app.model.entity.*; import run.halo.app.model.enums.LogType; import run.halo.app.model.enums.PostPermalinkType; import run.halo.app.model.enums.PostStatus; import run.halo.app.model.params.PostQuery; import run.halo.app.model.properties.PermalinkProperties; import run.halo.app.model.properties.PostProperties; -import run.halo.app.model.vo.AdjacentPostVO; -import run.halo.app.model.vo.ArchiveMonthVO; -import run.halo.app.model.vo.ArchiveYearVO; -import run.halo.app.model.vo.PostDetailVO; -import run.halo.app.model.vo.PostListVO; +import run.halo.app.model.vo.*; import run.halo.app.repository.PostRepository; -import run.halo.app.service.CategoryService; -import run.halo.app.service.OptionService; -import run.halo.app.service.PostCategoryService; -import run.halo.app.service.PostCommentService; -import run.halo.app.service.PostMetaService; -import run.halo.app.service.PostService; -import run.halo.app.service.PostTagService; -import run.halo.app.service.TagService; +import run.halo.app.service.*; import run.halo.app.utils.DateUtils; import run.halo.app.utils.MarkdownUtils; import run.halo.app.utils.ServiceUtils; import run.halo.app.utils.SlugUtils; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import javax.persistence.criteria.Subquery; +import javax.validation.constraints.NotNull; +import java.util.*; +import java.util.stream.Collectors; + +import static org.springframework.data.domain.Sort.Direction.DESC; + /** * Post service implementation. * @@ -105,14 +77,14 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe private final OptionService optionService; public PostServiceImpl(PostRepository postRepository, - TagService tagService, - CategoryService categoryService, - PostTagService postTagService, - PostCategoryService postCategoryService, - PostCommentService postCommentService, - ApplicationEventPublisher eventPublisher, - PostMetaService postMetaService, - OptionService optionService) { + TagService tagService, + CategoryService categoryService, + PostTagService postTagService, + PostCategoryService postCategoryService, + PostCommentService postCommentService, + ApplicationEventPublisher eventPublisher, + PostMetaService postMetaService, + OptionService optionService) { super(postRepository, optionService); this.postRepository = postRepository; this.tagService = tagService; @@ -150,7 +122,7 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe @Override @Transactional public PostDetailVO createBy(Post postToCreate, Set tagIds, Set categoryIds, - Set postMetas, boolean autoSave) { + Set postMetas, boolean autoSave) { PostDetailVO createdPost = createOrUpdate(postToCreate, tagIds, categoryIds, postMetas); if (!autoSave) { // Log the creation @@ -163,7 +135,7 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe @Override public PostDetailVO createBy(Post postToCreate, Set tagIds, Set categoryIds, - boolean autoSave) { + boolean autoSave) { PostDetailVO createdPost = createOrUpdate(postToCreate, tagIds, categoryIds, null); if (!autoSave) { // Log the creation @@ -177,7 +149,7 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe @Override @Transactional public PostDetailVO updateBy(Post postToUpdate, Set tagIds, Set categoryIds, - Set postMetas, boolean autoSave) { + Set postMetas, boolean autoSave) { // Set edit time postToUpdate.setEditTime(DateUtils.now()); PostDetailVO updatedPost = createOrUpdate(postToUpdate, tagIds, categoryIds, postMetas); @@ -623,15 +595,15 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe /** * Converts to post detail vo. * - * @param post post must not be null - * @param tags tags - * @param categories categories + * @param post post must not be null + * @param tags tags + * @param categories categories * @param postMetaList postMetas * @return post detail vo */ @NonNull private PostDetailVO convertTo(@NonNull Post post, @Nullable List tags, - @Nullable List categories, List postMetaList) { + @Nullable List categories, List postMetaList) { Assert.notNull(post, "Post must not be null"); // Convert to base detail vo @@ -709,7 +681,7 @@ public class PostServiceImpl extends BasePostServiceImpl implements PostSe } private PostDetailVO createOrUpdate(@NonNull Post post, Set tagIds, - Set categoryIds, Set postMetas) { + Set categoryIds, Set postMetas) { Assert.notNull(post, "Post param must not be null"); // Create or update post diff --git a/src/main/java/run/halo/app/service/impl/StaticPageServiceImpl.java b/src/main/java/run/halo/app/service/impl/StaticPageServiceImpl.java index 4d1d2d73a..f40ee3381 100644 --- a/src/main/java/run/halo/app/service/impl/StaticPageServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/StaticPageServiceImpl.java @@ -6,7 +6,6 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.PageUtil; import freemarker.template.Template; import freemarker.template.TemplateException; -import java.util.Optional; import lombok.extern.slf4j.Slf4j; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest;