Commit 5d8a8249 by 段启岩

Merge remote-tracking branch 'origin/fix-issue#31'

parents ab028e1e 90527e24
......@@ -161,4 +161,17 @@ public class BlogApi {
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
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> {
* @return
*/
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;
import cn.meteor.beyondclouds.modules.blog.entity.BlogTag;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -13,4 +14,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IBlogTagService extends IService<BlogTag> {
/**
* 根据标签获取博客ID
* @param pageNumber
* @param pageSize
* @param tagId
* @return
*/
IPage<BlogTag> getBlogIdByTagId (Integer pageNumber , Integer pageSize , String tagId);
}
......@@ -471,4 +471,17 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
IPage<Blog> page = new Page<>(pageNumber, pageSize);
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;
import cn.meteor.beyondclouds.modules.blog.entity.BlogTag;
import cn.meteor.beyondclouds.modules.blog.mapper.BlogTagMapper;
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 org.springframework.stereotype.Service;
......@@ -17,4 +20,13 @@ import org.springframework.stereotype.Service;
@Service
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