Refactor pageable and sort

pull/88/head
johnniang 2019-01-30 22:12:28 +08:00
parent 9585f1553f
commit dae2968269
14 changed files with 55 additions and 107 deletions

View File

@ -20,9 +20,9 @@ import cn.hutool.http.HtmlUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -77,7 +77,6 @@ public class AdminController extends BaseController {
* *
* *
* @param model model * @param model model
* @param session session
* @return admin/admin_index * @return admin/admin_index
*/ */
@GetMapping(value = {"", "/index"}) @GetMapping(value = {"", "/index"})
@ -201,16 +200,11 @@ public class AdminController extends BaseController {
* *
* *
* @param model model model * @param model model model
* @param page page
* @param size size
* @return admin/widget/_logs-all * @return admin/widget/_logs-all
*/ */
@GetMapping(value = "/logs") @GetMapping(value = "/logs")
public String logs(Model model, public String logs(Model model, @PageableDefault Pageable pageable) {
@RequestParam(value = "page", defaultValue = "0") Integer page,
@RequestParam(value = "size", defaultValue = "10") Integer size) {
final Sort sort = new Sort(Sort.Direction.DESC, "logId"); final Sort sort = new Sort(Sort.Direction.DESC, "logId");
final Pageable pageable = PageRequest.of(page, size, sort);
final Page<Logs> logs = logsService.findAll(pageable); final Page<Logs> logs = logsService.findAll(pageable);
model.addAttribute("logs", logs); model.addAttribute("logs", logs);
return "admin/widget/_logs-all"; return "admin/widget/_logs-all";

View File

@ -16,6 +16,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -55,15 +56,11 @@ public class AttachmentController {
* *
* *
* @param model model * @param model model
*
* @return admin/admin_attachment * @return admin/admin_attachment
*/ */
@GetMapping @GetMapping
public String attachments(Model model, public String attachments(Model model,
@RequestParam(value = "page", defaultValue = "0") Integer page, @PageableDefault(size = 18, sort = "attachId", direction = Sort.Direction.DESC) Pageable pageable) {
@RequestParam(value = "size", defaultValue = "18") Integer size) {
final Sort sort = new Sort(Sort.Direction.DESC, "attachId");
final Pageable pageable = PageRequest.of(page, size, sort);
final Page<Attachment> attachments = attachmentService.findAll(pageable); final Page<Attachment> attachments = attachmentService.findAll(pageable);
model.addAttribute("attachments", attachments); model.addAttribute("attachments", attachments);
return "admin/admin_attachment"; return "admin/admin_attachment";
@ -73,17 +70,13 @@ public class AttachmentController {
* *
* *
* @param model model * @param model model
* @param page page
*
* @return admin/widget/_attachment-select * @return admin/widget/_attachment-select
*/ */
@GetMapping(value = "/select") @GetMapping(value = "/select")
public String selectAttachment(Model model, public String selectAttachment(Model model,
@RequestParam(value = "page", defaultValue = "0") Integer page, @PageableDefault(size = 18, sort = "attachId", direction = Sort.Direction.DESC) Pageable pageable,
@RequestParam(value = "id", defaultValue = "none") String id, @RequestParam(value = "id", defaultValue = "none") String id,
@RequestParam(value = "type", defaultValue = "normal") String type) { @RequestParam(value = "type", defaultValue = "normal") String type) {
final Sort sort = new Sort(Sort.Direction.DESC, "attachId");
final Pageable pageable = PageRequest.of(page, 18, sort);
final Page<Attachment> attachments = attachmentService.findAll(pageable); final Page<Attachment> attachments = attachmentService.findAll(pageable);
model.addAttribute("attachments", attachments); model.addAttribute("attachments", attachments);
model.addAttribute("id", id); model.addAttribute("id", id);
@ -109,7 +102,6 @@ public class AttachmentController {
* *
* @param file file * @param file file
* @param request request * @param request request
*
* @return Map * @return Map
*/ */
@PostMapping(value = "/upload", produces = {"application/json;charset=UTF-8"}) @PostMapping(value = "/upload", produces = {"application/json;charset=UTF-8"})
@ -159,7 +151,6 @@ public class AttachmentController {
* *
* @param model model * @param model model
* @param attachId * @param attachId
*
* @return admin/widget/_attachment-detail * @return admin/widget/_attachment-detail
*/ */
@GetMapping(value = "/attachment") @GetMapping(value = "/attachment")
@ -174,7 +165,6 @@ public class AttachmentController {
* *
* @param attachId * @param attachId
* @param request request * @param request request
*
* @return JsonResult * @return JsonResult
*/ */
@GetMapping(value = "/remove") @GetMapping(value = "/remove")

View File

@ -24,6 +24,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -60,18 +61,12 @@ public class CommentController extends BaseController {
* *
* @param model model * @param model model
* @param status status * @param status status
* @param page page
* @param size size
*
* @return admin/admin_comment * @return admin/admin_comment
*/ */
@GetMapping @GetMapping
public String comments(Model model, public String comments(Model model,
@RequestParam(value = "status", defaultValue = "0") Integer status, @PageableDefault(sort = "commentDate", direction = Sort.Direction.DESC) Pageable pageable,
@RequestParam(value = "page", defaultValue = "0") Integer page, @RequestParam(value = "status", defaultValue = "0") Integer status) {
@RequestParam(value = "size", defaultValue = "10") Integer size) {
final Sort sort = new Sort(Sort.Direction.DESC, "commentDate");
final Pageable pageable = PageRequest.of(page, size, sort);
final Page<Comment> comments = commentService.findAll(status, pageable); final Page<Comment> comments = commentService.findAll(status, pageable);
model.addAttribute("comments", comments); model.addAttribute("comments", comments);
model.addAttribute("publicCount", commentService.getCountByStatus(CommentStatusEnum.PUBLISHED.getCode())); model.addAttribute("publicCount", commentService.getCountByStatus(CommentStatusEnum.PUBLISHED.getCode()));
@ -86,19 +81,18 @@ public class CommentController extends BaseController {
* *
* @param commentId * @param commentId
* @param status * @param status
*
* @return /admin/comments * @return /admin/comments
*/ */
@GetMapping(value = "/throw") @GetMapping(value = "/throw")
public String moveToTrash(@RequestParam("commentId") Long commentId, public String moveToTrash(@RequestParam("commentId") Long commentId,
@RequestParam("status") String status, @RequestParam("status") String status,
@RequestParam(value = "page", defaultValue = "0") Integer page) { @PageableDefault Pageable pageable) {
try { try {
commentService.updateCommentStatus(commentId, CommentStatusEnum.RECYCLE.getCode()); commentService.updateCommentStatus(commentId, CommentStatusEnum.RECYCLE.getCode());
} catch (Exception e) { } catch (Exception e) {
log.error("Delete comment failed: {}", e.getMessage()); log.error("Delete comment failed: {}", e.getMessage());
} }
return "redirect:/admin/comments?status=" + status + "&page=" + page; return "redirect:/admin/comments?status=" + status + "&page=" + pageable.getPageNumber();
} }
/** /**
@ -107,7 +101,6 @@ public class CommentController extends BaseController {
* @param commentId * @param commentId
* @param status * @param status
* @param session session * @param session session
*
* @return /admin/comments * @return /admin/comments
*/ */
@GetMapping(value = "/revert") @GetMapping(value = "/revert")
@ -128,20 +121,18 @@ public class CommentController extends BaseController {
* *
* @param commentId commentId * @param commentId commentId
* @param status status * @param status status
* @param page
*
* @return string /admin/comments * @return string /admin/comments
*/ */
@GetMapping(value = "/remove") @GetMapping(value = "/remove")
public String moveToAway(@RequestParam("commentId") Long commentId, public String moveToAway(@RequestParam("commentId") Long commentId,
@RequestParam("status") Integer status, @RequestParam("status") Integer status,
@RequestParam(value = "page", defaultValue = "0") Integer page) { @PageableDefault Pageable pageable) {
try { try {
commentService.remove(commentId); commentService.remove(commentId);
} catch (Exception e) { } catch (Exception e) {
log.error("Delete comment failed: {}", e.getMessage()); log.error("Delete comment failed: {}", e.getMessage());
} }
return "redirect:/admin/comments?status=" + status + "&page=" + page; return "redirect:/admin/comments?status=" + status + "&page=" + pageable.getPageNumber();
} }
@ -150,7 +141,6 @@ public class CommentController extends BaseController {
* *
* @param commentId * @param commentId
* @param commentContent * @param commentContent
*
* @return JsonResult * @return JsonResult
*/ */
@PostMapping(value = "/reply") @PostMapping(value = "/reply")

View File

@ -33,8 +33,6 @@ public class MenuController {
/** /**
* *
* *
* @param model model
*
* @return /admin/admin_menu * @return /admin/admin_menu
*/ */
@GetMapping @GetMapping
@ -46,7 +44,6 @@ public class MenuController {
* / * /
* *
* @param menu menu * @param menu menu
*
* @return /admin/menus * @return /admin/menus
*/ */
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ -70,7 +67,6 @@ public class MenuController {
* *
* @param menuId * @param menuId
* @param model model * @param model model
*
* @return /admin/admin_menu * @return /admin/admin_menu
*/ */
@GetMapping(value = "/edit") @GetMapping(value = "/edit")
@ -84,7 +80,6 @@ public class MenuController {
* *
* *
* @param menuId * @param menuId
*
* @return /admin/menus * @return /admin/menus
*/ */
@GetMapping(value = "/remove") @GetMapping(value = "/remove")

View File

@ -27,6 +27,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
@ -77,7 +78,6 @@ public class PageController {
* *
* *
* @param model model * @param model model
*
* @return admin/admin_page * @return admin/admin_page
*/ */
@GetMapping @GetMapping
@ -102,7 +102,6 @@ public class PageController {
* *
* @param model model * @param model model
* @param linkId linkId * @param linkId linkId
*
* @return String admin/admin_page_link * @return String admin/admin_page_link
*/ */
@GetMapping(value = "/links/edit") @GetMapping(value = "/links/edit")
@ -116,7 +115,6 @@ public class PageController {
* / * /
* *
* @param link Link * @param link Link
*
* @return JsonResult * @return JsonResult
*/ */
@PostMapping(value = "/links/save") @PostMapping(value = "/links/save")
@ -138,7 +136,6 @@ public class PageController {
* *
* *
* @param linkId * @param linkId
*
* @return /admin/page/links * @return /admin/page/links
*/ */
@GetMapping(value = "/links/remove") @GetMapping(value = "/links/remove")
@ -155,17 +152,11 @@ public class PageController {
* *
* *
* @param model model * @param model model
* @param page
* @param size
*
* @return admin/admin_page_gallery * @return admin/admin_page_gallery
*/ */
@GetMapping(value = "/galleries") @GetMapping(value = "/galleries")
public String gallery(Model model, public String gallery(Model model,
@RequestParam(value = "page", defaultValue = "0") Integer page, @PageableDefault(size = 18, sort = "galleryId", direction = Sort.Direction.DESC) Pageable pageable) {
@RequestParam(value = "size", defaultValue = "18") Integer size) {
final Sort sort = new Sort(Sort.Direction.DESC, "galleryId");
final Pageable pageable = PageRequest.of(page, size, sort);
final Page<Gallery> galleries = galleryService.findAll(pageable); final Page<Gallery> galleries = galleryService.findAll(pageable);
model.addAttribute("galleries", galleries); model.addAttribute("galleries", galleries);
return "admin/admin_page_gallery"; return "admin/admin_page_gallery";
@ -175,7 +166,6 @@ public class PageController {
* *
* *
* @param gallery gallery * @param gallery gallery
*
* @return /admin/page/gallery * @return /admin/page/gallery
*/ */
@PostMapping(value = "/gallery/save") @PostMapping(value = "/gallery/save")
@ -196,7 +186,6 @@ public class PageController {
* *
* @param model model * @param model model
* @param galleryId * @param galleryId
*
* @return admin/widget/_gallery-detail * @return admin/widget/_gallery-detail
*/ */
@GetMapping(value = "/gallery") @GetMapping(value = "/gallery")
@ -210,7 +199,6 @@ public class PageController {
* *
* *
* @param galleryId * @param galleryId
*
* @return JsonResult * @return JsonResult
*/ */
@GetMapping(value = "/gallery/remove") @GetMapping(value = "/gallery/remove")
@ -229,7 +217,6 @@ public class PageController {
* *
* *
* @param model model * @param model model
*
* @return admin/admin_page_md_editor * @return admin/admin_page_md_editor
*/ */
@GetMapping(value = "/new") @GetMapping(value = "/new")
@ -281,7 +268,6 @@ public class PageController {
* *
* @param pageId * @param pageId
* @param model model * @param model model
*
* @return admin/admin_page_md_editor * @return admin/admin_page_md_editor
*/ */
@GetMapping(value = "/edit") @GetMapping(value = "/edit")
@ -297,7 +283,6 @@ public class PageController {
* *
* *
* @param postUrl postUrl * @param postUrl postUrl
*
* @return JsonResult * @return JsonResult
*/ */
@GetMapping(value = "/checkUrl") @GetMapping(value = "/checkUrl")

View File

@ -15,7 +15,6 @@ import cc.ryanc.halo.utils.HaloUtils;
import cc.ryanc.halo.utils.LocaleMessageUtil; import cc.ryanc.halo.utils.LocaleMessageUtil;
import cc.ryanc.halo.utils.MarkdownUtils; import cc.ryanc.halo.utils.MarkdownUtils;
import cc.ryanc.halo.web.controller.core.BaseController; import cc.ryanc.halo.web.controller.core.BaseController;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
@ -23,9 +22,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.ServletRequestDataBinder; import org.springframework.web.bind.ServletRequestDataBinder;
@ -38,6 +36,8 @@ import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import static org.springframework.data.domain.Sort.Direction.DESC;
/** /**
* <pre> * <pre>
* *
@ -83,17 +83,12 @@ public class PostController extends BaseController {
* *
* *
* @param model model * @param model model
* @param page
* @param size
* @return admin/admin_post * @return admin/admin_post
*/ */
@GetMapping @GetMapping
public String posts(Model model, public String posts(Model model,
@RequestParam(value = "status", defaultValue = "0") Integer status, @RequestParam(value = "status", defaultValue = "0") Integer status,
@RequestParam(value = "page", defaultValue = "0") Integer page, @PageableDefault(sort = "postDate", direction = DESC) Pageable pageable) {
@RequestParam(value = "size", defaultValue = "10") Integer size) {
final Sort sort = new Sort(Sort.Direction.DESC, "postDate");
final Pageable pageable = PageRequest.of(page, size, sort);
final Page<Post> posts = postService.findPostByStatus(status, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); final Page<Post> posts = postService.findPostByStatus(status, PostTypeEnum.POST_TYPE_POST.getDesc(), pageable);
model.addAttribute("posts", posts); model.addAttribute("posts", posts);
model.addAttribute("publishCount", postService.getCountByStatus(PostStatusEnum.PUBLISHED.getCode())); model.addAttribute("publishCount", postService.getCountByStatus(PostStatusEnum.PUBLISHED.getCode()));
@ -108,19 +103,13 @@ public class PostController extends BaseController {
* *
* @param model Model * @param model Model
* @param keyword keyword * @param keyword keyword
* @param page page
* @param size size
* @return admin/admin_post * @return admin/admin_post
*/ */
@PostMapping(value = "/search") @PostMapping(value = "/search")
public String searchPost(Model model, public String searchPost(Model model,
@RequestParam(value = "keyword") String keyword, @RequestParam(value = "keyword") String keyword,
@RequestParam(value = "page", defaultValue = "0") Integer page, @PageableDefault(sort = "postId", direction = DESC) Pageable pageable) {
@RequestParam(value = "size", defaultValue = "10") Integer size) {
try { try {
//排序规则
final Sort sort = new Sort(Sort.Direction.DESC, "postId");
final Pageable pageable = PageRequest.of(page, size, sort);
model.addAttribute("posts", postService.searchPosts(keyword, PostTypeEnum.POST_TYPE_POST.getDesc(), PostStatusEnum.PUBLISHED.getCode(), pageable)); model.addAttribute("posts", postService.searchPosts(keyword, PostTypeEnum.POST_TYPE_POST.getDesc(), PostStatusEnum.PUBLISHED.getCode(), pageable));
} catch (Exception e) { } catch (Exception e) {
log.error("未知错误:{}", e.getMessage()); log.error("未知错误:{}", e.getMessage());

View File

@ -14,8 +14,12 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.PageableDefault;
import org.springframework.data.web.SortDefault;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import static org.springframework.data.domain.Sort.Direction.DESC;
/** /**
* <pre> * <pre>
* API * API
@ -95,12 +99,10 @@ public class ApiPostController {
* </p> * </p>
* *
* @param page * @param page
*
* @return JsonResult * @return JsonResult
*/ */
@GetMapping(value = "/page/{page}") @GetMapping(value = "/page/{page}")
public JsonResult posts(@PathVariable(value = "page") Integer page) { public JsonResult posts(@PathVariable(value = "page") Integer page, @SortDefault(sort = "postDate", direction = DESC) Sort sort) {
final Sort sort = new Sort(Sort.Direction.DESC, "postDate");
int size = 10; int size = 10;
if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) {
size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()));
@ -147,7 +149,6 @@ public class ApiPostController {
* </p> * </p>
* *
* @param postId * @param postId
*
* @return JsonResult * @return JsonResult
*/ */
@GetMapping(value = "/{postId}") @GetMapping(value = "/{postId}")

View File

@ -41,7 +41,6 @@ public class CommonController implements ErrorController {
/** /**
* 404 * 404
* *
* @param model model
* @return String * @return String
*/ */
@GetMapping(value = "/404") @GetMapping(value = "/404")
@ -52,7 +51,6 @@ public class CommonController implements ErrorController {
/** /**
* 500 * 500
* *
* @param model model
* @return String * @return String
*/ */
@GetMapping(value = "/500") @GetMapping(value = "/500")

View File

@ -85,8 +85,6 @@ public class InstallController {
* *
* *
* @param blogLocale * @param blogLocale
* @param siteTitle
* @param siteUrl
* @param userName * @param userName
* @param userDisplayName * @param userDisplayName
* @param userEmail * @param userEmail

View File

@ -22,6 +22,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.SortDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -33,6 +34,8 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import static org.springframework.data.domain.Sort.Direction.DESC;
/** /**
* <pre> * <pre>
* *
@ -62,7 +65,7 @@ public class FrontArchiveController extends BaseController {
*/ */
@GetMapping @GetMapping
public String archives(Model model) { public String archives(Model model) {
return this.archives(model, 1); return this.archives(model, 1, Sort.by(DESC, "postDate"));
} }
/** /**
@ -74,10 +77,9 @@ public class FrontArchiveController extends BaseController {
*/ */
@GetMapping(value = "page/{page}") @GetMapping(value = "page/{page}")
public String archives(Model model, public String archives(Model model,
@PathVariable(value = "page") Integer page) { @PathVariable(value = "page") Integer page,
@SortDefault(sort = "postDate", direction = DESC) Sort sort) {
//所有文章数据分页material主题适用 //所有文章数据分页material主题适用
final Sort sort = new Sort(Sort.Direction.DESC, "postDate");
final Pageable pageable = PageRequest.of(page - 1, 5, sort); final Pageable pageable = PageRequest.of(page - 1, 5, sort);
final Page<Post> posts = postService.findPostByStatus(PostStatusEnum.PUBLISHED.getCode(), PostTypeEnum.POST_TYPE_POST.getDesc(), pageable); final Page<Post> posts = postService.findPostByStatus(PostStatusEnum.PUBLISHED.getCode(), PostTypeEnum.POST_TYPE_POST.getDesc(), pageable);
if (null == posts) { if (null == posts) {

View File

@ -14,6 +14,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.SortDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -22,6 +23,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List; import java.util.List;
import static org.springframework.data.domain.Sort.Direction.DESC;
/** /**
* <pre> * <pre>
* *
@ -44,7 +47,6 @@ public class FrontCategoryController extends BaseController {
* *
* *
* @param model model * @param model model
*
* @return String * @return String
*/ */
@GetMapping @GetMapping
@ -59,13 +61,12 @@ public class FrontCategoryController extends BaseController {
* *
* @param model model * @param model model
* @param cateUrl cateUrl * @param cateUrl cateUrl
*
* @return string * @return string
*/ */
@GetMapping(value = "{cateUrl}") @GetMapping(value = "{cateUrl}")
public String categories(Model model, public String categories(Model model,
@PathVariable("cateUrl") String cateUrl) { @PathVariable("cateUrl") String cateUrl) {
return this.categories(model, cateUrl, 1); return this.categories(model, cateUrl, 1, Sort.by(DESC, "postDate"));
} }
/** /**
@ -74,18 +75,17 @@ public class FrontCategoryController extends BaseController {
* @param model model * @param model model
* @param cateUrl * @param cateUrl
* @param page * @param page
*
* @return String * @return String
*/ */
@GetMapping("{cateUrl}/page/{page}") @GetMapping("{cateUrl}/page/{page}")
public String categories(Model model, public String categories(Model model,
@PathVariable("cateUrl") String cateUrl, @PathVariable("cateUrl") String cateUrl,
@PathVariable("page") Integer page) { @PathVariable("page") Integer page,
@SortDefault(sort = "postDate", direction = DESC) Sort sort) {
final Category category = categoryService.findByCateUrl(cateUrl); final Category category = categoryService.findByCateUrl(cateUrl);
if (null == category) { if (null == category) {
return this.renderNotFound(); return this.renderNotFound();
} }
final Sort sort = new Sort(Sort.Direction.DESC, "postDate");
int size = 10; int size = 10;
if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) {
size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()));

View File

@ -13,12 +13,15 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.SortDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import static org.springframework.data.domain.Sort.Direction.DESC;
/** /**
* <pre> * <pre>
* *
@ -44,7 +47,7 @@ public class FrontIndexController extends BaseController {
*/ */
@GetMapping @GetMapping
public String index(Model model) { public String index(Model model) {
return this.index(model, 1); return this.index(model, 1, Sort.by(DESC, "postDate"));
} }
/** /**
@ -52,13 +55,12 @@ public class FrontIndexController extends BaseController {
* *
* @param model model * @param model model
* @param page * @param page
* @param size
* @return /themes/{theme}/index * @return /themes/{theme}/index
*/ */
@GetMapping(value = "page/{page}") @GetMapping(value = "page/{page}")
public String index(Model model, public String index(Model model,
@PathVariable(value = "page") Integer page) { @PathVariable(value = "page") Integer page,
final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); @SortDefault(sort = "postDate", direction = DESC) Sort sort) {
//默认显示10条 //默认显示10条
int size = 10; int size = 10;
if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) {

View File

@ -16,6 +16,7 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.SortDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -23,6 +24,8 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import static org.springframework.data.domain.Sort.Direction.DESC;
/** /**
* <pre> * <pre>
* *
@ -49,7 +52,7 @@ public class FrontSearchController extends BaseController {
@GetMapping @GetMapping
public String search(Model model, public String search(Model model,
@RequestParam(value = "keyword") String keyword) { @RequestParam(value = "keyword") String keyword) {
return this.search(model, HtmlUtil.escape(keyword), 1); return this.search(model, HtmlUtil.escape(keyword), 1, Sort.by(DESC, "postDate"));
} }
/** /**
@ -63,8 +66,8 @@ public class FrontSearchController extends BaseController {
@GetMapping(value = "page/{page}") @GetMapping(value = "page/{page}")
public String search(Model model, public String search(Model model,
@RequestParam(value = "keyword") String keyword, @RequestParam(value = "keyword") String keyword,
@PathVariable(value = "page") Integer page) { @PathVariable(value = "page") Integer page,
final Sort sort = new Sort(Sort.Direction.DESC, "postDate"); @SortDefault(sort = "postDate", direction = DESC) Sort sort) {
int size = 10; int size = 10;
if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) {
size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()));

View File

@ -14,12 +14,15 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.data.web.SortDefault;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import static org.springframework.data.domain.Sort.Direction.DESC;
/** /**
* <pre> * <pre>
* *
@ -53,13 +56,12 @@ public class FrontTagController extends BaseController {
* *
* @param tagUrl * @param tagUrl
* @param model model * @param model model
*
* @return String * @return String
*/ */
@GetMapping(value = "{tagUrl}") @GetMapping(value = "{tagUrl}")
public String tags(Model model, public String tags(Model model,
@PathVariable("tagUrl") String tagUrl) { @PathVariable("tagUrl") String tagUrl) {
return this.tags(model, tagUrl, 1); return this.tags(model, tagUrl, 1, Sort.by(DESC, "postDate"));
} }
/** /**
@ -68,18 +70,17 @@ public class FrontTagController extends BaseController {
* @param model model * @param model model
* @param tagUrl * @param tagUrl
* @param page * @param page
*
* @return String * @return String
*/ */
@GetMapping(value = "{tagUrl}/page/{page}") @GetMapping(value = "{tagUrl}/page/{page}")
public String tags(Model model, public String tags(Model model,
@PathVariable("tagUrl") String tagUrl, @PathVariable("tagUrl") String tagUrl,
@PathVariable("page") Integer page) { @PathVariable("page") Integer page,
@SortDefault(sort = "postDate", direction = DESC) Sort sort) {
final Tag tag = tagService.findByTagUrl(tagUrl); final Tag tag = tagService.findByTagUrl(tagUrl);
if (null == tag) { if (null == tag) {
return this.renderNotFound(); return this.renderNotFound();
} }
final Sort sort = new Sort(Sort.Direction.DESC, "postDate");
int size = 10; int size = 10;
if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) { if (StrUtil.isNotBlank(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()))) {
size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp())); size = Integer.parseInt(HaloConst.OPTIONS.get(BlogPropertiesEnum.INDEX_POSTS.getProp()));