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
4a5362d0
Commit
4a5362d0
authored
Feb 02, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/gaotong02-02'
# Conflicts: # src/main/resources/application.yml
parents
e021758c
78ceeadc
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
633 additions
and
51 deletions
+633
-51
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
+12
-6
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogCommentApi.java
+31
-4
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogCategoryErrorCode.java
+31
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogCommentErrorCode.java
+2
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/form/pageForm.java
+0
-18
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogCommentService.java
+13
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
+3
-2
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogCommentServiceImpl.java
+70
-3
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+73
-10
src/main/java/cn/meteor/beyondclouds/modules/post/api/postApi.java
+136
-0
src/main/java/cn/meteor/beyondclouds/modules/post/api/postCommentApi.java
+8
-0
src/main/java/cn/meteor/beyondclouds/modules/post/entity/Post.java
+3
-0
src/main/java/cn/meteor/beyondclouds/modules/post/enums/PostCommentErrorCode.java
+29
-0
src/main/java/cn/meteor/beyondclouds/modules/post/enums/PostErrorCode.java
+33
-0
src/main/java/cn/meteor/beyondclouds/modules/post/exception/PostCommentServiceException.java
+18
-0
src/main/java/cn/meteor/beyondclouds/modules/post/exception/PostServiceException.java
+18
-0
src/main/java/cn/meteor/beyondclouds/modules/post/form/PostForm.java
+23
-0
src/main/java/cn/meteor/beyondclouds/modules/post/service/IPostService.java
+33
-0
src/main/java/cn/meteor/beyondclouds/modules/post/service/impl/PostServiceImpl.java
+93
-0
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectCommentApi.java
+1
-1
src/main/resources/application.yml
+3
-5
No files found.
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
View file @
4a5362d0
...
...
@@ -9,6 +9,7 @@ import cn.meteor.beyondclouds.core.api.Response;
import
cn.meteor.beyondclouds.core.bean.Subject
;
import
cn.meteor.beyondclouds.modules.blog.bean.BlogDetail
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.form.PublishBlogForm
;
import
cn.meteor.beyondclouds.modules.blog.form.UpdateBlogForm
;
...
...
@@ -42,7 +43,7 @@ public class BlogApi {
@ApiOperation
(
"发布博客"
)
@PostMapping
(
"/blog"
)
public
Response
publishBlog
(
@RequestBody
@Valid
PublishBlogForm
publishBlogForm
,
BindingResult
result
,
@CurrentSubject
Subject
subject
)
throws
OssException
{
public
Response
publishBlog
(
@RequestBody
@Valid
PublishBlogForm
publishBlogForm
,
BindingResult
result
,
@CurrentSubject
Subject
subject
)
{
if
(
result
.
hasErrors
())
{
return
Response
.
fieldError
(
result
.
getFieldError
());
}
...
...
@@ -51,9 +52,14 @@ public class BlogApi {
BeanUtils
.
copyProperties
(
publishBlogForm
,
blog
);
blog
.
setUserId
((
String
)
subject
.
getId
());
blogService
.
publishBlog
(
blog
,
publishBlogForm
.
getBlogContent
(),
publishBlogForm
.
getTopicIds
(),
publishBlogForm
.
getTagIds
());
return
Response
.
success
();
try
{
blogService
.
publishBlog
(
blog
,
publishBlogForm
.
getBlogContent
(),
publishBlogForm
.
getTopicIds
(),
publishBlogForm
.
getTagIds
());
return
Response
.
success
();
}
catch
(
BlogCategoryServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
...
...
@@ -115,7 +121,7 @@ public class BlogApi {
*/
@ApiOperation
(
"他人博客列表"
)
@GetMapping
(
"/user/{userId}/blogs"
)
public
Response
<
PageVO
<
Blog
>>
get
My
Blogs
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
public
Response
<
PageVO
<
Blog
>>
get
Other
Blogs
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
IPage
<
Blog
>
blogPage
=
blogService
.
getUserBlogPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
PageVO
<
Blog
>
blogPageVO
=
new
PageVO
<>(
blogPage
);
return
Response
.
success
(
blogPageVO
);
...
...
@@ -137,7 +143,7 @@ public class BlogApi {
try
{
blogService
.
updateBlog
(
blog
,
updateBlogForm
.
getContent
(),
updateBlogForm
.
getTopicIds
(),
updateBlogForm
.
getTagIds
());
return
Response
.
success
();
}
catch
(
BlogServiceException
e
)
{
}
catch
(
BlogServiceException
|
BlogCategoryServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogCommentApi.java
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.vo.PageVO
;
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.entity.BlogComment
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.form.BlogCommentForm
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogCommentService
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -30,11 +35,16 @@ public class BlogCommentApi {
@ApiOperation
(
"发表评论"
)
@PostMapping
(
"/blog/{blogId}/comment"
)
public
Response
createComment
(
@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
();
try
{
blogCommentService
.
commentCreate
(
blogId
,
blogCommentForm
.
getParentId
(),
blogCommentForm
.
getComment
(),
(
String
)
subject
.
getId
());
return
Response
.
success
();
}
catch
(
BlogServiceException
|
BlogCommentServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
@ApiOperation
(
"删除评论"
)
...
...
@@ -48,4 +58,21 @@ public class BlogCommentApi {
return
Response
.
error
(
e
);
}
}
@ApiOperation
(
"评论列表"
)
@GetMapping
(
"/blog/{blogId}/comments"
)
public
Response
<
PageVO
<
BlogComment
>>
getBlogCommentPage
(
@PathVariable
(
"blogId"
)
String
bLogId
,
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"parent_id"
,
required
=
false
)
Integer
parentId
)
{
//获取评论列表
try
{
IPage
<
BlogComment
>
commentPage
=
blogCommentService
.
getCommentPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
bLogId
,
parentId
);
PageVO
<
BlogComment
>
blogCommentPageVO
=
new
PageVO
<>(
commentPage
);
return
Response
.
success
(
blogCommentPageVO
);
}
catch
(
BlogCommentServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogCategoryErrorCode.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
enums
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
/**
* @author gaoTong
* @date 2020/2/2 10:02
*/
public
enum
BlogCategoryErrorCode
implements
IErrorCode
{
INCORRECT_CATEGORY
(
8005
,
"博客分类错误"
)
;
private
long
code
;
private
String
msg
;
BlogCategoryErrorCode
(
long
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
@Override
public
long
code
()
{
return
code
;
}
@Override
public
String
msg
()
{
return
msg
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogCommentErrorCode.java
View file @
4a5362d0
...
...
@@ -8,7 +8,8 @@ import cn.meteor.beyondclouds.core.IErrorCode;
*/
public
enum
BlogCommentErrorCode
implements
IErrorCode
{
COMMENT_NOT_FOUND
(
8003
,
"该评论不存在"
),
NO_DELETE_PRIVILEGES
(
8004
,
"没有权限删除评论"
)
NO_DELETE_PRIVILEGES
(
8004
,
"没有权限删除评论"
),
PARENT_COMMENT_NOT_FOUND
(
8006
,
"父评论不存在"
),
;
private
long
code
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/form/pageForm.java
deleted
100644 → 0
View file @
e021758c
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
form
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
/**
* @author gaoTong
* @date 2020/2/1 12:11
*/
@Data
public
class
pageForm
{
private
Integer
page
;
private
Integer
size
;
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogCommentService.java
View file @
4a5362d0
...
...
@@ -2,6 +2,7 @@ package cn.meteor.beyondclouds.modules.blog.service;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogComment
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.project.entity.ProjectComment
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
...
@@ -23,7 +24,7 @@ public interface IBlogCommentService extends IService<BlogComment> {
* @param comment
* @param userId
*/
void
commentCreate
(
String
blogId
,
Integer
parentId
,
String
comment
,
String
userId
);
void
commentCreate
(
String
blogId
,
Integer
parentId
,
String
comment
,
String
userId
)
throws
BlogServiceException
,
BlogCommentServiceException
;
/**
* 删除评论
...
...
@@ -31,4 +32,15 @@ public interface IBlogCommentService extends IService<BlogComment> {
* @param userId
*/
void
deleteComment
(
Integer
commentId
,
String
userId
)
throws
BlogCommentServiceException
;
/**
* 获取评论分页
* @param pageNumber
* @param size
* @param blogId
* @param parentId
* @return
*/
IPage
<
BlogComment
>
getCommentPage
(
Integer
pageNumber
,
Integer
size
,
String
blogId
,
Integer
parentId
)
throws
BlogCommentServiceException
;
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
View file @
4a5362d0
...
...
@@ -5,6 +5,7 @@ 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.BlogCategoryServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
...
@@ -28,7 +29,7 @@ public interface IBlogService extends IService<Blog> {
* @param topicIds
* @param tagIds
*/
void
publishBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
);
void
publishBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
)
throws
BlogCategoryServiceException
;
/**
* 删除博客
...
...
@@ -70,7 +71,7 @@ public interface IBlogService extends IService<Blog> {
* @param topicIds
* @param tagIds
*/
void
updateBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
)
throws
BlogServiceException
;
void
updateBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
)
throws
BlogServiceException
,
BlogCategoryServiceException
;
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogCommentServiceImpl.java
View file @
4a5362d0
...
...
@@ -3,11 +3,15 @@ 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.exception.BlogServiceException
;
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.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -31,13 +35,27 @@ public class BlogCommentServiceImpl extends ServiceImpl<BlogCommentMapper, BlogC
this
.
blogService
=
blogService
;
}
/**
* 发布评论
* @param blogId
* @param parentId
* @param comment
* @param userId
* @throws BlogServiceException
* @throws BlogCommentServiceException
*/
@Override
public
void
commentCreate
(
String
blogId
,
Integer
parentId
,
String
comment
,
String
userId
)
{
public
void
commentCreate
(
String
blogId
,
Integer
parentId
,
String
comment
,
String
userId
)
throws
BlogServiceException
,
BlogCommentServiceException
{
//判断博客是否存在
Blog
blog
=
blogService
.
getById
(
blogId
);
if
(
null
==
blog
)
{
throw
new
BlogServiceException
(
BlogErrorCode
.
BLOG_NOT_FOUND
);
}
//定义路径
String
thread
;
int
depth
;
//1.判断为第几级评论
if
(
parentId
==
null
)
{
...
...
@@ -45,8 +63,12 @@ public class BlogCommentServiceImpl extends ServiceImpl<BlogCommentMapper, BlogC
}
else
{
QueryWrapper
<
BlogComment
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"comment_id"
,
parentId
);
queryWrapper
.
eq
(
"comment_id"
,
parentId
)
.
eq
(
"blog_id"
,
blogId
);
BlogComment
blogCommentParent
=
getOne
(
queryWrapper
);
if
(
null
==
blogCommentParent
)
{
throw
new
BlogCommentServiceException
(
BlogCommentErrorCode
.
PARENT_COMMENT_NOT_FOUND
);
}
depth
=
blogCommentParent
.
getDepth
()
+
1
;
}
...
...
@@ -75,6 +97,12 @@ public class BlogCommentServiceImpl extends ServiceImpl<BlogCommentMapper, BlogC
}
/**
* 删除评论
* @param commentId
* @param userId
* @throws BlogCommentServiceException
*/
@Override
public
void
deleteComment
(
Integer
commentId
,
String
userId
)
throws
BlogCommentServiceException
{
Assert
.
notNull
(
commentId
,
"commentId must not be null"
);
...
...
@@ -100,4 +128,43 @@ public class BlogCommentServiceImpl extends ServiceImpl<BlogCommentMapper, BlogC
blogCommentQueryWrapper
.
like
(
"thread"
,
blogComment
.
getThread
());
remove
(
blogCommentQueryWrapper
);
}
/**
* 评论列表
* @param pageNumber
* @param size
* @param blogId
* @param parentId
* @return
* @throws BlogCommentServiceException
*/
@Override
public
IPage
<
BlogComment
>
getCommentPage
(
Integer
pageNumber
,
Integer
size
,
String
blogId
,
Integer
parentId
)
throws
BlogCommentServiceException
{
Assert
.
notNull
(
blogId
,
"blogId must not be null"
);
IPage
<
BlogComment
>
page
=
new
Page
<>(
pageNumber
,
size
);
//如果parentId为null,则只获取一级评论
if
(
null
==
parentId
)
{
QueryWrapper
blogCommentQueryWrapper
=
new
QueryWrapper
();
blogCommentQueryWrapper
.
eq
(
"blog_id"
,
blogId
);
blogCommentQueryWrapper
.
eq
(
"depth"
,
0
);
blogCommentQueryWrapper
.
orderByDesc
(
"create_time"
);
return
page
(
page
,
blogCommentQueryWrapper
);
}
//如果parent不为空,则获取其子评论
BlogComment
blogComment
=
getById
(
parentId
);
if
(
null
==
blogComment
)
{
throw
new
BlogCommentServiceException
(
BlogCommentErrorCode
.
PARENT_COMMENT_NOT_FOUND
);
}
//根据parentId查出其子评论
QueryWrapper
blogCommentQueryWrapper
=
new
QueryWrapper
();
blogCommentQueryWrapper
.
eq
(
"parent_id"
,
parentId
);
return
page
(
page
,
blogCommentQueryWrapper
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
4a5362d0
...
...
@@ -2,15 +2,15 @@ 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.BlogCategory
;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogExt
;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogTag
;
import
cn.meteor.beyondclouds.modules.blog.enums.BlogCategoryErrorCode
;
import
cn.meteor.beyondclouds.modules.blog.enums.BlogErrorCode
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.mapper.BlogMapper
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogCommentService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogExtService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogTagService
;
import
cn.meteor.beyondclouds.modules.blog.service.*
;
import
cn.meteor.beyondclouds.modules.topic.entity.TopicReference
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicReferenceService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -48,6 +48,13 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
private
IBlogCommentService
blogCommentService
;
private
IBlogCategoryService
blogCategoryService
;
@Autowired
public
void
setBlogCategoryService
(
IBlogCategoryService
blogCategoryService
)
{
this
.
blogCategoryService
=
blogCategoryService
;
}
@Autowired
public
void
setBlogCommentService
(
IBlogCommentService
blogCommentService
)
{
this
.
blogCommentService
=
blogCommentService
;
...
...
@@ -60,19 +67,33 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
this
.
blogExtService
=
blogExtService
;
}
/**
* 发布博客
* @param blog
* @param content
* @param topicIds
* @param tagIds
* @throws BlogCategoryServiceException
*/
@Override
public
void
publishBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
)
{
public
void
publishBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
)
throws
BlogCategoryServiceException
{
//1.保存博客
//1.判断博客类型是否存在
BlogCategory
blogCategory
=
blogCategoryService
.
getById
(
blog
.
getCategoryId
());
if
(
null
==
blogCategory
)
{
throw
new
BlogCategoryServiceException
(
BlogCategoryErrorCode
.
INCORRECT_CATEGORY
);
}
//2.保存博客
save
(
blog
);
//
2
.存入内容
//
3
.存入内容
BlogExt
blogExt
=
new
BlogExt
();
blogExt
.
setBlogId
(
blog
.
getBlogId
());
blogExt
.
setContent
(
content
);
blogExtService
.
save
(
blogExt
);
//
3
.判断是否引用话题
//
4
.判断是否引用话题
if
(
null
!=
topicIds
)
{
for
(
String
topicId
:
topicIds
)
{
TopicReference
topicReference
=
new
TopicReference
();
...
...
@@ -84,7 +105,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
}
//
4
.判断是否引用标签
//
5
.判断是否引用标签
if
(
null
!=
tagIds
)
{
for
(
String
tagId
:
tagIds
)
{
BlogTag
blogTag
=
new
BlogTag
();
...
...
@@ -95,6 +116,12 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
}
/**
* 删除博客
* @param userId
* @param blogId
* @throws BlogServiceException
*/
@Override
public
void
deleteBlog
(
String
userId
,
String
blogId
)
throws
BlogServiceException
{
//1.判断要删除的博客是否是当前用户所有
...
...
@@ -133,6 +160,12 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
removeById
(
blogId
);
}
/**
* 博客详情
* @param blogId
* @return
* @throws BlogServiceException
*/
@Override
public
BlogDetail
getBlog
(
String
blogId
)
throws
BlogServiceException
{
...
...
@@ -167,12 +200,25 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
return
blogDetail
;
}
/**
* 博客列表
* @param pageNumber
* @param pageSize
* @return
*/
@Override
public
IPage
<
Blog
>
getBlogPage
(
Integer
pageNumber
,
Integer
pageSize
)
{
IPage
<
Blog
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
return
page
(
page
);
}
/**
* 个人博客列表
* @param pageNumber
* @param pageSize
* @param userId
* @return
*/
@Override
public
IPage
<
Blog
>
getUserBlogPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
QueryWrapper
myBlogQueryWrapper
=
new
QueryWrapper
();
...
...
@@ -181,8 +227,17 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
return
page
(
page
,
myBlogQueryWrapper
);
}
/**
* 修改博客
* @param blog
* @param content
* @param topicIds
* @param tagIds
* @throws BlogServiceException
* @throws BlogCategoryServiceException
*/
@Override
public
void
updateBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
)
throws
BlogServiceException
{
public
void
updateBlog
(
Blog
blog
,
String
content
,
List
<
String
>
topicIds
,
List
<
String
>
tagIds
)
throws
BlogServiceException
,
BlogCategoryServiceException
{
Assert
.
notNull
(
blog
,
"blog must not be null"
);
Assert
.
notNull
(
blog
.
getBlogId
(),
"blogId must not be null"
);
...
...
@@ -193,6 +248,14 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
throw
new
BlogServiceException
(
BlogErrorCode
.
BLOG_NOT_FOUND
);
}
//判断博客类型是否正确
if
(
blog
.
getCategoryId
()
!=
null
)
{
BlogCategory
blogCategory
=
blogCategoryService
.
getById
(
blog
.
getCategoryId
());
if
(
null
==
blogCategory
)
{
throw
new
BlogCategoryServiceException
(
BlogCategoryErrorCode
.
INCORRECT_CATEGORY
);
}
}
//2.更新博客基本信息
updateById
(
blog
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/post/api/postApi.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.vo.PageVO
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
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.post.entity.Post
;
import
cn.meteor.beyondclouds.modules.post.exception.PostServiceException
;
import
cn.meteor.beyondclouds.modules.post.form.PostForm
;
import
cn.meteor.beyondclouds.modules.post.service.IPostService
;
import
cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
java.util.stream.Collectors
;
/**
* @author gaoTong
* @date 2020/2/2 9:40
*/
@Api
(
tags
=
"动态API"
)
@RequestMapping
(
"/api"
)
@RestController
public
class
postApi
{
private
IPostService
postService
;
@Autowired
public
void
setPostService
(
IPostService
postService
)
{
this
.
postService
=
postService
;
}
/**
* 发布动态
* @param postForm
* @param result
* @param subject
* @return
*/
@ApiOperation
(
"发布项目"
)
@PostMapping
(
"/post"
)
public
Response
publishPost
(
@RequestBody
@Valid
PostForm
postForm
,
BindingResult
result
,
@CurrentSubject
Subject
subject
)
{
//对图片进行类型转换
Post
post
=
new
Post
();
BeanUtils
.
copyProperties
(
postForm
,
post
);
if
(
null
!=
post
.
getPictures
()){
post
.
setPictures
(
postForm
.
getPictures
()
.
stream
().
map
(
String:
:
valueOf
)
.
collect
(
Collectors
.
joining
(
","
)));
}
post
.
setUserId
((
String
)
subject
.
getId
());
//发布动态
try
{
postService
.
publishPost
(
post
);
return
Response
.
success
();
}
catch
(
ProjectServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
/**
* 删除动态
* @param postId
* @param subject
* @return
*/
@ApiOperation
(
"删除动态"
)
@DeleteMapping
(
"/post/{postId}"
)
public
Response
deletePost
(
@PathVariable
(
"postId"
)
String
postId
,
@CurrentSubject
Subject
subject
)
{
//删除动态
try
{
postService
.
deletePost
(
postId
,
(
String
)
subject
.
getId
());
return
Response
.
success
();
}
catch
(
PostServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
/**
* 动态列表
* @param pageForm
* @return
*/
@Anonymous
@ApiOperation
(
"动态列表"
)
@GetMapping
(
"/posts"
)
public
Response
<
PageVO
<
Post
>>
getPostPage
(
@Valid
PageForm
pageForm
)
{
IPage
<
Post
>
postPage
=
postService
.
getPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
PageVO
<
Post
>
postPageVO
=
new
PageVO
<>(
postPage
);
return
Response
.
success
(
postPageVO
);
}
/**
* 我的动态列表
* @param pageForm
* @param subject
* @return
*/
@ApiOperation
(
"我的动态列表"
)
@GetMapping
(
"/my/posts"
)
public
Response
<
PageVO
<
Post
>>
getMyPosts
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
IPage
<
Post
>
postPage
=
postService
.
getUserPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
PageVO
<
Post
>
postPageVO
=
new
PageVO
<>(
postPage
);
return
Response
.
success
(
postPageVO
);
}
/**
* 获取他人动态列表
* @param userId
* @param pageForm
* @return
*/
@ApiOperation
(
"他人动态列表"
)
@GetMapping
(
"/user/{userId}/posts"
)
public
Response
<
PageVO
<
Post
>>
getOtherPosts
(
@PathVariable
(
"userId"
)
String
userId
,
@Valid
PageForm
pageForm
)
{
IPage
<
Post
>
postPage
=
postService
.
getUserPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
PageVO
<
Post
>
postPageVO
=
new
PageVO
<>(
postPage
);
return
Response
.
success
(
postPageVO
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/post/api/postCommentApi.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
api
;
/**
* @author gaoTong
* @date 2020/2/2 9:42
*/
public
class
postCommentApi
{
}
src/main/java/cn/meteor/beyondclouds/modules/post/entity/Post.java
View file @
4a5362d0
...
...
@@ -41,6 +41,9 @@ public class Post implements Serializable {
@ApiModelProperty
(
value
=
"动态里面的图片"
)
private
String
pictures
;
@ApiModelProperty
(
value
=
"动态中的视频"
)
private
String
video
;
private
LocalDateTime
createTime
;
private
LocalDateTime
updateTime
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/post/enums/PostCommentErrorCode.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
enums
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
/**
* @author gaoTong
* @date 2020/2/2 14:43
*/
public
enum
PostCommentErrorCode
implements
IErrorCode
{
;
private
long
code
;
private
String
msg
;
PostCommentErrorCode
(
long
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
@Override
public
long
code
()
{
return
code
;
}
@Override
public
String
msg
()
{
return
msg
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/post/enums/PostErrorCode.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
enums
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
/**
* @author gaoTong
* @date 2020/2/2 14:43
*/
public
enum
PostErrorCode
implements
IErrorCode
{
NOT_APPEAR_SAME_TIME
(
10001
,
"视频和图片不能同时出现"
),
POST_MUST_NOT_NULL
(
10002
,
"动态无内容"
),
POST_NOT_FOUND
(
10003
,
"该动态不存在"
)
;
private
long
code
;
private
String
msg
;
PostErrorCode
(
long
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
@Override
public
long
code
()
{
return
code
;
}
@Override
public
String
msg
()
{
return
msg
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/post/exception/PostCommentServiceException.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
exception
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
import
cn.meteor.beyondclouds.core.exception.ServiceException
;
/**
* @author gaoTong
* @date 2020/2/2 9:44
*/
public
class
PostCommentServiceException
extends
ServiceException
{
public
PostCommentServiceException
(
long
errorCode
,
String
errorMsg
)
{
super
(
errorCode
,
errorMsg
);
}
public
PostCommentServiceException
(
IErrorCode
errorCode
)
{
super
(
errorCode
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/post/exception/PostServiceException.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
exception
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
import
cn.meteor.beyondclouds.core.exception.ServiceException
;
/**
* @author gaoTong
* @date 2020/2/2 9:43
*/
public
class
PostServiceException
extends
ServiceException
{
public
PostServiceException
(
long
errorCode
,
String
errorMsg
)
{
super
(
errorCode
,
errorMsg
);
}
public
PostServiceException
(
IErrorCode
errorCode
)
{
super
(
errorCode
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/post/form/PostForm.java
0 → 100644
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
form
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.constraints.NotEmpty
;
import
java.util.List
;
/**
* @author gaoTong
* @date 2020/2/2 15:25
*/
@Data
public
class
PostForm
{
private
String
content
;
private
List
<
String
>
pictures
;
private
String
video
;
}
src/main/java/cn/meteor/beyondclouds/modules/post/service/IPostService.java
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
service
;
import
cn.meteor.beyondclouds.modules.post.entity.Post
;
import
cn.meteor.beyondclouds.modules.post.exception.PostServiceException
;
import
cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
...
...
@@ -13,4 +16,34 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public
interface
IPostService
extends
IService
<
Post
>
{
/**
* 发布动态
* @param post
*/
void
publishPost
(
Post
post
)
throws
ProjectServiceException
;
/**
* 删除动态
* @param postId
* @param userId
*/
void
deletePost
(
String
postId
,
String
userId
)
throws
PostServiceException
;
/**
* 动态列表
* @param pageNumber
* @param pageSize
* @return
*/
IPage
<
Post
>
getPostPage
(
Integer
pageNumber
,
Integer
pageSize
);
/**
* 个人动态列表
* @param pageNumber
* @param pageSize
* @param userId
* @return
*/
IPage
<
Post
>
getUserPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
}
src/main/java/cn/meteor/beyondclouds/modules/post/service/impl/PostServiceImpl.java
View file @
4a5362d0
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
service
.
impl
;
import
cn.meteor.beyondclouds.modules.post.entity.Post
;
import
cn.meteor.beyondclouds.modules.post.enums.PostErrorCode
;
import
cn.meteor.beyondclouds.modules.post.exception.PostServiceException
;
import
cn.meteor.beyondclouds.modules.post.mapper.PostMapper
;
import
cn.meteor.beyondclouds.modules.post.service.IPostService
;
import
cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException
;
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 +23,91 @@ import org.springframework.stereotype.Service;
@Service
public
class
PostServiceImpl
extends
ServiceImpl
<
PostMapper
,
Post
>
implements
IPostService
{
/**
* 发布动态
* @param post
* @throws ProjectServiceException
*/
@Override
public
void
publishPost
(
Post
post
)
throws
ProjectServiceException
{
//1.判断是否视频和图片都传了
if
(
null
!=
post
.
getPictures
()
&&
null
!=
post
.
getVideo
())
{
throw
new
ProjectServiceException
(
PostErrorCode
.
NOT_APPEAR_SAME_TIME
);
}
//2.当有图片或者视频时可以没有内容
if
(
null
==
post
.
getContent
()
&&
null
==
post
.
getPictures
()
&&
null
==
post
.
getVideo
())
{
throw
new
ProjectServiceException
(
PostErrorCode
.
POST_MUST_NOT_NULL
);
}
//2.判断动态类型 0:普通动态 1:图片动态 2:视频动态
int
type
;
if
(
null
==
post
.
getVideo
()
&&
null
==
post
.
getPictures
())
{
type
=
0
;
}
else
if
(
null
==
post
.
getVideo
()
&&
null
!=
post
.
getPictures
())
{
type
=
1
;
}
else
{
type
=
2
;
}
post
.
setType
(
type
);
//2.保存动态
save
(
post
);
}
/**
* 删除动态
* @param postId
* @param userId
* @throws PostServiceException
*/
@Override
public
void
deletePost
(
String
postId
,
String
userId
)
throws
PostServiceException
{
//1.判断是不是该用户发布的动态
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"post_id"
,
postId
);
queryWrapper
.
eq
(
"user_id"
,
userId
);
Post
post
=
getOne
(
queryWrapper
);
if
(
null
==
post
)
{
throw
new
PostServiceException
(
PostErrorCode
.
POST_NOT_FOUND
);
}
//2.删除动态
removeById
(
postId
);
}
/**
* 获取博客列表
* @param pageNumber
* @param pageSize
* @return
*/
@Override
public
IPage
<
Post
>
getPostPage
(
Integer
pageNumber
,
Integer
pageSize
)
{
IPage
<
Post
>
postPage
=
new
Page
<>(
pageNumber
,
pageSize
);
return
page
(
postPage
);
}
/**
*个人动态列表
* @param pageNumber
* @param pageSize
* @param userId
* @return
*/
@Override
public
IPage
<
Post
>
getUserPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"user_id"
,
userId
);
queryWrapper
.
orderByDesc
(
"create_time"
);
IPage
<
Post
>
postPage
=
new
Page
<>(
pageNumber
,
pageSize
);
return
page
(
postPage
,
queryWrapper
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectCommentApi.java
View file @
4a5362d0
...
...
@@ -86,7 +86,7 @@ public class ProjectCommentApi {
@RequestParam
(
value
=
"parentId"
,
required
=
false
)
Integer
parentId
)
{
try
{
// 根据用户获取列表并返回
IPage
<
ProjectComment
>
commentPage
=
projectCommentService
.
getCommentPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
projectId
,
parentId
);
IPage
<
ProjectComment
>
commentPage
=
projectCommentService
.
getCommentPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
projectId
,
parentId
);
PageVO
<
ProjectComment
>
projectPageVO
=
new
PageVO
<>(
commentPage
);
return
Response
.
success
(
projectPageVO
);
}
catch
(
ProjectCommentServiceException
e
)
{
...
...
src/main/resources/application.yml
View file @
4a5362d0
...
...
@@ -3,7 +3,7 @@ spring:
driver-class-name
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://127.0.0.1:3306/beyond_clouds?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username
:
root
password
:
password
password
:
100Centa30821%mysql
swagger
:
enable
:
true
...
...
@@ -32,6 +32,4 @@ beyondclouds:
qq
:
client-id
:
101846021
client-secret
:
5bc41deeb7e152e2e6aff97726bbf86a
redirect-uri
:
http://meteor.natapp1.cc/auth/qq
server
:
port
:
8081
\ No newline at end of file
redirect-uri
:
http://meteor.natapp1.cc/auth/qq
\ No newline at end of file
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