From e6fc40ca1a9bb0672e9f5654677f4bc25022a007 Mon Sep 17 00:00:00 2001 From: ruibaby Date: Thu, 19 Jul 2018 00:41:15 +0800 Subject: [PATCH] =?UTF-8?q?:alien:=20=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ryanc/halo/repository/PostRepository.java | 9 ++++ .../cc/ryanc/halo/service/PostService.java | 9 ++++ .../halo/service/impl/PostServiceImpl.java | 11 ++++ .../controller/api/ApiOptionController.java | 54 +++++++++++++++++++ .../web/controller/api/ApiPageController.java | 7 +-- .../web/controller/api/ApiPostController.java | 8 +-- 6 files changed, 91 insertions(+), 7 deletions(-) create mode 100644 src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java diff --git a/src/main/java/cc/ryanc/halo/repository/PostRepository.java b/src/main/java/cc/ryanc/halo/repository/PostRepository.java index f4fab8d41..dd79f5df2 100644 --- a/src/main/java/cc/ryanc/halo/repository/PostRepository.java +++ b/src/main/java/cc/ryanc/halo/repository/PostRepository.java @@ -84,6 +84,15 @@ public interface PostRepository extends JpaRepository { */ Post findPostByPostUrlAndPostType(String postUrl, String postType); + /** + * 根据文章编号查询 + * + * @param postId 文章编号 + * @param postType post or page + * @return Post + */ + Post findPostByPostIdAndPostType(Long postId, String postType); + /** * 查询之后文章 * diff --git a/src/main/java/cc/ryanc/halo/service/PostService.java b/src/main/java/cc/ryanc/halo/service/PostService.java index 0c9c1518c..4b9439f03 100755 --- a/src/main/java/cc/ryanc/halo/service/PostService.java +++ b/src/main/java/cc/ryanc/halo/service/PostService.java @@ -117,6 +117,15 @@ public interface PostService { */ Optional findByPostId(Long postId); + /** + * 根据编号和类型查询文章 + * + * @param postId postId + * @param postType postType + * @return Post + */ + Post findByPostId(Long postId, String postType); + /** * 根据文章路径查询 * diff --git a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java index df4570fb5..e825078d2 100755 --- a/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java +++ b/src/main/java/cc/ryanc/halo/service/impl/PostServiceImpl.java @@ -192,6 +192,17 @@ public class PostServiceImpl implements PostService { return postRepository.findById(postId); } + /** + * 根据编号和类型查询文章 + * + * @param postId postId + * @return Post + */ + @Override + public Post findByPostId(Long postId, String postType) { + return postRepository.findPostByPostIdAndPostType(postId, postType); + } + /** * 根据文章路径查询 * diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java new file mode 100644 index 000000000..58922c7e2 --- /dev/null +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiOptionController.java @@ -0,0 +1,54 @@ +package cc.ryanc.halo.web.controller.api; + +import cc.ryanc.halo.model.dto.JsonResult; +import cc.ryanc.halo.model.enums.BlogProperties; +import cc.ryanc.halo.model.enums.ResponseStatus; +import cc.ryanc.halo.service.OptionsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * @author : RYAN0UP + * @date : 2018/7/19 + */ +@RestController +@RequestMapping(value = "/api/options") +public class ApiOptionController { + + @Autowired + private OptionsService optionsService; + + /** + * 获取所有设置选项 + * + * @return JsonResult + */ + @GetMapping + public JsonResult options() { + Map options = optionsService.findAllOptions(); + //去掉隐私元素 + options.remove(BlogProperties.MAIL_SMTP_HOST.getProp()); + options.remove(BlogProperties.MAIL_FROM_NAME.getProp()); + options.remove(BlogProperties.MAIL_SMTP_PASSWORD.getProp()); + options.remove(BlogProperties.MAIL_SMTP_USERNAME.getProp()); + options.remove(BlogProperties.MAIL_SMTP_USERNAME.getProp()); + return new JsonResult(ResponseStatus.SUCCESS.getCode(), ResponseStatus.SUCCESS.getMsg(), options); + } + + /** + * 获取单个设置项 + * + * @param optionName 设置选项名称 + * @return JsonResult + */ + @GetMapping(value = "/{optionName}") + public JsonResult option(@PathVariable(value = "optionName") String optionName) { + String optionValue = optionsService.findOneOption(optionName); + return new JsonResult(ResponseStatus.SUCCESS.getCode(), ResponseStatus.SUCCESS.getMsg(), optionValue); + } +} diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java index 0d79e230d..d58bcb6fd 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPageController.java @@ -25,11 +25,12 @@ public class ApiPageController { /** * 获取单个页面 * + * @param postId postId * @return JsonResult */ - @GetMapping(value = "/{postUrl}") - public JsonResult pages(@PathVariable(value = "postUrl") String postUrl) { - Post post = postService.findByPostUrl(postUrl, PostType.POST_TYPE_PAGE.getDesc()); + @GetMapping(value = "/{postId}") + public JsonResult pages(@PathVariable(value = "postId") Long postId) { + Post post = postService.findByPostId(postId, PostType.POST_TYPE_PAGE.getDesc()); if (null != post) { return new JsonResult(ResponseStatus.SUCCESS.getCode(), ResponseStatus.SUCCESS.getMsg(), post); } else { diff --git a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java index df109042a..f90841756 100644 --- a/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java +++ b/src/main/java/cc/ryanc/halo/web/controller/api/ApiPostController.java @@ -66,12 +66,12 @@ public class ApiPostController { /** * 获取单个文章信息 * - * @param postUrl 文章路径 + * @param postId 文章编号 * @return JsonResult */ - @GetMapping(value = "/{postUrl}") - public JsonResult posts(@PathVariable(value = "postUrl") String postUrl) { - Post post = postService.findByPostUrl(postUrl, PostType.POST_TYPE_POST.getDesc()); + @GetMapping(value = "/{postId}") + public JsonResult posts(@PathVariable(value = "postId") Long postId) { + Post post = postService.findByPostId(postId, PostType.POST_TYPE_POST.getDesc()); if (null != post) { return new JsonResult(ResponseStatus.SUCCESS.getCode(), ResponseStatus.SUCCESS.getMsg(), post); } else {