From 5770f23dcd08c5a8c12a48d91497afa03db20302 Mon Sep 17 00:00:00 2001 From: Wonder Date: Sat, 18 Oct 2025 22:18:58 +0800 Subject: [PATCH] =?UTF-8?q?=20=E2=9C=A8Feat:=20=E6=A0=B9=E6=8D=AE=20id=20?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=8D=9A=E5=AE=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thumb/controller/BlogController.java | 24 +++++++++++ .../cn/hezhaohui/thumb/model/vo/BlogVO.java | 23 ++++++++++ .../hezhaohui/thumb/service/BlogService.java | 4 ++ .../hezhaohui/thumb/service/UserService.java | 2 +- .../thumb/service/impl/BlogServiceImpl.java | 43 +++++++++++++++++++ 5 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 src/main/java/cn/hezhaohui/thumb/controller/BlogController.java create mode 100644 src/main/java/cn/hezhaohui/thumb/model/vo/BlogVO.java diff --git a/src/main/java/cn/hezhaohui/thumb/controller/BlogController.java b/src/main/java/cn/hezhaohui/thumb/controller/BlogController.java new file mode 100644 index 0000000..cc25960 --- /dev/null +++ b/src/main/java/cn/hezhaohui/thumb/controller/BlogController.java @@ -0,0 +1,24 @@ +package cn.hezhaohui.thumb.controller; + +import cn.hezhaohui.thumb.common.BaseResponse; +import cn.hezhaohui.thumb.common.ResultUtils; +import cn.hezhaohui.thumb.model.vo.BlogVO; +import cn.hezhaohui.thumb.service.BlogService; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("blog") +public class BlogController { + @Resource + private BlogService blogService; + + @GetMapping("/get") + public BaseResponse get(long blogId, HttpServletRequest request) { + BlogVO blogVO = blogService.getBlogVOById(blogId, request); + return ResultUtils.sucess(blogVO); + } +} diff --git a/src/main/java/cn/hezhaohui/thumb/model/vo/BlogVO.java b/src/main/java/cn/hezhaohui/thumb/model/vo/BlogVO.java new file mode 100644 index 0000000..fed5918 --- /dev/null +++ b/src/main/java/cn/hezhaohui/thumb/model/vo/BlogVO.java @@ -0,0 +1,23 @@ +package cn.hezhaohui.thumb.model.vo; + +import lombok.Data; + +import java.util.Date; + +@Data +public class BlogVO { + + private Long id; + + private String title; + + private String coverImg; + + private String content; + + private Integer thumbCount; + + private Date createTime; + + private Boolean hasThumb; +} diff --git a/src/main/java/cn/hezhaohui/thumb/service/BlogService.java b/src/main/java/cn/hezhaohui/thumb/service/BlogService.java index 3a21580..9b80017 100644 --- a/src/main/java/cn/hezhaohui/thumb/service/BlogService.java +++ b/src/main/java/cn/hezhaohui/thumb/service/BlogService.java @@ -1,7 +1,9 @@ package cn.hezhaohui.thumb.service; import cn.hezhaohui.thumb.model.entity.Blog; +import cn.hezhaohui.thumb.model.vo.BlogVO; import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.servlet.http.HttpServletRequest; /** * @author 23117 @@ -10,4 +12,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface BlogService extends IService { + + BlogVO getBlogVOById(long blogId, HttpServletRequest request); } diff --git a/src/main/java/cn/hezhaohui/thumb/service/UserService.java b/src/main/java/cn/hezhaohui/thumb/service/UserService.java index 840d322..c685690 100644 --- a/src/main/java/cn/hezhaohui/thumb/service/UserService.java +++ b/src/main/java/cn/hezhaohui/thumb/service/UserService.java @@ -11,5 +11,5 @@ import jakarta.servlet.http.HttpServletRequest; */ public interface UserService extends IService { - public User getLoginUser(HttpServletRequest request); + User getLoginUser(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 b9fcddc..cddb554 100644 --- a/src/main/java/cn/hezhaohui/thumb/service/impl/BlogServiceImpl.java +++ b/src/main/java/cn/hezhaohui/thumb/service/impl/BlogServiceImpl.java @@ -1,9 +1,18 @@ package cn.hezhaohui.thumb.service.impl; +import cn.hezhaohui.thumb.model.entity.Thumb; +import cn.hezhaohui.thumb.model.entity.User; +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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.hezhaohui.thumb.model.entity.Blog; import cn.hezhaohui.thumb.service.BlogService; import cn.hezhaohui.thumb.mapper.BlogMapper; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; /** @@ -15,6 +24,40 @@ import org.springframework.stereotype.Service; public class BlogServiceImpl extends ServiceImpl implements BlogService{ + @Resource + private UserService userService; + + @Resource + @Lazy + private ThumbService thumbService; + + public BlogServiceImpl(UserService userService) { + this.userService = userService; + } + + @Override + public BlogVO getBlogVOById(long blogId, HttpServletRequest request) { + Blog blog = this.getById(blogId); + User loginUser = userService.getLoginUser(request); + return this.getBlogVO(blog, loginUser); + } + + private BlogVO getBlogVO(Blog blog, User loginUser) { + BlogVO blogVO = new BlogVO(); + BeanUtil.copyProperties(blog, blogVO); + + if (loginUser == null) { + return blogVO; + } + + Thumb thumb = thumbService.lambdaQuery() + .eq(Thumb::getUserid, loginUser.getId()) + .eq(Thumb::getBlogId, blog.getId()) + .one(); + blogVO.setHasThumb(thumb != null); + + return blogVO; + } }