Commit 90527e24 by Author name

2.7 查看标签下的博客列表的功能

parent 3be4b2ff
...@@ -161,4 +161,17 @@ public class BlogApi { ...@@ -161,4 +161,17 @@ public class BlogApi {
PageVO<Blog> blogPageVO = new PageVO<>(blogPage); PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO); return Response.success(blogPageVO);
} }
@Anonymous
@ApiOperation("查看标签下的博客列表")
@GetMapping("/tag/{tagId}/blogs")
public Response<?> getBlogsByTagId(@PathVariable("tagId") String tagId , @Valid PageForm pageForm , BindingResult result) {
if (result.hasErrors()) {
return Response.fieldError(result.getFieldError());
}
IPage<Blog> blogPage = blogService.getBlogsBytagId(pageForm.getPage(), pageForm.getSize(), tagId);
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO);
}
} }
...@@ -87,5 +87,14 @@ public interface IBlogService extends IService<Blog> { ...@@ -87,5 +87,14 @@ public interface IBlogService extends IService<Blog> {
* @return * @return
*/ */
IPage<Blog> getHotBlogPage(Integer pageNumber , Integer pageSize); IPage<Blog> getHotBlogPage(Integer pageNumber , Integer pageSize);
/**
* 根据标签Id查询博客
* @param pageNumber
* @param pageSize
* @param tagId
* @return
*/
IPage<Blog> getBlogsBytagId(Integer pageNumber , Integer pageSize , String tagId);
} }
package cn.meteor.beyondclouds.modules.blog.service; package cn.meteor.beyondclouds.modules.blog.service;
import cn.meteor.beyondclouds.modules.blog.entity.BlogTag; import cn.meteor.beyondclouds.modules.blog.entity.BlogTag;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** /**
...@@ -13,4 +14,12 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -13,4 +14,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface IBlogTagService extends IService<BlogTag> { public interface IBlogTagService extends IService<BlogTag> {
/**
* 根据标签获取博客ID
* @param pageNumber
* @param pageSize
* @param tagId
* @return
*/
IPage<BlogTag> getBlogIdByTagId (Integer pageNumber , Integer pageSize , String tagId);
} }
...@@ -463,4 +463,17 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB ...@@ -463,4 +463,17 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
IPage<Blog> page = new Page<>(pageNumber, pageSize); IPage<Blog> page = new Page<>(pageNumber, pageSize);
return blogMapper.selectPageWithTags(page, blogQueryWrapper); return blogMapper.selectPageWithTags(page, blogQueryWrapper);
} }
@Override
public IPage<Blog> getBlogsBytagId(Integer pageNumber, Integer pageSize, String tagId) {
IPage<Blog> blogPage = new Page<>(pageNumber , pageSize);
//获取当tagId下的所有blogId
List<String> blogIds = blogTagService.getBlogIdByTagId(pageNumber, pageSize, tagId)
.getRecords().stream().map(BlogTag::getBlogId).collect(Collectors.toList());
//批量查找博客
QueryWrapper<Blog> blogQueryWrapper = new QueryWrapper<>();
blogQueryWrapper.in("b.blog_id", blogIds);
return blogMapper.selectPageWithTags(blogPage,blogQueryWrapper);
}
} }
...@@ -3,6 +3,9 @@ package cn.meteor.beyondclouds.modules.blog.service.impl; ...@@ -3,6 +3,9 @@ package cn.meteor.beyondclouds.modules.blog.service.impl;
import cn.meteor.beyondclouds.modules.blog.entity.BlogTag; import cn.meteor.beyondclouds.modules.blog.entity.BlogTag;
import cn.meteor.beyondclouds.modules.blog.mapper.BlogTagMapper; import cn.meteor.beyondclouds.modules.blog.mapper.BlogTagMapper;
import cn.meteor.beyondclouds.modules.blog.service.IBlogTagService; import cn.meteor.beyondclouds.modules.blog.service.IBlogTagService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -17,4 +20,13 @@ import org.springframework.stereotype.Service; ...@@ -17,4 +20,13 @@ import org.springframework.stereotype.Service;
@Service @Service
public class BlogTagServiceImpl extends ServiceImpl<BlogTagMapper, BlogTag> implements IBlogTagService { public class BlogTagServiceImpl extends ServiceImpl<BlogTagMapper, BlogTag> implements IBlogTagService {
@Override
public IPage<BlogTag> getBlogIdByTagId(Integer pageNumber, Integer pageSize, String tagId) {
IPage<BlogTag> page = new Page<>(pageNumber, pageSize);
//获取博客ID
QueryWrapper<BlogTag> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tag_id", tagId);
return page(page , queryWrapper);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment