Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
beyond-clouds
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
4
Issues
4
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
段启岩
beyond-clouds
Commits
04c6d791
Commit
04c6d791
authored
Feb 01, 2020
by
Author name
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.1 删除评论
parent
1a97fb08
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
239 additions
and
8 deletions
+239
-8
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
+35
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogCommentApi.java
+14
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogCommentErrorCode.java
+2
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/form/PublishBlogForm.java
+0
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/form/UpdateBlogForm.java
+39
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogCommentService.java
+23
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
+15
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogCommentServiceImpl.java
+46
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+65
-5
No files found.
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
View file @
04c6d791
...
...
@@ -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
);
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogCommentApi.java
View file @
04c6d791
...
...
@@ -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
c
ommentCreate
(
@PathVariable
(
"blogId"
)
String
blogId
,
@RequestBody
@Valid
BlogCommentForm
blogCommentForm
,
@CurrentSubject
Subject
subject
){
public
Response
c
reateComment
(
@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
);
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogCommentErrorCode.java
View file @
04c6d791
...
...
@@ -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
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/form/PublishBlogForm.java
View file @
04c6d791
...
...
@@ -35,7 +35,6 @@ public class PublishBlogForm {
private
List
<
String
>
tagIds
;
@NotNull
(
message
=
"浏览权限不能为空"
)
private
Integer
viewPrivileges
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/form/UpdateBlogForm.java
0 → 100644
View file @
04c6d791
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
;
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogCommentService.java
View file @
04c6d791
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
;
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
View file @
04c6d791
...
...
@@ -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
;
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogCommentServiceImpl.java
View file @
04c6d791
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
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
04c6d791
...
...
@@ -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
);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment