From d3dd6982ea4e71f344eccbb792c475cc1e684043 Mon Sep 17 00:00:00 2001 From: Wonder Date: Sat, 18 Oct 2025 22:44:04 +0800 Subject: [PATCH] =?UTF-8?q?=20=E2=9C=A8Feat:=20=E8=8E=B7=E5=8F=96=E5=90=AB?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=94=A8=E6=88=B7=E7=82=B9=E8=B5=9E=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E5=8D=9A=E5=AE=A2=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thumb/controller/BlogController.java | 10 +++++++ .../hezhaohui/thumb/service/BlogService.java | 4 +++ .../thumb/service/impl/BlogServiceImpl.java | 30 +++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/src/main/java/cn/hezhaohui/thumb/controller/BlogController.java b/src/main/java/cn/hezhaohui/thumb/controller/BlogController.java index cc25960..087562e 100644 --- a/src/main/java/cn/hezhaohui/thumb/controller/BlogController.java +++ b/src/main/java/cn/hezhaohui/thumb/controller/BlogController.java @@ -2,6 +2,7 @@ package cn.hezhaohui.thumb.controller; import cn.hezhaohui.thumb.common.BaseResponse; import cn.hezhaohui.thumb.common.ResultUtils; +import cn.hezhaohui.thumb.model.entity.Blog; import cn.hezhaohui.thumb.model.vo.BlogVO; import cn.hezhaohui.thumb.service.BlogService; import jakarta.annotation.Resource; @@ -10,6 +11,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequestMapping("blog") public class BlogController { @@ -21,4 +24,11 @@ public class BlogController { BlogVO blogVO = blogService.getBlogVOById(blogId, request); return ResultUtils.sucess(blogVO); } + + @GetMapping("list") + public BaseResponse> list(HttpServletRequest request) { + List blogList = blogService.list(); + List blogVOList = blogService.getBlogVOList(blogList, request); + return ResultUtils.sucess(blogVOList); + } } diff --git a/src/main/java/cn/hezhaohui/thumb/service/BlogService.java b/src/main/java/cn/hezhaohui/thumb/service/BlogService.java index 9b80017..c1735b0 100644 --- a/src/main/java/cn/hezhaohui/thumb/service/BlogService.java +++ b/src/main/java/cn/hezhaohui/thumb/service/BlogService.java @@ -5,6 +5,8 @@ import cn.hezhaohui.thumb.model.vo.BlogVO; import com.baomidou.mybatisplus.extension.service.IService; import jakarta.servlet.http.HttpServletRequest; +import java.util.List; + /** * @author 23117 * @description 针对表【blog】的数据库操作Service @@ -14,4 +16,6 @@ public interface BlogService extends IService { BlogVO getBlogVOById(long blogId, HttpServletRequest request); + + List getBlogVOList(List blogList, HttpServletRequest request); } diff --git a/src/main/java/cn/hezhaohui/thumb/service/impl/BlogServiceImpl.java b/src/main/java/cn/hezhaohui/thumb/service/impl/BlogServiceImpl.java index cddb554..e775fc9 100644 --- a/src/main/java/cn/hezhaohui/thumb/service/impl/BlogServiceImpl.java +++ b/src/main/java/cn/hezhaohui/thumb/service/impl/BlogServiceImpl.java @@ -6,6 +6,7 @@ import cn.hezhaohui.thumb.model.vo.BlogVO; import cn.hezhaohui.thumb.service.ThumbService; import cn.hezhaohui.thumb.service.UserService; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.hezhaohui.thumb.model.entity.Blog; import cn.hezhaohui.thumb.service.BlogService; @@ -15,6 +16,12 @@ import jakarta.servlet.http.HttpServletRequest; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + /** * @author 23117 * @description 针对表【blog】的数据库操作Service实现 @@ -42,6 +49,29 @@ public class BlogServiceImpl extends ServiceImpl return this.getBlogVO(blog, loginUser); } + @Override + public List getBlogVOList(List blogList, HttpServletRequest request) { + User loginUser = userService.getLoginUser(request); + Map blogIdHasThumbMap = new HashMap<>(); + if (ObjUtil.isNotEmpty(loginUser)) { + // Blog Id + Set blogIdSet = blogList.stream().map(Blog::getId).collect(Collectors.toSet()); + // Get Thumb-up Data + List thumbList = thumbService.lambdaQuery() + .eq(Thumb::getUserid, loginUser.getId()) + .in(Thumb::getBlogId, blogIdSet) + .list(); + thumbList.forEach(blogThumb -> blogIdHasThumbMap.put(blogThumb.getBlogId(), true)); + } + return blogList.stream() + .map(blog -> { + BlogVO blogVO = BeanUtil.copyProperties(blog, BlogVO.class); + blogVO.setHasThumb(blogIdHasThumbMap.get(blog.getId())); + return blogVO; + }) + .toList(); + } + private BlogVO getBlogVO(Blog blog, User loginUser) { BlogVO blogVO = new BlogVO(); BeanUtil.copyProperties(blog, blogVO);