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
5d4e09e6
Commit
5d4e09e6
authored
Feb 20, 2020
by
Author name
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2.20 增加博客点赞和取消点赞功能
parent
3cfb6540
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
209 additions
and
12 deletions
+209
-12
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogPraiseApi.java
+27
-9
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 @
5d4e09e6
...
@@ -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
{
blogPraiseService
.
deletePraise
(
currentUserId
,
targetId
);
return
Response
.
success
();
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 @
5d4e09e6
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 @
5d4e09e6
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 @
5d4e09e6
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 @
5d4e09e6
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 @
5d4e09e6
...
@@ -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