Commit 04c6d791 by Author name

2.1 删除评论

parent 1a97fb08
......@@ -11,6 +11,7 @@ import cn.meteor.beyondclouds.modules.blog.bean.BlogDetail;
import cn.meteor.beyondclouds.modules.blog.entity.Blog;
import cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException;
import cn.meteor.beyondclouds.modules.blog.form.PublishBlogForm;
import cn.meteor.beyondclouds.modules.blog.form.UpdateBlogForm;
import cn.meteor.beyondclouds.modules.blog.service.IBlogService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
......@@ -93,6 +94,12 @@ public class BlogApi {
return Response.success(blogPageVO);
}
/**
* 我的博客列表
* @param pageForm
* @param subject
* @return
*/
@ApiOperation("我的博客列表")
@GetMapping("/my/blogs")
public Response<PageVO<Blog>> getMyBlogs (@Valid PageForm pageForm , @CurrentSubject Subject subject) {
......@@ -104,6 +111,12 @@ public class BlogApi {
}
/**
* 他人博客列表
* @param pageForm
* @param userId
* @return
*/
@ApiOperation("他人博客列表")
@GetMapping("/user/{userId}/blogs")
public Response<PageVO<Blog>> getMyBlogs (@Valid PageForm pageForm , @PathVariable("userId") String userId) {
......@@ -113,4 +126,26 @@ public class BlogApi {
blogPageVO.setDataList(blogIPage.getRecords());
return Response.success(blogPageVO);
}
@ApiOperation("修改博客")
@PutMapping("/blog/{blogId}")
public Response updateBlog (@PathVariable("blogId") String blogId , @RequestBody @Valid UpdateBlogForm updateBlogForm ,
BindingResult result , @CurrentSubject Subject subject) {
if (result.hasErrors()) {
return Response.fieldError(result.getFieldError());
}
Blog blog = new Blog();
BeanUtils.copyProperties(updateBlogForm, blog);
blog.setUserId((String) subject.getId());
blog.setBlogId(blogId);
//更新项目
try {
blogService.updateBlog(blog, updateBlogForm.getContent(),updateBlogForm.getTopicIds(),updateBlogForm.getTagIds());
return Response.success();
} catch (BlogServiceException e) {
e.printStackTrace();
return Response.error(e);
}
}
}
......@@ -3,6 +3,7 @@ package cn.meteor.beyondclouds.modules.blog.api;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.bean.Subject;
import cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException;
import cn.meteor.beyondclouds.modules.blog.form.BlogCommentForm;
import cn.meteor.beyondclouds.modules.blog.service.IBlogCommentService;
import io.swagger.annotations.Api;
......@@ -29,10 +30,22 @@ public class BlogCommentApi {
@ApiOperation("创建评论")
@PostMapping("/blog/{blogId}/comment")
public Response commentCreate (@PathVariable("blogId") String blogId, @RequestBody @Valid BlogCommentForm blogCommentForm, @CurrentSubject Subject subject){
public Response createComment (@PathVariable("blogId") String blogId, @RequestBody @Valid BlogCommentForm blogCommentForm, @CurrentSubject Subject subject){
blogCommentService.commentCreate(blogId, blogCommentForm.getParentId(),
blogCommentForm.getComment(), (String) subject.getId());
return Response.success();
}
@ApiOperation("删除评论")
@DeleteMapping("/blog/comment/{commentId}")
public Response deleteBlogComment (@PathVariable("commentId") Integer commentId , @CurrentSubject Subject subject) {
try {
blogCommentService.deleteComment(commentId, (String) subject.getId());
return Response.success();
} catch (BlogCommentServiceException e) {
e.printStackTrace();
return Response.error(e);
}
}
}
......@@ -7,6 +7,8 @@ import cn.meteor.beyondclouds.core.IErrorCode;
* @date 2020/1/31 9:21
*/
public enum BlogCommentErrorCode implements IErrorCode {
COMMENT_NOT_FOUND(8003,"该评论不存在"),
NO_DELETE_PRIVILEGES(8004,"没有权限删除评论")
;
private long code;
......
......@@ -35,7 +35,6 @@ public class PublishBlogForm {
private List<String> tagIds;
@NotNull(message = "浏览权限不能为空")
private Integer viewPrivileges;
......
package cn.meteor.beyondclouds.modules.blog.form;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author gaoTong
* @date 2020/2/1 14:48
*/
@Data
public class UpdateBlogForm {
private String blogTitle;
private String originLink;
private String blogAbstract;
private Integer categoryId;
private String Content;
private List<String> topicIds;
private List<String> tagIds;
private Integer viewPrivileges;
private Boolean allowComment;
private Boolean allowForward;
private String cover;
}
package cn.meteor.beyondclouds.modules.blog.service;
import cn.meteor.beyondclouds.modules.blog.entity.BlogComment;
import cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -13,6 +15,27 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IBlogCommentService extends IService<BlogComment> {
/**
* 创建评论
* @param blogId
* @param parentId
* @param comment
* @param userId
*/
void commentCreate(String blogId,Integer parentId,String comment,String userId);
/**
* 评论列表
* @param blogId
* @return
*/
IPage<BlogComment> getComments(String blogId);
/**
* 删除评论
* @param commentId
* @param userId
*/
void deleteComment(Integer commentId, String userId) throws BlogCommentServiceException;
}
......@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.blog.service;
import cn.meteor.beyondclouds.modules.blog.bean.BlogDetail;
import cn.meteor.beyondclouds.modules.blog.entity.Blog;
import cn.meteor.beyondclouds.modules.blog.entity.BlogComment;
import cn.meteor.beyondclouds.modules.blog.entity.BlogExt;
import cn.meteor.beyondclouds.modules.blog.entity.BlogTag;
import cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException;
......@@ -53,11 +54,24 @@ public interface IBlogService extends IService<Blog> {
IPage<Blog> getBlogPage(Integer pageNumber , Integer pageSize);
/**
* 博客列表
* 个人博客列表
* @param pageNumber
* @param pageSize
* @param userId
* @return
*/
IPage<Blog> getUserBlogPage(Integer pageNumber , Integer pageSize , String userId);
/**
* 更新博客
* @param blog
* @param content
* @param topicIds
* @param tagIds
*/
void updateBlog(Blog blog , String content , List<String> topicIds , List<String> tagIds) throws BlogServiceException;
}
package cn.meteor.beyondclouds.modules.blog.service.impl;
import cn.meteor.beyondclouds.modules.blog.entity.Blog;
import cn.meteor.beyondclouds.modules.blog.entity.BlogComment;
import cn.meteor.beyondclouds.modules.blog.enums.BlogCommentErrorCode;
import cn.meteor.beyondclouds.modules.blog.enums.BlogErrorCode;
import cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException;
import cn.meteor.beyondclouds.modules.blog.mapper.BlogCommentMapper;
import cn.meteor.beyondclouds.modules.blog.service.IBlogCommentService;
import cn.meteor.beyondclouds.modules.blog.service.IBlogService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
/**
* <p>
......@@ -18,6 +26,13 @@ import org.springframework.stereotype.Service;
@Service
public class BlogCommentServiceImpl extends ServiceImpl<BlogCommentMapper, BlogComment> implements IBlogCommentService {
private IBlogService blogService;
@Autowired
public void setBlogService(IBlogService blogService) {
this.blogService = blogService;
}
@Override
public void commentCreate(String blogId, Integer parentId, String comment, String userId) {
......@@ -60,4 +75,35 @@ public class BlogCommentServiceImpl extends ServiceImpl<BlogCommentMapper, BlogC
updateById(blogComment);
}
@Override
public IPage<BlogComment> getComments(String blogId) {
return null;
}
@Override
public void deleteComment(Integer commentId, String userId) throws BlogCommentServiceException {
Assert.notNull(commentId, "commentId must not be null");
Assert.notNull(userId, "userId must not be null");
//1.查找评论是否存在
BlogComment blogComment = getById(commentId);
if (null == blogComment) {
throw new BlogCommentServiceException(BlogCommentErrorCode.COMMENT_NOT_FOUND);
}
//2.判断是不是自己的评论
if (!userId.equals(blogComment.getUserId())) {
//3.如果不是自己的评论看是否是自己的博客
Blog blog = blogService.getById(blogComment.getBlogId());
if (!blog.getUserId().equals(userId)) {
throw new BlogCommentServiceException(BlogCommentErrorCode.NO_DELETE_PRIVILEGES);
}
}
//4.删除评论
QueryWrapper blogCommentQueryWrapper = new QueryWrapper();
blogCommentQueryWrapper.like("thread", blogComment.getThread());
remove(blogCommentQueryWrapper);
}
}
......@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.blog.service.impl;
import cn.meteor.beyondclouds.modules.blog.bean.BlogDetail;
import cn.meteor.beyondclouds.modules.blog.entity.Blog;
import cn.meteor.beyondclouds.modules.blog.entity.BlogComment;
import cn.meteor.beyondclouds.modules.blog.entity.BlogExt;
import cn.meteor.beyondclouds.modules.blog.entity.BlogTag;
import cn.meteor.beyondclouds.modules.blog.enums.BlogErrorCode;
......@@ -23,6 +24,8 @@ import lombok.extern.java.Log;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Collections;
......@@ -50,16 +53,17 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
private IBlogCommentService blogCommentService;
@Autowired
public BlogServiceImpl(IBlogTagService blogTagService, ITopicReferenceService topicReferenceService, IBlogExtService blogExtService, IBlogCommentService blogCommentService) {
public void setBlogCommentService(IBlogCommentService blogCommentService) {
this.blogCommentService = blogCommentService;
}
@Autowired
public BlogServiceImpl(IBlogTagService blogTagService, ITopicReferenceService topicReferenceService, IBlogExtService blogExtService) {
this.blogTagService = blogTagService;
this.topicReferenceService = topicReferenceService;
this.blogExtService = blogExtService;
this.blogCommentService = blogCommentService;
}
@Override
public void publishBlog(Blog blog, String content, List<String> topicIds, List<String> tagIds) {
......@@ -179,5 +183,61 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
return page(page, myBlogQueryWrapper);
}
@Override
public void updateBlog(Blog blog, String content, List<String> topicIds, List<String> tagIds) throws BlogServiceException {
Assert.notNull(blog, "blog must not be null");
Assert.notNull(blog.getBlogId(), "blogId must not be null");
Assert.notNull(blog.getUserId(),"userId must not be null");
//1.判断当前用户是否拥有此博客
Blog blogInDb = getById(blog);
if (null == blogInDb) {
throw new BlogServiceException(BlogErrorCode.BLOG_NOT_FOUND);
}
//2.更新博客基本信息
updateById(blog);
//3.更新博客内容
if (!StringUtils.isEmpty(content)) {
BlogExt blogExt = new BlogExt();
blogExt.setBlogId(blog.getBlogId());
blogExt.setContent(content);
QueryWrapper blogExtQueryWrapper = new QueryWrapper();
blogExtQueryWrapper.eq("blog_id", blog.getBlogId());
blogExtService.update(blogExt,blogExtQueryWrapper);
}
//4.更新标签
if (!StringUtils.isEmpty(tagIds)) {
QueryWrapper tagIdQueryWrapperTag = new QueryWrapper();
tagIdQueryWrapperTag.eq("blog_id", blog.getBlogId());
blogTagService.remove(tagIdQueryWrapperTag);
for (String tagId : tagIds) {
BlogTag blogTag = new BlogTag();
blogTag.setBlogId(blog.getBlogId());
blogTag.setTagId(tagId);
blogTagService.save(blogTag);
}
}
//5.更新话题
if (!StringUtils.isEmpty(topicIds)) {
QueryWrapper topicIdQueryWrapper = new QueryWrapper();
topicIdQueryWrapper.eq("referencer_id", blog.getBlogId());
topicReferenceService.remove(topicIdQueryWrapper);
for (String topicId : topicIds) {
TopicReference topicReference = new TopicReference();
topicReference.setTopicId(topicId);
topicReference.setReferencerId(blog.getBlogId());
topicReference.setReferencerType(0);
topicReferenceService.save(topicReference);
}
}
}
}
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