提交 b2415d33 编写于 作者: RYAN0UP's avatar RYAN0UP

Create ContentJournalController.java.

上级 2a503d85
package run.halo.app.controller.content;
import cn.hutool.core.util.PageUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.web.SortDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import run.halo.app.model.entity.Journal;
import run.halo.app.service.JournalCommentService;
import run.halo.app.service.JournalService;
import run.halo.app.service.OptionService;
import run.halo.app.service.ThemeService;
import static org.springframework.data.domain.Sort.Direction.DESC;
/**
* Blog journal page controller
*
* @author ryanwang
* @date : 2019-05-04
*/
@Slf4j
@Controller
@RequestMapping(value = "/journal")
public class ContentJournalController {
private final JournalService journalService;
private final JournalCommentService journalCommentService;
private final OptionService optionService;
private final ThemeService themeService;
public ContentJournalController(JournalService journalService,
JournalCommentService journalCommentService,
OptionService optionService,
ThemeService themeService) {
this.journalService = journalService;
this.journalCommentService = journalCommentService;
this.optionService = optionService;
this.themeService = themeService;
}
/**
* Render journal page.
*
* @param model model
* @return template path: theme/{theme}/journal.ftl
*/
@GetMapping
public String journal(Model model) {
return this.journal(model, 1, Sort.by(DESC, "createTime"));
}
/**
* Render journal page.
*
* @param model model
* @param page current page number
* @return template path: theme/{theme}/journal.ftl
*/
@GetMapping(value = "page/{page}")
public String journal(Model model,
@PathVariable(value = "page") Integer page,
@SortDefault(sort = "createTime", direction = DESC) Sort sort) {
log.debug("Requested journal page, sort info: [{}]", sort);
int pageSize = optionService.getPostPageSize();
Pageable pageable = PageRequest.of(page >= 1 ? page - 1 : page, pageSize, sort);
Page<Journal> journals = journalService.listAll(pageable);
int[] rainbow = PageUtil.rainbow(page, journals.getTotalPages(), 3);
model.addAttribute("is_journal", true);
model.addAttribute("journals", journals);
model.addAttribute("rainbow", rainbow);
return themeService.render("journal");
}
}
package run.halo.app.model.dto;
import lombok.Data;
/**
* Theme controller.
*
* @author ryanwang
* @date : 2019/5/4
*/
@Data
public class EnvironmentDTO {
private String database;
private long startTime;
}
......@@ -44,7 +44,7 @@ public interface JournalService extends CrudService<Journal, Integer> {
*
* @param journalQuery journal query must not be null
* @param pageable page info must not be null
* @return a page of post
* @return a page of journal
*/
@NonNull
Page<Journal> pageBy(@NonNull JournalQuery journalQuery, @NonNull Pageable pageable);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册