From 11dcf3f9a56f476693496b144c66cd07346ae020 Mon Sep 17 00:00:00 2001 From: xiongxiaoyang <773861846@qq.com> Date: Sat, 14 May 2022 17:00:13 +0800 Subject: [PATCH] =?UTF-8?q?feat(home):=20=E5=A2=9E=E5=8A=A0=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E5=8F=8B=E6=83=85=E9=93=BE=E6=8E=A5=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/front/HomeController.java | 10 +++++ .../novel/dto/resp/HomeFriendLinkRespDto.java | 29 +++++++++++++ .../novel/manager/FriendLinkCacheManager.java | 43 +++++++++++++++++++ .../xxyopen/novel/service/HomeService.java | 6 +++ .../novel/service/impl/HomeServiceImpl.java | 9 ++++ 5 files changed, 97 insertions(+) create mode 100644 src/main/java/io/github/xxyopen/novel/dto/resp/HomeFriendLinkRespDto.java create mode 100644 src/main/java/io/github/xxyopen/novel/manager/FriendLinkCacheManager.java diff --git a/src/main/java/io/github/xxyopen/novel/controller/front/HomeController.java b/src/main/java/io/github/xxyopen/novel/controller/front/HomeController.java index 178e58d..2b206c0 100644 --- a/src/main/java/io/github/xxyopen/novel/controller/front/HomeController.java +++ b/src/main/java/io/github/xxyopen/novel/controller/front/HomeController.java @@ -3,6 +3,7 @@ package io.github.xxyopen.novel.controller.front; import io.github.xxyopen.novel.core.common.constant.ApiRouterConsts; import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.dto.resp.HomeBookRespDto; +import io.github.xxyopen.novel.dto.resp.HomeFriendLinkRespDto; import io.github.xxyopen.novel.service.HomeService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; @@ -31,4 +32,13 @@ public class HomeController { public RestResp> listHomeBooks(){ return homeService.listHomeBooks(); } + + /** + * 首页友情链接列表查询接口 + * */ + @GetMapping("friendLinks") + public RestResp> listHomeFriendLinks(){ + return homeService.listHomeFriendLinks(); + } + } diff --git a/src/main/java/io/github/xxyopen/novel/dto/resp/HomeFriendLinkRespDto.java b/src/main/java/io/github/xxyopen/novel/dto/resp/HomeFriendLinkRespDto.java new file mode 100644 index 0000000..8478b71 --- /dev/null +++ b/src/main/java/io/github/xxyopen/novel/dto/resp/HomeFriendLinkRespDto.java @@ -0,0 +1,29 @@ +package io.github.xxyopen.novel.dto.resp; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 首页友情链接 响应DTO + * + * @author xiongxiaoyang + * @date 2022/5/14 + */ +@Data +public class HomeFriendLinkRespDto implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 链接名 + */ + private String linkName; + + /** + * 链接url + */ + private String linkUrl; +} diff --git a/src/main/java/io/github/xxyopen/novel/manager/FriendLinkCacheManager.java b/src/main/java/io/github/xxyopen/novel/manager/FriendLinkCacheManager.java new file mode 100644 index 0000000..2ae3eac --- /dev/null +++ b/src/main/java/io/github/xxyopen/novel/manager/FriendLinkCacheManager.java @@ -0,0 +1,43 @@ +package io.github.xxyopen.novel.manager; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import io.github.xxyopen.novel.core.constant.CacheConsts; +import io.github.xxyopen.novel.dao.entity.HomeFriendLink; +import io.github.xxyopen.novel.dao.mapper.HomeFriendLinkMapper; +import io.github.xxyopen.novel.dto.resp.HomeFriendLinkRespDto; +import lombok.RequiredArgsConstructor; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 友情链接 缓存管理类 + * + * @author xiongxiaoyang + * @date 2022/5/12 + */ +@Component +@RequiredArgsConstructor +public class FriendLinkCacheManager { + + private final HomeFriendLinkMapper friendLinkMapper; + + /** + * 友情链接列表查询,并放入缓存中 + */ + @Cacheable(cacheManager = CacheConsts.REDIS_CACHE_MANAGER + , value = CacheConsts.HOME_FRIEND_LINK_CACHE_NAME) + public List listFriendLinks() { + // 从友情链接表中查询出友情链接列表 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByAsc("sort"); + return friendLinkMapper.selectList(queryWrapper).stream().map(v -> { + HomeFriendLinkRespDto respDto = new HomeFriendLinkRespDto(); + respDto.setLinkName(v.getLinkName()); + respDto.setLinkUrl(v.getLinkUrl()); + return respDto; + }).toList(); + } + +} diff --git a/src/main/java/io/github/xxyopen/novel/service/HomeService.java b/src/main/java/io/github/xxyopen/novel/service/HomeService.java index fa57ec8..53baed5 100644 --- a/src/main/java/io/github/xxyopen/novel/service/HomeService.java +++ b/src/main/java/io/github/xxyopen/novel/service/HomeService.java @@ -2,6 +2,7 @@ package io.github.xxyopen.novel.service; import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.dto.resp.HomeBookRespDto; +import io.github.xxyopen.novel.dto.resp.HomeFriendLinkRespDto; import java.util.List; @@ -19,4 +20,9 @@ public interface HomeService { * @return 首页小说推荐列表的 rest 响应结果 * */ RestResp> listHomeBooks(); + + /** + * 首页友情链接列表查询 + * */ + RestResp> listHomeFriendLinks(); } diff --git a/src/main/java/io/github/xxyopen/novel/service/impl/HomeServiceImpl.java b/src/main/java/io/github/xxyopen/novel/service/impl/HomeServiceImpl.java index d9d07d9..02cb16b 100644 --- a/src/main/java/io/github/xxyopen/novel/service/impl/HomeServiceImpl.java +++ b/src/main/java/io/github/xxyopen/novel/service/impl/HomeServiceImpl.java @@ -2,6 +2,8 @@ package io.github.xxyopen.novel.service.impl; import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.dto.resp.HomeBookRespDto; +import io.github.xxyopen.novel.dto.resp.HomeFriendLinkRespDto; +import io.github.xxyopen.novel.manager.FriendLinkCacheManager; import io.github.xxyopen.novel.manager.HomeBookCacheManager; import io.github.xxyopen.novel.service.HomeService; import lombok.RequiredArgsConstructor; @@ -21,8 +23,15 @@ public class HomeServiceImpl implements HomeService { private final HomeBookCacheManager homeBookCacheManager; + private final FriendLinkCacheManager friendLinkCacheManager; + @Override public RestResp> listHomeBooks() { return RestResp.ok(homeBookCacheManager.listHomeBooks()); } + + @Override + public RestResp> listHomeFriendLinks() { + return RestResp.ok(friendLinkCacheManager.listFriendLinks()); + } }