feat(home): 增加首页友情链接列表查询接口

This commit is contained in:
xiongxiaoyang 2022-05-14 17:00:13 +08:00
parent 56c596c5ee
commit 11dcf3f9a5
5 changed files with 97 additions and 0 deletions

View File

@ -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.constant.ApiRouterConsts;
import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.core.common.resp.RestResp;
import io.github.xxyopen.novel.dto.resp.HomeBookRespDto; import io.github.xxyopen.novel.dto.resp.HomeBookRespDto;
import io.github.xxyopen.novel.dto.resp.HomeFriendLinkRespDto;
import io.github.xxyopen.novel.service.HomeService; import io.github.xxyopen.novel.service.HomeService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -31,4 +32,13 @@ public class HomeController {
public RestResp<List<HomeBookRespDto>> listHomeBooks(){ public RestResp<List<HomeBookRespDto>> listHomeBooks(){
return homeService.listHomeBooks(); return homeService.listHomeBooks();
} }
/**
* 首页友情链接列表查询接口
* */
@GetMapping("friendLinks")
public RestResp<List<HomeFriendLinkRespDto>> listHomeFriendLinks(){
return homeService.listHomeFriendLinks();
}
} }

View File

@ -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;
}

View File

@ -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<HomeFriendLinkRespDto> listFriendLinks() {
// 从友情链接表中查询出友情链接列表
QueryWrapper<HomeFriendLink> 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();
}
}

View File

@ -2,6 +2,7 @@ package io.github.xxyopen.novel.service;
import io.github.xxyopen.novel.core.common.resp.RestResp; import io.github.xxyopen.novel.core.common.resp.RestResp;
import io.github.xxyopen.novel.dto.resp.HomeBookRespDto; import io.github.xxyopen.novel.dto.resp.HomeBookRespDto;
import io.github.xxyopen.novel.dto.resp.HomeFriendLinkRespDto;
import java.util.List; import java.util.List;
@ -19,4 +20,9 @@ public interface HomeService {
* @return 首页小说推荐列表的 rest 响应结果 * @return 首页小说推荐列表的 rest 响应结果
* */ * */
RestResp<List<HomeBookRespDto>> listHomeBooks(); RestResp<List<HomeBookRespDto>> listHomeBooks();
/**
* 首页友情链接列表查询
* */
RestResp<List<HomeFriendLinkRespDto>> listHomeFriendLinks();
} }

View File

@ -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.core.common.resp.RestResp;
import io.github.xxyopen.novel.dto.resp.HomeBookRespDto; 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.manager.HomeBookCacheManager;
import io.github.xxyopen.novel.service.HomeService; import io.github.xxyopen.novel.service.HomeService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -21,8 +23,15 @@ public class HomeServiceImpl implements HomeService {
private final HomeBookCacheManager homeBookCacheManager; private final HomeBookCacheManager homeBookCacheManager;
private final FriendLinkCacheManager friendLinkCacheManager;
@Override @Override
public RestResp<List<HomeBookRespDto>> listHomeBooks() { public RestResp<List<HomeBookRespDto>> listHomeBooks() {
return RestResp.ok(homeBookCacheManager.listHomeBooks()); return RestResp.ok(homeBookCacheManager.listHomeBooks());
} }
@Override
public RestResp<List<HomeFriendLinkRespDto>> listHomeFriendLinks() {
return RestResp.ok(friendLinkCacheManager.listFriendLinks());
}
} }