diff --git a/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/SubjectInfoDomainService.java b/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/SubjectInfoDomainService.java index 814c71e..6f6a4b9 100644 --- a/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/SubjectInfoDomainService.java +++ b/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/SubjectInfoDomainService.java @@ -44,4 +44,5 @@ public interface SubjectInfoDomainService { PageResult getSubjectPageBySearch(SubjectInfoBO subjectInfoBO); List getContributeList(); + } diff --git a/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/impl/SubjectInfoDomainServiceImpl.java b/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/impl/SubjectInfoDomainServiceImpl.java index 54ef506..c3fdf72 100644 --- a/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/impl/SubjectInfoDomainServiceImpl.java +++ b/qing-yu-club-subject/qing-yu-club-domain/src/main/java/com/landaiqing/subject/domain/service/impl/SubjectInfoDomainServiceImpl.java @@ -154,8 +154,22 @@ public class SubjectInfoDomainServiceImpl implements SubjectInfoDomainService { bo.setLabelName(labelNameList); bo.setLiked(subjectLikedDomainService.isLiked(subjectInfoBO.getId().toString(), LoginUtil.getLoginId())); bo.setLikedCount(subjectLikedDomainService.getLikedCount(subjectInfoBO.getId().toString())); + + assembleSubjectCursor(subjectInfoBO,bo); return bo; } + private void assembleSubjectCursor(SubjectInfoBO subjectInfoBO, SubjectInfoBO bo) { + Long categoryId = subjectInfoBO.getCategoryId(); + Long labelId = subjectInfoBO.getLabelId(); + Long subjectId = subjectInfoBO.getId(); + if (Objects.isNull(categoryId) || Objects.isNull(labelId)) { + return; + } + Long nextSubjectId = subjectInfoService.querySubjectIdCursor(subjectId, categoryId, labelId, 1); + bo.setNextSubjectId(nextSubjectId); + Long lastSubjectId = subjectInfoService.querySubjectIdCursor(subjectId, categoryId, labelId, 0); + bo.setLastSubjectId(lastSubjectId); + } @Override public PageResult getSubjectPageBySearch(SubjectInfoBO subjectInfoBO) { diff --git a/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/mapper/SubjectInfoDao.java b/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/mapper/SubjectInfoDao.java index 39d206d..7ba4fb2 100644 --- a/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/mapper/SubjectInfoDao.java +++ b/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/mapper/SubjectInfoDao.java @@ -90,5 +90,10 @@ public interface SubjectInfoDao { @Param("pageSize") Integer pageSize); List getContributeCount(); + + Long querySubjectIdCursor(@Param("subjectId") Long subjectId, + @Param("categoryId") Long categoryId, + @Param("labelId") Long labelId, + @Param("cursor") int cursor); } diff --git a/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/SubjectInfoService.java b/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/SubjectInfoService.java index 71d7678..de74522 100644 --- a/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/SubjectInfoService.java +++ b/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/SubjectInfoService.java @@ -50,4 +50,7 @@ public interface SubjectInfoService { List queryPage(SubjectInfo subjectInfo, Long categoryId, Long labelId, int start, Integer pageSize); List getContributeCount(); + + Long querySubjectIdCursor(Long subjectId, Long categoryId, Long labelId, int cursor); + } diff --git a/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/impl/SubjectInfoServiceImpl.java b/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/impl/SubjectInfoServiceImpl.java index c2806c9..09f7fb2 100644 --- a/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/impl/SubjectInfoServiceImpl.java +++ b/qing-yu-club-subject/qing-yu-club-infra/src/main/java/com/landaiqing/subject/infra/basic/service/impl/SubjectInfoServiceImpl.java @@ -81,4 +81,9 @@ public class SubjectInfoServiceImpl implements SubjectInfoService { public List getContributeCount() { return this.subjectInfoDao.getContributeCount(); } + + @Override + public Long querySubjectIdCursor(Long subjectId, Long categoryId, Long labelId, int cursor) { + return this.subjectInfoDao.querySubjectIdCursor(subjectId, categoryId, labelId, cursor); + } } diff --git a/qing-yu-club-subject/qing-yu-club-infra/src/main/resources/mapper/SubjectInfoDao.xml b/qing-yu-club-subject/qing-yu-club-infra/src/main/resources/mapper/SubjectInfoDao.xml index cf9ef50..dcee76f 100644 --- a/qing-yu-club-subject/qing-yu-club-infra/src/main/resources/mapper/SubjectInfoDao.xml +++ b/qing-yu-club-subject/qing-yu-club-infra/src/main/resources/mapper/SubjectInfoDao.xml @@ -140,6 +140,23 @@ and a.subject_type = #{subjectInfo.subjectType} + + +