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
f79e7403
Commit
f79e7403
authored
Feb 20, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/fix-issue#72'
parents
808953cc
5d4e09e6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
211 additions
and
14 deletions
+211
-14
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogPraiseApi.java
+29
-11
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogPraiseErrorCode.java
+32
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/exception/BlogPraiseServiceException.java
+18
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogPraiseService.java
+17
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogPraiseServiceImpl.java
+90
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+25
-3
No files found.
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogPraiseApi.java
View file @
f79e7403
...
@@ -8,6 +8,7 @@ import cn.meteor.beyondclouds.core.annotation.PreventDuplicate;
...
@@ -8,6 +8,7 @@ import cn.meteor.beyondclouds.core.annotation.PreventDuplicate;
import
cn.meteor.beyondclouds.core.annotation.ReplaceWithRemarks
;
import
cn.meteor.beyondclouds.core.annotation.ReplaceWithRemarks
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
import
cn.meteor.beyondclouds.core.exception.ServiceException
;
import
cn.meteor.beyondclouds.core.flow.AccessInfo
;
import
cn.meteor.beyondclouds.core.flow.AccessInfo
;
import
cn.meteor.beyondclouds.core.flow.CollectAccessInfo
;
import
cn.meteor.beyondclouds.core.flow.CollectAccessInfo
;
import
cn.meteor.beyondclouds.core.flow.ParamType
;
import
cn.meteor.beyondclouds.core.flow.ParamType
;
...
@@ -16,8 +17,11 @@ import cn.meteor.beyondclouds.core.validation.groups.UpdateGroup;
...
@@ -16,8 +17,11 @@ import cn.meteor.beyondclouds.core.validation.groups.UpdateGroup;
import
cn.meteor.beyondclouds.modules.blog.dto.BlogDetailDTO
;
import
cn.meteor.beyondclouds.modules.blog.dto.BlogDetailDTO
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCategoryServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogPraiseServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.form.BlogForm
;
import
cn.meteor.beyondclouds.modules.blog.form.BlogForm
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogPraiseService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogService
;
import
cn.meteor.beyondclouds.util.AccessInfoUtils
;
import
cn.meteor.beyondclouds.util.AccessInfoUtils
;
import
cn.meteor.beyondclouds.util.SubjectUtils
;
import
cn.meteor.beyondclouds.util.SubjectUtils
;
...
@@ -43,28 +47,42 @@ import javax.validation.Valid;
...
@@ -43,28 +47,42 @@ import javax.validation.Valid;
@RequestMapping
(
"/api"
)
@RequestMapping
(
"/api"
)
public
class
BlogPraiseApi
{
public
class
BlogPraiseApi
{
private
IBlogPraiseService
blogPraiseService
;
@Autowired
public
void
setBlogPraiseService
(
IBlogPraiseService
blogPraiseService
)
{
this
.
blogPraiseService
=
blogPraiseService
;
}
@ApiOperation
(
"点赞"
)
@ApiOperation
(
"点赞"
)
@PostMapping
(
"/blog/{targetId}/praise"
)
@PostMapping
(
"/blog/{targetId}/praise"
)
public
Response
praise
(
@PathVariable
(
"targetId"
)
String
targetId
,
public
Response
praise
(
@PathVariable
(
"targetId"
)
String
targetId
,
@RequestParam
(
"targetType"
)
Integer
targetType
)
{
@RequestParam
(
"targetType"
)
Integer
targetType
)
{
Subject
subject
=
SubjectUtils
.
getSubject
();
Subject
subject
=
SubjectUtils
.
getSubject
();
Subject
currentUserId
=
(
Subject
)
subject
.
getId
();
String
currentUserId
=
(
String
)
subject
.
getId
();
try
{
// TODO 实现点赞功能,包括博客,评论的点赞
blogPraiseService
.
praise
(
currentUserId
,
targetId
,
targetType
);
return
Response
.
success
();
return
Response
.
success
();
}
catch
(
ServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
}
@ApiOperation
(
"点赞"
)
@ApiOperation
(
"
取消
点赞"
)
@DeleteMapping
(
"/blog/{targetId}/praise"
)
@DeleteMapping
(
"/blog/{targetId}/praise"
)
public
Response
deletePraise
(
@PathVariable
(
"targetId"
)
String
targetId
,
public
Response
deletePraise
(
@PathVariable
(
"targetId"
)
String
targetId
)
{
@RequestParam
(
"targetType"
)
Integer
targetType
)
{
Subject
subject
=
SubjectUtils
.
getSubject
();
Subject
subject
=
SubjectUtils
.
getSubject
();
S
ubject
currentUserId
=
(
Subject
)
subject
.
getId
();
S
tring
currentUserId
=
(
String
)
subject
.
getId
();
// TODO 实现取消点赞功能,包括博客,评论的取消点赞
// TODO 实现取消点赞功能,包括博客,评论的取消点赞
try
{
return
Response
.
success
();
blogPraiseService
.
deletePraise
(
currentUserId
,
targetId
);
return
Response
.
success
();
}
catch
(
ServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
}
}
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/enums/BlogPraiseErrorCode.java
0 → 100644
View file @
f79e7403
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
enums
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
/**
* @author gaoTong
* @date 2020/2/20 10:59
*/
public
enum
BlogPraiseErrorCode
implements
IErrorCode
{
BLOG_PRAISE_EXIST
(
8008
,
"您已经点过赞了"
),
NO_DELETE_PRIVILEGES
(
8009
,
"没有权限取消赞"
)
;
private
long
code
;
private
String
msg
;
BlogPraiseErrorCode
(
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/exception/BlogPraiseServiceException.java
0 → 100644
View file @
f79e7403
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
exception
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
import
cn.meteor.beyondclouds.core.exception.ServiceException
;
/**
* @author gaoTong
* @date 2020/2/20 10:55
*/
public
class
BlogPraiseServiceException
extends
ServiceException
{
public
BlogPraiseServiceException
(
long
errorCode
,
String
errorMsg
)
{
super
(
errorCode
,
errorMsg
);
}
public
BlogPraiseServiceException
(
IErrorCode
errorCode
)
{
super
(
errorCode
.
code
()
,
errorCode
.
msg
());
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogPraiseService.java
View file @
f79e7403
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
service
;
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
service
;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogPraise
;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogPraise
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogPraiseServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
/**
...
@@ -13,4 +16,18 @@ import com.baomidou.mybatisplus.extension.service.IService;
...
@@ -13,4 +16,18 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
*/
public
interface
IBlogPraiseService
extends
IService
<
BlogPraise
>
{
public
interface
IBlogPraiseService
extends
IService
<
BlogPraise
>
{
/**
* 点赞
* @param userId
* @param targetId
* @param targetType
*/
void
praise
(
String
userId
,
String
targetId
,
Integer
targetType
)
throws
BlogServiceException
,
BlogPraiseServiceException
,
BlogCommentServiceException
;
/**
* 取消点赞
* @param userId
* @param targetId
*/
void
deletePraise
(
String
userId
,
String
targetId
)
throws
BlogPraiseServiceException
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogPraiseServiceImpl.java
View file @
f79e7403
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
service
.
impl
;
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.entity.BlogPraise
;
import
cn.meteor.beyondclouds.modules.blog.entity.BlogPraise
;
import
cn.meteor.beyondclouds.modules.blog.enums.BlogCommentErrorCode
;
import
cn.meteor.beyondclouds.modules.blog.enums.BlogErrorCode
;
import
cn.meteor.beyondclouds.modules.blog.enums.BlogPraiseErrorCode
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogPraiseServiceException
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.blog.mapper.BlogPraiseMapper
;
import
cn.meteor.beyondclouds.modules.blog.mapper.BlogPraiseMapper
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogCommentService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogPraiseService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogPraiseService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.StringUtils
;
/**
/**
* <p>
* <p>
...
@@ -17,4 +30,81 @@ import org.springframework.stereotype.Service;
...
@@ -17,4 +30,81 @@ import org.springframework.stereotype.Service;
@Service
@Service
public
class
BlogPraiseServiceImpl
extends
ServiceImpl
<
BlogPraiseMapper
,
BlogPraise
>
implements
IBlogPraiseService
{
public
class
BlogPraiseServiceImpl
extends
ServiceImpl
<
BlogPraiseMapper
,
BlogPraise
>
implements
IBlogPraiseService
{
private
IBlogService
blogService
;
private
IBlogCommentService
blogCommentService
;
@Autowired
public
void
setBlogService
(
IBlogService
blogService
)
{
this
.
blogService
=
blogService
;
}
@Autowired
public
void
setBlogCommentService
(
IBlogCommentService
blogCommentService
)
{
this
.
blogCommentService
=
blogCommentService
;
}
@Override
public
void
praise
(
String
userId
,
String
targetId
,
Integer
targetType
)
throws
BlogServiceException
,
BlogPraiseServiceException
,
BlogCommentServiceException
{
//判断是博客内容点赞还是博客评论
if
(
1
==
targetType
)
{
//判断当前博客是否存在
Blog
blog
=
blogService
.
getById
(
targetId
);
if
(
null
!=
blog
)
{
//判断该用户是否已经点过赞
QueryWrapper
<
BlogPraise
>
blogExtqueryWrapper
=
new
QueryWrapper
<>();
blogExtqueryWrapper
.
eq
(
"user_id"
,
userId
);
blogExtqueryWrapper
.
eq
(
"target_id"
,
targetId
);
BlogPraise
blogExtPraise
=
getOne
(
blogExtqueryWrapper
);
//如果没有点过赞则进行点赞
if
(
null
==
blogExtPraise
)
{
BlogPraise
blogPraise
=
new
BlogPraise
();
blogPraise
.
setUserId
(
userId
);
blogPraise
.
setTargetType
(
targetType
);
blogPraise
.
setTargetId
(
targetId
);
save
(
blogPraise
);
}
else
{
throw
new
BlogPraiseServiceException
(
BlogPraiseErrorCode
.
BLOG_PRAISE_EXIST
);
}
}
else
{
throw
new
BlogServiceException
(
BlogErrorCode
.
BLOG_NOT_FOUND
);
}
}
else
if
(
2
==
targetType
){
//判断当前评论是否存在
BlogComment
blogComment
=
blogCommentService
.
getById
(
targetId
);
if
(
null
!=
blogComment
)
{
//判断该用户是否已经对此评论点过赞了
QueryWrapper
<
BlogPraise
>
blogCommentQueryWrapper
=
new
QueryWrapper
<>();
blogCommentQueryWrapper
.
eq
(
"user_id"
,
userId
);
blogCommentQueryWrapper
.
eq
(
"target_id"
,
targetId
);
BlogPraise
blogCommentPraise
=
getOne
(
blogCommentQueryWrapper
);
if
(
null
==
blogCommentPraise
)
{
BlogPraise
blogPraise
=
new
BlogPraise
();
blogPraise
.
setUserId
(
userId
);
blogPraise
.
setTargetType
(
targetType
);
blogPraise
.
setTargetId
(
targetId
);
save
(
blogPraise
);
}
else
{
throw
new
BlogPraiseServiceException
(
BlogPraiseErrorCode
.
BLOG_PRAISE_EXIST
);
}
}
else
{
throw
new
BlogCommentServiceException
(
BlogCommentErrorCode
.
COMMENT_NOT_FOUND
);
}
}
}
@Override
public
void
deletePraise
(
String
userId
,
String
targetId
)
throws
BlogPraiseServiceException
{
//判断是否是该用户点的赞
QueryWrapper
<
BlogPraise
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"user_id"
,
userId
);
queryWrapper
.
eq
(
"target_id"
,
targetId
);
BlogPraise
blogPraise
=
getOne
(
queryWrapper
);
if
(
null
==
blogPraise
)
{
throw
new
BlogPraiseServiceException
(
BlogPraiseErrorCode
.
NO_DELETE_PRIVILEGES
);
}
remove
(
queryWrapper
);
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
f79e7403
...
@@ -77,6 +77,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -77,6 +77,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
private
IUserFollowService
userFollowService
;
private
IUserFollowService
userFollowService
;
private
IBlogPraiseService
blogPraiseService
;
@Autowired
@Autowired
public
BlogServiceImpl
(
IBlogTagService
blogTagService
,
ITopicReferenceService
topicReferenceService
,
IBlogExtService
blogExtService
,
IBlogCategoryService
blogCategoryService
,
BlogMapper
blogMapper
,
ITagService
tagService
)
{
public
BlogServiceImpl
(
IBlogTagService
blogTagService
,
ITopicReferenceService
topicReferenceService
,
IBlogExtService
blogExtService
,
IBlogCategoryService
blogCategoryService
,
BlogMapper
blogMapper
,
ITagService
tagService
)
{
this
.
blogTagService
=
blogTagService
;
this
.
blogTagService
=
blogTagService
;
...
@@ -112,6 +113,11 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -112,6 +113,11 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
this
.
blogCommentService
=
blogCommentService
;
this
.
blogCommentService
=
blogCommentService
;
}
}
@Autowired
public
void
setBlogPraiseService
(
IBlogPraiseService
blogPraiseService
)
{
this
.
blogPraiseService
=
blogPraiseService
;
}
/**
/**
* 发布博客
* 发布博客
*
*
...
@@ -193,14 +199,29 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -193,14 +199,29 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
//2.删除博客评论表
//2.删除博客评论表
QueryWrapper
<
BlogComment
>
queryWrapperComment
=
new
QueryWrapper
();
QueryWrapper
<
BlogComment
>
queryWrapperComment
=
new
QueryWrapper
();
queryWrapperComment
.
eq
(
"blog_id"
,
blogId
);
queryWrapperComment
.
eq
(
"blog_id"
,
blogId
);
//删除博客评论的点赞
List
<
String
>
blogCommentId
=
new
ArrayList
<>();
for
(
BlogComment
blogComment
:
blogCommentService
.
list
(
queryWrapperComment
))
{
String
commentId
=
String
.
valueOf
(
blogComment
.
getCommentId
());
blogCommentId
.
add
(
commentId
);
}
QueryWrapper
<
BlogPraise
>
blogCommentPraiseQueryWrapper
=
new
QueryWrapper
<>();
blogCommentPraiseQueryWrapper
.
in
(
"target_id"
,
blogCommentId
);
blogPraiseService
.
remove
(
blogCommentPraiseQueryWrapper
);
blogCommentService
.
remove
(
queryWrapperComment
);
blogCommentService
.
remove
(
queryWrapperComment
);
//3.删除博客内容
//3.删除博客内容
QueryWrapper
<
BlogExt
>
queryWrapperExt
=
new
QueryWrapper
();
QueryWrapper
<
BlogExt
>
queryWrapperExt
=
new
QueryWrapper
();
queryWrapperExt
.
eq
(
"blog_id"
,
blogId
);
queryWrapperExt
.
eq
(
"blog_id"
,
blogId
);
blogExtService
.
remove
(
queryWrapperExt
);
blogExtService
.
remove
(
queryWrapperExt
);
//4.删除博客标签
//4.删除博客内容点赞
QueryWrapper
<
BlogPraise
>
blogExtPraiseQueryWrapper
=
new
QueryWrapper
<>();
blogExtPraiseQueryWrapper
.
eq
(
"target_id"
,
blogId
);
blogPraiseService
.
remove
(
blogExtPraiseQueryWrapper
);
//5.删除博客标签
QueryWrapper
<
BlogTag
>
queryWrapperTag
=
new
QueryWrapper
();
QueryWrapper
<
BlogTag
>
queryWrapperTag
=
new
QueryWrapper
();
queryWrapperTag
.
eq
(
"blog_id"
,
blogId
);
queryWrapperTag
.
eq
(
"blog_id"
,
blogId
);
//引用标签数量减一
//引用标签数量减一
...
@@ -210,7 +231,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -210,7 +231,7 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
}
blogTagService
.
remove
(
queryWrapperTag
);
blogTagService
.
remove
(
queryWrapperTag
);
//
5
.删除博客引用的话题
//
6
.删除博客引用的话题
QueryWrapper
<
TopicReference
>
queryWrapperTopic
=
new
QueryWrapper
();
QueryWrapper
<
TopicReference
>
queryWrapperTopic
=
new
QueryWrapper
();
queryWrapperTopic
.
eq
(
"referencer_id"
,
blogId
);
queryWrapperTopic
.
eq
(
"referencer_id"
,
blogId
);
//引用话题数量减一
//引用话题数量减一
...
@@ -220,9 +241,10 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
...
@@ -220,9 +241,10 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
}
}
topicReferenceService
.
remove
(
queryWrapperTopic
);
topicReferenceService
.
remove
(
queryWrapperTopic
);
//
6
.删除博客表里的数据
//
7
.删除博客表里的数据
removeById
(
blogId
);
removeById
(
blogId
);
// 5.发送消息到消息队列
// 5.发送消息到消息队列
messageQueueService
messageQueueService
.
sendDataItemChangeMessage
(
.
sendDataItemChangeMessage
(
...
...
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