diff --git a/src/main/java/run/halo/app/controller/content/ContentJournalController.java b/src/main/java/run/halo/app/controller/content/ContentJournalController.java index 925542cfc..8308da3f6 100644 --- a/src/main/java/run/halo/app/controller/content/ContentJournalController.java +++ b/src/main/java/run/halo/app/controller/content/ContentJournalController.java @@ -13,6 +13,7 @@ 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.model.enums.JournalType; import run.halo.app.service.JournalCommentService; import run.halo.app.service.JournalService; import run.halo.app.service.OptionService; @@ -70,15 +71,15 @@ public class ContentJournalController { */ @GetMapping(value = "page/{page}") public String journals(Model model, - @PathVariable(value = "page") Integer page, - @SortDefault(sort = "createTime", direction = DESC) Sort sort) { + @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 journals = journalService.listAll(pageable); + Page journals = journalService.pageBy(JournalType.PUBLIC, pageable); int[] rainbow = PageUtil.rainbow(page, journals.getTotalPages(), 3); diff --git a/src/main/java/run/halo/app/repository/JournalRepository.java b/src/main/java/run/halo/app/repository/JournalRepository.java index b7e28a2c5..38b73770e 100644 --- a/src/main/java/run/halo/app/repository/JournalRepository.java +++ b/src/main/java/run/halo/app/repository/JournalRepository.java @@ -1,15 +1,29 @@ package run.halo.app.repository; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.lang.NonNull; import run.halo.app.model.entity.Journal; +import run.halo.app.model.enums.JournalType; import run.halo.app.repository.base.BaseRepository; /** * Journal repository. * * @author johnniang - * @date 3/22/19 + * @author ryanwang + * @date 2019-03-22 */ public interface JournalRepository extends BaseRepository, JpaSpecificationExecutor { + /** + * Finds journals by type and pageable. + * + * @param type journal type must not be null + * @param pageable page info must not be null + * @return a page of journal + */ + @NonNull + Page findAllByType(@NonNull JournalType type, @NonNull Pageable pageable); } diff --git a/src/main/java/run/halo/app/service/JournalService.java b/src/main/java/run/halo/app/service/JournalService.java index 080ab6068..afe469576 100644 --- a/src/main/java/run/halo/app/service/JournalService.java +++ b/src/main/java/run/halo/app/service/JournalService.java @@ -7,6 +7,7 @@ import org.springframework.lang.Nullable; import run.halo.app.model.dto.JournalDTO; import run.halo.app.model.dto.JournalWithCmtCountDTO; import run.halo.app.model.entity.Journal; +import run.halo.app.model.enums.JournalType; import run.halo.app.model.params.JournalParam; import run.halo.app.model.params.JournalQuery; import run.halo.app.service.base.CrudService; @@ -49,6 +50,16 @@ public interface JournalService extends CrudService { @NonNull Page pageBy(@NonNull JournalQuery journalQuery, @NonNull Pageable pageable); + /** + * Lists by type. + * + * @param type journal type must not be null + * @param pageable page info must not be null + * @return a page of journal + */ + @NonNull + Page pageBy(@NonNull JournalType type, @NonNull Pageable pageable); + /** * Converts to journal dto. * diff --git a/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java b/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java index 9db12351a..3ef08e66b 100644 --- a/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/JournalServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.util.CollectionUtils; import run.halo.app.model.dto.JournalDTO; import run.halo.app.model.dto.JournalWithCmtCountDTO; import run.halo.app.model.entity.Journal; +import run.halo.app.model.enums.JournalType; import run.halo.app.model.params.JournalParam; import run.halo.app.model.params.JournalQuery; import run.halo.app.repository.JournalRepository; @@ -64,6 +65,13 @@ public class JournalServiceImpl extends AbstractCrudService im return journalRepository.findAll(buildSpecByQuery(journalQuery), pageable); } + @Override + public Page pageBy(JournalType type, Pageable pageable) { + Assert.notNull(type, "Journal type must not be null"); + Assert.notNull(pageable, "Page info must not be null"); + return journalRepository.findAllByType(type, pageable); + } + @Override public JournalDTO convertTo(Journal journal) { Assert.notNull(journal, "Journal must not be null");