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
b914ade3
Commit
b914ade3
authored
Feb 21, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
动态完成是否点赞
parent
58d00de6
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
50 additions
and
117 deletions
+50
-117
src/main/java/cn/meteor/beyondclouds/modules/post/api/PostApi.java
+8
-57
src/main/java/cn/meteor/beyondclouds/modules/post/service/IPostService.java
+3
-3
src/main/java/cn/meteor/beyondclouds/modules/post/service/impl/PostServiceImpl.java
+30
-13
src/main/java/cn/meteor/beyondclouds/modules/post/vo/PostVO.java
+0
-44
src/main/java/cn/meteor/beyondclouds/util/PageUtils.java
+9
-0
No files found.
src/main/java/cn/meteor/beyondclouds/modules/post/api/PostApi.java
View file @
b914ade3
...
...
@@ -13,25 +13,18 @@ import cn.meteor.beyondclouds.modules.post.enums.PostErrorCode;
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.post.vo.PostVO
;
import
cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException
;
import
cn.meteor.beyondclouds.modules.user.service.IUserFollowService
;
import
cn.meteor.beyondclouds.util.PageUtils
;
import
cn.meteor.beyondclouds.util.SubjectUtils
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.validation.BindingResult
;
import
org.springframework.web.bind.annotation.*
;
import
javax.validation.Valid
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -136,10 +129,8 @@ public class PostApi {
return
Response
.
error
(
PostErrorCode
.
TYPE_ERROR
);
}
IPage
<
Post
>
postPage
=
postService
.
getPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
type
);
return
Response
.
success
(
toPostVOPage
(
postPage
));
PageDTO
<
PostDTO
>
postPage
=
postService
.
getPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
type
);
return
Response
.
success
(
postPage
);
}
/**
...
...
@@ -155,8 +146,8 @@ public class PostApi {
if
(
bindingResult
.
hasErrors
())
{
return
Response
.
fieldError
(
bindingResult
.
getFieldError
());
}
IPage
<
Post
>
postPage
=
postService
.
getUserPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
return
Response
.
success
(
toPostVOPage
(
postPage
)
);
PageDTO
<
PostDTO
>
postPage
=
postService
.
getUserPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
return
Response
.
success
(
postPage
);
}
/**
...
...
@@ -174,48 +165,8 @@ public class PostApi {
if
(
bindingResult
.
hasErrors
())
{
return
Response
.
fieldError
(
bindingResult
.
getFieldError
());
}
IPage
<
Post
>
postPage
=
postService
.
getUserPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
return
Response
.
success
(
toPostVOPage
(
postPage
));
}
/**
* 动态图片输出格式转化
*
* @param postPage
* @return
*/
private
PageDTO
<?
extends
PostVO
>
toPostVOPage
(
IPage
<
Post
>
postPage
)
{
List
<
PostVO
>
postVOList
;
if
(
SubjectUtils
.
isAuthenticated
())
{
postVOList
=
postPage
.
getRecords
().
stream
()
.
map
(
post
->
{
PostVO
postVO
=
new
PostVO
();
BeanUtils
.
copyProperties
(
post
,
postVO
);
if
(!
StringUtils
.
isEmpty
(
post
.
getPictures
()))
{
postVO
.
setPictures
(
post
.
getPictures
().
split
(
","
));
}
postVO
.
setFollowedAuthor
(
userFollowService
.
hasFollowedUser
(
post
.
getUserId
()));
return
postVO
;
}).
collect
(
Collectors
.
toList
());
}
else
{
postVOList
=
postPage
.
getRecords
().
stream
()
.
map
(
post
->
{
PostVO
postVO
=
new
PostVO
();
BeanUtils
.
copyProperties
(
post
,
postVO
);
if
(!
StringUtils
.
isEmpty
(
post
.
getPictures
()))
{
postVO
.
setPictures
(
post
.
getPictures
().
split
(
","
));
}
postVO
.
setFollowedAuthor
(
false
);
return
postVO
;
}).
collect
(
Collectors
.
toList
());
}
PageDTO
<
PostVO
>
postPageDTO
=
new
PageDTO
<>();
PageUtils
.
copyMeta
(
postPage
,
postPageDTO
);
postPageDTO
.
setDataList
(
postVOList
);
return
postPageDTO
;
PageDTO
<
PostDTO
>
postPage
=
postService
.
getUserPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
return
Response
.
success
(
postPage
);
}
@ReplaceWithRemarks
...
...
@@ -225,8 +176,8 @@ public class PostApi {
if
(
bindingResult
.
hasErrors
())
{
return
Response
.
fieldError
(
bindingResult
.
getFieldError
());
}
IPage
<
Post
>
postPage
=
postService
.
getFollowedPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
return
Response
.
success
(
toPostVOPage
(
postPage
)
);
PageDTO
<
PostDTO
>
postPage
=
postService
.
getFollowedPostPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
return
Response
.
success
(
postPage
);
}
/**
...
...
src/main/java/cn/meteor/beyondclouds/modules/post/service/IPostService.java
View file @
b914ade3
...
...
@@ -43,7 +43,7 @@ public interface IPostService extends IService<Post> {
* @param type
* @return
*/
IPage
<
Post
>
getPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
type
);
PageDTO
<
PostDTO
>
getPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
type
);
/**
* 个人动态列表
...
...
@@ -53,7 +53,7 @@ public interface IPostService extends IService<Post> {
* @param userId
* @return
*/
IPage
<
Post
>
getUserPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
PageDTO
<
PostDTO
>
getUserPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
/**
* 更新动态里的用户头像
...
...
@@ -77,7 +77,7 @@ public interface IPostService extends IService<Post> {
* @param userId
* @return
*/
IPage
<
Post
>
getFollowedPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
PageDTO
<
PostDTO
>
getFollowedPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
/**
* 推荐动态
...
...
src/main/java/cn/meteor/beyondclouds/modules/post/service/impl/PostServiceImpl.java
View file @
b914ade3
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
service
.
impl
;
import
cn.meteor.beyondclouds.common.dto.PageDTO
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.modules.post.dto.PostDTO
;
...
...
@@ -44,6 +45,8 @@ import org.springframework.util.StringUtils;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -283,7 +286,7 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
* @return
*/
@Override
public
IPage
<
Post
>
getPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
type
)
{
public
PageDTO
<
PostDTO
>
getPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
type
)
{
IPage
<
Post
>
postPage
=
new
Page
<>(
pageNumber
,
pageSize
);
QueryWrapper
<
Post
>
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"status"
,
0
);
...
...
@@ -291,7 +294,7 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
if
(
null
!=
type
)
{
queryWrapper
.
eq
(
"type"
,
type
);
}
return
page
(
postPage
,
queryWrapper
);
return
toPageDTO
(
page
(
postPage
,
queryWrapper
)
);
}
/**
...
...
@@ -303,7 +306,7 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
* @return
*/
@Override
public
IPage
<
Post
>
getUserPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
public
PageDTO
<
PostDTO
>
getUserPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
QueryWrapper
queryWrapper
=
new
QueryWrapper
();
queryWrapper
.
eq
(
"user_id"
,
userId
);
if
(!
SubjectUtils
.
isAuthenticated
()
||
!
SubjectUtils
.
getSubject
().
getId
().
equals
(
userId
))
{
...
...
@@ -312,7 +315,7 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
queryWrapper
.
orderByDesc
(
"create_time"
);
IPage
<
Post
>
postPage
=
new
Page
<>(
pageNumber
,
pageSize
);
return
page
(
postPage
,
queryWrapper
);
return
toPageDTO
(
page
(
postPage
,
queryWrapper
)
);
}
/**
...
...
@@ -349,7 +352,7 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
}
@Override
public
IPage
<
Post
>
getFollowedPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
public
PageDTO
<
PostDTO
>
getFollowedPostPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
IPage
<
Post
>
postPage
=
new
Page
<>(
pageNumber
,
pageSize
);
//查询出我所关注的用户
QueryWrapper
<
UserFollow
>
userFollowQueryWrapper
=
new
QueryWrapper
<>();
...
...
@@ -364,9 +367,9 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
postQueryWrapper
.
in
(
"user_id"
,
followedIds
);
postQueryWrapper
.
eq
(
"status"
,
0
);
postQueryWrapper
.
orderByDesc
(
"create_time"
);
return
page
(
postPage
,
postQueryWrapper
);
return
toPageDTO
(
page
(
postPage
,
postQueryWrapper
)
);
}
else
{
return
postPage
;
return
PageUtils
.
emptyPageDTO
()
;
}
}
...
...
@@ -385,6 +388,19 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
private
PageDTO
<
PostDTO
>
toPageDTO
(
IPage
<
Post
>
postPage
)
{
List
<
PostDTO
>
postDTOList
;
if
(
SubjectUtils
.
isAuthenticated
())
{
List
<
String
>
postIds
=
postPage
.
getRecords
().
stream
()
.
map
(
Post:
:
getPostId
)
.
collect
(
Collectors
.
toList
());
// 获取点赞情况
QueryWrapper
<
PostPraise
>
postPraiseQueryWrapper
=
new
QueryWrapper
<>();
postPraiseQueryWrapper
.
in
(
"target_id"
,
postIds
);
postPraiseQueryWrapper
.
eq
(
"target_type"
,
PostPraiseType
.
POST_PRAISE
.
getPraiseType
());
postPraiseQueryWrapper
.
eq
(
"user_id"
,
SubjectUtils
.
getSubject
().
getId
());
List
<
PostPraise
>
postPraiseList
=
postPraiseService
.
list
(
postPraiseQueryWrapper
);
Set
<
String
>
praisedPostIds
=
postPraiseList
.
stream
()
.
map
(
PostPraise:
:
getTargetId
)
.
collect
(
Collectors
.
toSet
());
postDTOList
=
postPage
.
getRecords
().
stream
()
.
map
(
post
->
{
PostDTO
postDTO
=
new
PostDTO
();
...
...
@@ -392,20 +408,21 @@ public class PostServiceImpl extends ServiceImpl<PostMapper, Post> implements IP
if
(!
StringUtils
.
isEmpty
(
post
.
getPictures
()))
{
postDTO
.
setPictures
(
post
.
getPictures
().
split
(
","
));
}
postDTO
.
setPraised
(
praisedPostIds
.
contains
(
post
.
getPostId
()));
postDTO
.
setFollowedAuthor
(
userFollowService
.
hasFollowedUser
(
post
.
getUserId
()));
return
postDTO
;
}).
collect
(
Collectors
.
toList
());
}
else
{
postDTOList
=
postPage
.
getRecords
().
stream
()
.
map
(
post
->
{
PostDTO
post
V
O
=
new
PostDTO
();
BeanUtils
.
copyProperties
(
post
,
post
V
O
);
PostDTO
post
DT
O
=
new
PostDTO
();
BeanUtils
.
copyProperties
(
post
,
post
DT
O
);
if
(!
StringUtils
.
isEmpty
(
post
.
getPictures
()))
{
post
V
O
.
setPictures
(
post
.
getPictures
().
split
(
","
));
post
DT
O
.
setPictures
(
post
.
getPictures
().
split
(
","
));
}
postVO
.
setFollowedAuthor
(
false
);
return
postVO
;
postDTO
.
setFollowedAuthor
(
false
);
postDTO
.
setPraised
(
false
);
return
postDTO
;
}).
collect
(
Collectors
.
toList
());
}
PageDTO
<
PostDTO
>
pageDTO
=
new
PageDTO
<>();
...
...
src/main/java/cn/meteor/beyondclouds/modules/post/vo/PostVO.java
deleted
100644 → 0
View file @
58d00de6
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author meteor
*/
@Data
public
class
PostVO
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
postId
;
private
String
userId
;
private
Integer
type
;
private
String
content
;
private
String
[]
pictures
;
private
String
video
;
private
String
userAvatar
;
private
String
userNick
;
private
Integer
commentNumber
;
private
Integer
status
;
private
Integer
praiseNum
;
private
Date
createTime
;
private
Date
updateTime
;
private
Boolean
followedAuthor
;
private
Boolean
praised
;
}
src/main/java/cn/meteor/beyondclouds/util/PageUtils.java
View file @
b914ade3
...
...
@@ -19,6 +19,15 @@ public class PageUtils {
return
page
;
}
public
static
<
T
>
PageDTO
<
T
>
emptyPageDTO
()
{
PageDTO
<
T
>
page
=
new
PageDTO
<>();
page
.
setTotalRecords
(
0L
);
page
.
setTotalPage
(
0L
);
page
.
setDataList
(
List
.
of
());
page
.
setPageSize
(
0
);
return
page
;
}
public
static
void
copyMeta
(
IPage
<?>
src
,
PageDTO
<?>
dest
)
{
dest
.
setTotalPage
(
src
.
getPages
());
dest
.
setPageSize
(
src
.
getSize
());
...
...
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