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()); + } }