pull/137/head
ruibaby 2019-03-03 22:26:25 +08:00
parent 8ec7cef1e5
commit fa9cf826ee
2 changed files with 61 additions and 0 deletions

View File

@ -3,6 +3,7 @@ package cc.ryanc.halo.model.domain;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.ColumnDefault;
@ -68,6 +69,7 @@ public class Post implements Serializable {
* html
*/
@Lob
@JsonIgnore
private String postContent;
/**

View File

@ -1,12 +1,16 @@
package cc.ryanc.halo.web.controller.api;
import cc.ryanc.halo.exception.NotFoundException;
import cc.ryanc.halo.model.domain.Category;
import cc.ryanc.halo.model.domain.Post;
import cc.ryanc.halo.model.domain.Tag;
import cc.ryanc.halo.model.dto.JsonResult;
import cc.ryanc.halo.model.enums.BlogPropertiesEnum;
import cc.ryanc.halo.model.enums.PostStatusEnum;
import cc.ryanc.halo.model.enums.PostTypeEnum;
import cc.ryanc.halo.service.CategoryService;
import cc.ryanc.halo.service.PostService;
import cc.ryanc.halo.service.TagService;
import cn.hutool.core.util.StrUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
@ -38,6 +42,12 @@ public class ApiPostController {
@Autowired
private PostService postService;
@Autowired
private CategoryService categoryService;
@Autowired
private TagService tagService;
/**
*
*
@ -163,4 +173,53 @@ public class ApiPostController {
return post;
}
/**
*
*
* @param cateUrl
* @param page
* @return String
*/
@GetMapping(value = "/categories/{cateUrl}/{page}")
public JsonResult categories(@PathVariable("cateUrl") String cateUrl,
@PathVariable("page") Integer page,
@SortDefault(sort = "postDate", direction = DESC) Sort sort) {
final Category category = categoryService.findByCateUrl(cateUrl);
int size = 10;
if (StrUtil.isNotBlank(OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) {
size = Integer.parseInt(OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()));
}
final Pageable pageable = PageRequest.of(page - 1, size, sort);
final Page<Post> posts = postService.findPostByCategories(category, pageable);
if (null == posts) {
return new JsonResult(HttpStatus.NO_CONTENT.value(), HttpStatus.NO_CONTENT.getReasonPhrase());
}
return new JsonResult(HttpStatus.OK.value(), HttpStatus.OK.getReasonPhrase(), posts);
}
/**
*
*
* @param tagUrl
* @param page
* @return String
*/
@GetMapping(value = "/tags/{tagUrl}/{page}")
public JsonResult tags(@PathVariable("tagUrl") String tagUrl,
@PathVariable("page") Integer page,
@SortDefault(sort = "postDate", direction = DESC) Sort sort) {
final Tag tag = tagService.findByTagUrl(tagUrl);
int size = 10;
if (StrUtil.isNotBlank(OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) {
size = Integer.parseInt(OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()));
}
final Pageable pageable = PageRequest.of(page - 1, size, sort);
final Page<Post> posts = postService.findPostsByTags(tag, pageable);
if (null == posts) {
return new JsonResult(HttpStatus.NO_CONTENT.value(), HttpStatus.NO_CONTENT.getReasonPhrase());
}
return new JsonResult(HttpStatus.OK.value(), HttpStatus.OK.getReasonPhrase(), posts);
}
}