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
e0d9ff06
Commit
e0d9ff06
authored
Feb 20, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目点赞完成
parent
d3decc13
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
210 additions
and
45 deletions
+210
-45
src/main/java/cn/meteor/beyondclouds/common/enums/ErrorCode.java
+1
-3
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectPraiseApi.java
+42
-14
src/main/java/cn/meteor/beyondclouds/modules/project/enums/ProjectPraiseErrorCode.java
+29
-0
src/main/java/cn/meteor/beyondclouds/modules/project/enums/ProjectPraiseType.java
+25
-0
src/main/java/cn/meteor/beyondclouds/modules/project/service/IProjectPraiseService.java
+18
-7
src/main/java/cn/meteor/beyondclouds/modules/project/service/impl/ProjectPraiseServiceImpl.java
+95
-21
No files found.
src/main/java/cn/meteor/beyondclouds/common/enums/ErrorCode.java
View file @
e0d9ff06
...
...
@@ -20,9 +20,7 @@ public enum ErrorCode implements IErrorCode {
* 前端传进来的参数没有通过校验规则
*/
FIELD_CHECK_FAILURE
(-
2
,
"参数校验失败!"
),
DUPLICATE_SUBMISSION
(-
3
,
"访问太频繁"
),
ALREADY_PRAISE
(-
4
,
"已经点过赞"
),
NON_PRAISE
(-
5
,
"没有点过赞"
);
DUPLICATE_SUBMISSION
(-
3
,
"访问太频繁"
);
private
Integer
code
;
private
String
msg
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectPraiseApi.java
View file @
e0d9ff06
...
...
@@ -27,28 +27,56 @@ public class ProjectPraiseApi {
this
.
projectPraiseService
=
projectPraiseService
;
}
@ApiOperation
(
"点赞"
)
@PostMapping
(
"/project/{targetId}/praise"
)
public
Response
praise
(
@PathVariable
(
"targetId"
)
String
targetId
,
@RequestParam
(
"targetType"
)
Integer
targetType
)
throws
ProjectServiceException
{
@ApiOperation
(
"项目点赞"
)
@PostMapping
(
"/project/{projectId}/praise"
)
public
Response
praiseProject
(
@PathVariable
(
"projectId"
)
String
projectId
)
{
Subject
subject
=
SubjectUtils
.
getSubject
();
String
currentUserId
=
(
String
)
subject
.
getId
();
try
{
projectPraiseService
.
praiseProject
(
currentUserId
,
projectId
);
return
Response
.
success
();
}
catch
(
ProjectServiceException
e
)
{
return
Response
.
error
(
e
);
}
}
// TODO 实现点赞功能,包括项目,评论的点赞
projectPraiseService
.
praise
(
currentUserId
,
targetId
,
targetType
);
return
Response
.
success
();
@ApiOperation
(
"取消项目点赞"
)
@DeleteMapping
(
"/project/{projectId}/praise"
)
public
Response
deleteProjectPraise
(
@PathVariable
(
"projectId"
)
String
projectId
)
{
Subject
subject
=
SubjectUtils
.
getSubject
();
String
currentUserId
=
(
String
)
subject
.
getId
();
try
{
projectPraiseService
.
deleteProjectPraise
(
currentUserId
,
projectId
);
return
Response
.
success
();
}
catch
(
ProjectServiceException
e
)
{
return
Response
.
error
(
e
);
}
}
@ApiOperation
(
"取消点赞"
)
@DeleteMapping
(
"/project/{targetId}/praise"
)
public
Response
deletePraise
(
@PathVariable
(
"targetId"
)
String
targetId
,
@RequestParam
(
"targetType"
)
Integer
targetType
)
throws
ProjectServiceException
{
@ApiOperation
(
"项目评论点赞"
)
@PostMapping
(
"/project/comment/{commentId}/praise"
)
public
Response
praiseProjectComment
(
@PathVariable
(
"commentId"
)
String
commentId
)
{
Subject
subject
=
SubjectUtils
.
getSubject
();
String
currentUserId
=
(
String
)
subject
.
getId
();
try
{
projectPraiseService
.
praiseProjectComment
(
currentUserId
,
commentId
);
return
Response
.
success
();
}
catch
(
ProjectServiceException
e
)
{
return
Response
.
error
(
e
);
}
}
// TODO 实现取消点赞功能,包括项目,评论的取消点赞
projectPraiseService
.
deletePraise
(
currentUserId
,
targetId
,
targetType
);
return
Response
.
success
();
@ApiOperation
(
"取消项目评论点赞"
)
@DeleteMapping
(
"/project/comment/{commentId}/praise"
)
public
Response
deleteProjectCommentPraise
(
@PathVariable
(
"commentId"
)
String
commentId
)
{
Subject
subject
=
SubjectUtils
.
getSubject
();
String
currentUserId
=
(
String
)
subject
.
getId
();
try
{
projectPraiseService
.
deleteProjectCommentPraise
(
currentUserId
,
commentId
);
return
Response
.
success
();
}
catch
(
ProjectServiceException
e
)
{
return
Response
.
error
(
e
);
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/project/enums/ProjectPraiseErrorCode.java
0 → 100644
View file @
e0d9ff06
package
cn
.
meteor
.
beyondclouds
.
modules
.
project
.
enums
;
import
cn.meteor.beyondclouds.core.IErrorCode
;
/**
* @author 段启岩
*/
public
enum
ProjectPraiseErrorCode
implements
IErrorCode
{
ALREADY_PRAISE
(
120001
,
"已经点过赞"
),
NON_PRAISE
(
120002
,
"没有点过赞"
);
private
long
code
;
private
String
msg
;
ProjectPraiseErrorCode
(
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/project/enums/ProjectPraiseType.java
0 → 100644
View file @
e0d9ff06
package
cn
.
meteor
.
beyondclouds
.
modules
.
project
.
enums
;
import
lombok.Getter
;
/**
* @author meteor
*/
@Getter
public
enum
ProjectPraiseType
{
/**
* 项目点赞
*/
PROJECT_PRAISE
(
1
),
/**
* 项目评论点赞
*/
PROJECT_COMMENT_PRAISE
(
2
)
;
private
Integer
praiseType
;
ProjectPraiseType
(
Integer
praiseType
)
{
this
.
praiseType
=
praiseType
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/project/service/IProjectPraiseService.java
View file @
e0d9ff06
package
cn
.
meteor
.
beyondclouds
.
modules
.
project
.
service
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
import
cn.meteor.beyondclouds.modules.project.entity.ProjectPraise
;
import
cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
...
@@ -18,17 +17,29 @@ public interface IProjectPraiseService extends IService<ProjectPraise> {
/**
* 点赞
* @param currentUserId
* @param targetId
* @param targetType
* @param projectId
* @throws ProjectServiceException
*/
void
praise
(
String
currentUserId
,
String
targetId
,
Integer
targetType
)
throws
ProjectServiceException
;
void
praise
Project
(
String
currentUserId
,
String
projectId
)
throws
ProjectServiceException
;
/**
* 取消点赞
* @param currentUserId
* @param targetId
* @param targetType
* @param projectId
*/
void
deletePraise
(
String
currentUserId
,
String
targetId
,
Integer
targetType
)
throws
ProjectServiceException
;
void
deleteProjectPraise
(
String
currentUserId
,
String
projectId
)
throws
ProjectServiceException
;
/**
* 项目评论点赞
* @param currentUserId
* @param commentId
*/
void
praiseProjectComment
(
String
currentUserId
,
String
commentId
)
throws
ProjectServiceException
;
/**
* 取消项目评论点赞
* @param currentUserId
* @param commentId
*/
void
deleteProjectCommentPraise
(
String
currentUserId
,
String
commentId
)
throws
ProjectServiceException
;
}
src/main/java/cn/meteor/beyondclouds/modules/project/service/impl/ProjectPraiseServiceImpl.java
View file @
e0d9ff06
package
cn
.
meteor
.
beyondclouds
.
modules
.
project
.
service
.
impl
;
import
cn.meteor.beyondclouds.common.enums.ErrorCode
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
import
cn.meteor.beyondclouds.core.exception.ServiceException
;
import
cn.meteor.beyondclouds.modules.post.service.IPostCommentService
;
import
cn.meteor.beyondclouds.modules.project.entity.Project
;
import
cn.meteor.beyondclouds.modules.project.entity.ProjectComment
;
import
cn.meteor.beyondclouds.modules.project.entity.ProjectPraise
;
import
cn.meteor.beyondclouds.modules.project.enums.ProjectCommentErrorCode
;
import
cn.meteor.beyondclouds.modules.project.enums.ProjectErrorCode
;
import
cn.meteor.beyondclouds.modules.project.enums.ProjectPraiseErrorCode
;
import
cn.meteor.beyondclouds.modules.project.enums.ProjectPraiseType
;
import
cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException
;
import
cn.meteor.beyondclouds.modules.project.mapper.ProjectPraiseMapper
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectCommentService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectPraiseService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
...
...
@@ -23,38 +30,105 @@ import org.springframework.stereotype.Service;
@Service
public
class
ProjectPraiseServiceImpl
extends
ServiceImpl
<
ProjectPraiseMapper
,
ProjectPraise
>
implements
IProjectPraiseService
{
private
IProjectService
projectService
;
private
IProjectCommentService
projectCommentService
;
@Autowired
public
void
setProjectService
(
IProjectService
projectService
)
{
this
.
projectService
=
projectService
;
}
@Autowired
public
void
setProjectCommentService
(
IProjectCommentService
projectCommentService
)
{
this
.
projectCommentService
=
projectCommentService
;
}
@Override
public
void
praiseProject
(
String
currentUserId
,
String
projectId
)
throws
ProjectServiceException
{
// 1.查询项目是否存在
Project
project
=
projectService
.
getById
(
projectId
);
if
(
null
==
project
)
{
throw
new
ProjectServiceException
(
ProjectErrorCode
.
PROJECT_NOT_FOUND
);
}
// 2.查询是否点过赞
QueryWrapper
<
ProjectPraise
>
projectPraiseQueryWrapper
=
new
QueryWrapper
();
projectPraiseQueryWrapper
.
eq
(
"user_id"
,
currentUserId
);
projectPraiseQueryWrapper
.
eq
(
"target_id"
,
projectId
);
projectPraiseQueryWrapper
.
eq
(
"target_type"
,
ProjectPraiseType
.
PROJECT_PRAISE
.
getPraiseType
());
ProjectPraise
projectPraise
=
getOne
(
projectPraiseQueryWrapper
);
if
(
null
!=
getOne
(
projectPraiseQueryWrapper
)){
throw
new
ProjectServiceException
(
ProjectPraiseErrorCode
.
ALREADY_PRAISE
);
}
// 保存点赞
projectPraise
=
new
ProjectPraise
();
projectPraise
.
setUserId
(
currentUserId
);
projectPraise
.
setTargetId
(
projectId
);
projectPraise
.
setTargetType
(
ProjectPraiseType
.
PROJECT_PRAISE
.
getPraiseType
());
save
(
projectPraise
);
}
@Override
public
void
praise
(
String
currentUserId
,
String
targetId
,
Integer
targetType
)
throws
ProjectServiceException
{
public
void
deleteProjectPraise
(
String
currentUserId
,
String
projectId
)
throws
ProjectServiceException
{
// 1.判断是否点过赞
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"user_id"
,
currentUserId
);
queryWrapper
.
eq
(
"target_id"
,
targetId
);
queryWrapper
.
eq
(
"target_type"
,
targetType
);
if
(
null
==
getOne
(
queryWrapper
)){
ProjectPraise
projectPraise
=
new
ProjectPraise
();
projectPraise
.
setUserId
(
currentUserId
);
projectPraise
.
setTargetId
(
targetId
);
projectPraise
.
setTargetType
(
targetType
);
save
(
projectPraise
);
}
else
{
throw
new
ProjectServiceException
(
ErrorCode
.
ALREADY_PRAISE
);
queryWrapper
.
eq
(
"target_id"
,
projectId
);
queryWrapper
.
eq
(
"target_type"
,
ProjectPraiseType
.
PROJECT_PRAISE
.
getPraiseType
());
ProjectPraise
projectPraise
=
getOne
(
queryWrapper
);
if
(
null
==
projectPraise
)
{
throw
new
ProjectServiceException
(
ProjectPraiseErrorCode
.
NON_PRAISE
);
}
// 1.删除
remove
(
queryWrapper
);
}
@Override
public
void
praiseProjectComment
(
String
currentUserId
,
String
commentId
)
throws
ProjectServiceException
{
// 1.查询评论是否存在
ProjectComment
projectComment
=
projectCommentService
.
getById
(
commentId
);
if
(
null
==
projectComment
)
{
throw
new
ProjectServiceException
(
ProjectCommentErrorCode
.
COMMENT_NOT_FOUND
);
}
// 2.查询是否点过赞
QueryWrapper
<
ProjectPraise
>
projectPraiseQueryWrapper
=
new
QueryWrapper
();
projectPraiseQueryWrapper
.
eq
(
"user_id"
,
currentUserId
);
projectPraiseQueryWrapper
.
eq
(
"target_id"
,
commentId
);
projectPraiseQueryWrapper
.
eq
(
"target_type"
,
ProjectPraiseType
.
PROJECT_COMMENT_PRAISE
.
getPraiseType
());
ProjectPraise
projectPraise
=
getOne
(
projectPraiseQueryWrapper
);
if
(
null
!=
getOne
(
projectPraiseQueryWrapper
)){
throw
new
ProjectServiceException
(
ProjectPraiseErrorCode
.
ALREADY_PRAISE
);
}
// 保存点赞
projectPraise
=
new
ProjectPraise
();
projectPraise
.
setUserId
(
currentUserId
);
projectPraise
.
setTargetId
(
commentId
);
projectPraise
.
setTargetType
(
ProjectPraiseType
.
PROJECT_COMMENT_PRAISE
.
getPraiseType
());
save
(
projectPraise
);
}
@Override
public
void
deletePraise
(
String
currentUserId
,
String
targetId
,
Integer
targetType
)
throws
ProjectServiceException
{
public
void
deleteProjectCommentPraise
(
String
currentUserId
,
String
commentId
)
throws
ProjectServiceException
{
// 1.判断是否点过赞
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"user_id"
,
currentUserId
);
queryWrapper
.
eq
(
"target_id"
,
targe
tId
);
queryWrapper
.
eq
(
"target_type"
,
targetType
);
queryWrapper
.
eq
(
"target_id"
,
commen
tId
);
queryWrapper
.
eq
(
"target_type"
,
ProjectPraiseType
.
PROJECT_COMMENT_PRAISE
.
getPraiseType
()
);
if
(
null
!=
getOne
(
queryWrapper
)){
remove
(
queryWrapper
);
}
else
{
throw
new
ProjectServiceException
(
ErrorCode
.
NON_PRAISE
);
ProjectPraise
projectPraise
=
getOne
(
queryWrapper
);
if
(
null
==
projectPraise
)
{
throw
new
ProjectServiceException
(
ProjectPraiseErrorCode
.
NON_PRAISE
);
}
// 1.删除
remove
(
queryWrapper
);
}
}
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