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
678ee9d2
Commit
678ee9d2
authored
Feb 12, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
我的关注和他人的关注里面添加统计信息
parent
9458e648
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
232 additions
and
140 deletions
+232
-140
src/main/java/cn/meteor/beyondclouds/common/dto/PageDTO.java
+5
-5
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
+17
-17
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogCommentApi.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/content/api/ContentApi.java
+3
-3
src/main/java/cn/meteor/beyondclouds/modules/message/api/MessageApi.java
+3
-3
src/main/java/cn/meteor/beyondclouds/modules/post/api/PostApi.java
+6
-6
src/main/java/cn/meteor/beyondclouds/modules/post/api/PostCommentApi.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectApi.java
+13
-13
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectCommentApi.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionApi.java
+25
-25
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionReplyApi.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionReplyCommentApi.java
+4
-4
src/main/java/cn/meteor/beyondclouds/modules/search/api/SearchApi.java
+3
-3
src/main/java/cn/meteor/beyondclouds/modules/tag/api/TagApi.java
+9
-9
src/main/java/cn/meteor/beyondclouds/modules/topic/api/TopicApi.java
+15
-15
src/main/java/cn/meteor/beyondclouds/modules/user/api/UserApi.java
+13
-14
src/main/java/cn/meteor/beyondclouds/modules/user/dto/UserInfoWithStatisticsDTO.java
+23
-0
src/main/java/cn/meteor/beyondclouds/modules/user/service/IUserFollowService.java
+3
-2
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/UserFollowServiceImpl.java
+52
-3
src/main/java/cn/meteor/beyondclouds/modules/user/vo/UserStatisticsVO.java
+20
-0
src/main/java/cn/meteor/beyondclouds/util/PageUtils.java
+2
-2
No files found.
src/main/java/cn/meteor/beyondclouds/common/
vo/PageV
O.java
→
src/main/java/cn/meteor/beyondclouds/common/
dto/PageDT
O.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
common
.
v
o
;
package
cn
.
meteor
.
beyondclouds
.
common
.
dt
o
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
lombok.Data
;
...
...
@@ -11,7 +11,7 @@ import java.util.List;
* @author meteor
*/
@Data
public
class
Page
V
O
<
T
>
{
public
class
Page
DT
O
<
T
>
{
/**
* 总页数
...
...
@@ -33,17 +33,17 @@ public class PageVO<T> {
*/
private
List
<
T
>
dataList
;
public
Page
V
O
()
{
public
Page
DT
O
()
{
}
public
Page
V
O
(
IPage
<
T
>
page
)
{
public
Page
DT
O
(
IPage
<
T
>
page
)
{
setDataList
(
page
.
getRecords
());
setTotalPage
(
page
.
getPages
());
setTotalRecords
(
page
.
getTotal
());
setPageSize
(
page
.
getSize
());
}
public
Page
V
O
(
Page
<
T
>
page
)
{
public
Page
DT
O
(
Page
<
T
>
page
)
{
setDataList
(
page
.
getContent
());
setTotalPage
(
page
.
getTotalPages
());
setTotalRecords
(
page
.
getTotalElements
());
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -94,11 +94,11 @@ public class BlogApi {
@Anonymous
@ApiOperation
(
"博客列表"
)
@GetMapping
(
"/blogs"
)
public
Response
<
Page
V
O
<
Blog
>>
getBlogs
(
@Valid
PageForm
pageForm
,
public
Response
<
Page
DT
O
<
Blog
>>
getBlogs
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
IPage
<
Blog
>
blogPage
=
blogService
.
getBlogPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
categoryId
);
Page
VO
<
Blog
>
blogPageVO
=
new
PageV
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
V
O
);
Page
DTO
<
Blog
>
blogPageDTO
=
new
PageDT
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
DT
O
);
}
/**
...
...
@@ -109,10 +109,10 @@ public class BlogApi {
*/
@ApiOperation
(
"我的博客列表"
)
@GetMapping
(
"/my/blogs"
)
public
Response
<
Page
V
O
<
Blog
>>
getMyBlogs
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
Page
DT
O
<
Blog
>>
getMyBlogs
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
IPage
<
Blog
>
blogPage
=
blogService
.
getMyBlogPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
Blog
>
blogPageVO
=
new
PageV
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
V
O
);
Page
DTO
<
Blog
>
blogPageDTO
=
new
PageDT
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
DT
O
);
}
...
...
@@ -125,10 +125,10 @@ public class BlogApi {
@Anonymous
@ApiOperation
(
"他人博客列表"
)
@GetMapping
(
"/user/{userId}/blogs"
)
public
Response
<
Page
V
O
<
Blog
>>
getOtherBlogs
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
public
Response
<
Page
DT
O
<
Blog
>>
getOtherBlogs
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
IPage
<
Blog
>
blogPage
=
blogService
.
getUserBlogPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
Page
VO
<
Blog
>
blogPageVO
=
new
PageV
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
V
O
);
Page
DTO
<
Blog
>
blogPageDTO
=
new
PageDT
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
DT
O
);
}
@ApiOperation
(
"修改博客"
)
...
...
@@ -156,10 +156,10 @@ public class BlogApi {
@Anonymous
@ApiOperation
(
"热门博客"
)
@GetMapping
(
"/blog/hots"
)
public
Response
<
Page
V
O
<
Blog
>>
getHotBlogs
(
@Valid
PageForm
pageForm
)
{
public
Response
<
Page
DT
O
<
Blog
>>
getHotBlogs
(
@Valid
PageForm
pageForm
)
{
IPage
<
Blog
>
blogPage
=
blogService
.
getHotBlogPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
Page
VO
<
Blog
>
blogPageVO
=
new
PageV
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
V
O
);
Page
DTO
<
Blog
>
blogPageDTO
=
new
PageDT
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
DT
O
);
}
@Anonymous
...
...
@@ -171,8 +171,8 @@ public class BlogApi {
}
IPage
<
Blog
>
blogPage
=
blogService
.
getBlogPageByTagId
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
tagId
);
Page
VO
<
Blog
>
blogPageVO
=
new
PageV
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
V
O
);
Page
DTO
<
Blog
>
blogPageDTO
=
new
PageDT
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
DT
O
);
}
@Anonymous
...
...
@@ -183,8 +183,8 @@ public class BlogApi {
return
Response
.
fieldError
(
bindingResult
.
getFieldError
());
}
IPage
<
Blog
>
blogPage
=
blogService
.
getRelatedBlogPage
(
pageForm
.
getPage
()
,
pageForm
.
getSize
()
,
blogId
);
Page
VO
<
Blog
>
blogPageVO
=
new
PageV
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
V
O
);
Page
DTO
<
Blog
>
blogPageDTO
=
new
PageDT
O
<>(
blogPage
);
return
Response
.
success
(
blogPage
DT
O
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogCommentApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
blog
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -63,15 +63,15 @@ public class BlogCommentApi {
@Anonymous
@ApiOperation
(
"评论列表"
)
@GetMapping
(
"/blog/{blogId}/comments"
)
public
Response
<
Page
V
O
<
BlogComment
>>
getBlogCommentPage
(
@PathVariable
(
"blogId"
)
String
bLogId
,
public
Response
<
Page
DT
O
<
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
);
Page
VO
<
BlogComment
>
blogCommentPageVO
=
new
PageV
O
<>(
commentPage
);
return
Response
.
success
(
blogCommentPage
V
O
);
Page
DTO
<
BlogComment
>
blogCommentPageDTO
=
new
PageDT
O
<>(
commentPage
);
return
Response
.
success
(
blogCommentPage
DT
O
);
}
catch
(
BlogCommentServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/content/api/ContentApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
content
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.modules.content.dto.ContentDetailDTO
;
...
...
@@ -52,8 +52,8 @@ public class ContentApi {
try
{
IPage
<
Content
>
contentPage
=
contentService
.
getPageByChannelId
(
channelId
,
contentType
,
pageForm
.
getPage
(),
pageForm
.
getSize
());
Page
VO
<
Content
>
contentPageVO
=
new
PageV
O
<>(
contentPage
);
return
Response
.
success
(
contentPage
V
O
);
Page
DTO
<
Content
>
contentPageDTO
=
new
PageDT
O
<>(
contentPage
);
return
Response
.
success
(
contentPage
DT
O
);
}
catch
(
ContentServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/message/api/MessageApi.java
View file @
678ee9d2
...
...
@@ -2,7 +2,7 @@ package cn.meteor.beyondclouds.modules.message.api;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.core.authentication.Subject
;
...
...
@@ -60,8 +60,8 @@ public class MessageApi {
}
// 根据用户获取列表并返回
IPage
<
Message
>
messageIPage
=
messageService
.
getMessagePage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
Message
>
messagePageVO
=
new
PageV
O
<>(
messageIPage
);
return
Response
.
success
(
messagePage
V
O
);
Page
DTO
<
Message
>
messagePageDTO
=
new
PageDT
O
<>(
messageIPage
);
return
Response
.
success
(
messagePage
DT
O
);
}
@ApiOperation
(
"消息详情"
)
...
...
src/main/java/cn/meteor/beyondclouds/modules/post/api/PostApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -174,7 +174,7 @@ public class PostApi {
* @param postPage
* @return
*/
private
Page
V
O
<?
extends
PostVO
>
toPostVOPage
(
IPage
<
Post
>
postPage
,
Subject
subject
)
{
private
Page
DT
O
<?
extends
PostVO
>
toPostVOPage
(
IPage
<
Post
>
postPage
,
Subject
subject
)
{
List
<
PostVO
>
postVOList
;
if
(
null
!=
subject
&&
subject
.
isAuthenticated
())
{
String
currentUserId
=
(
String
)
subject
.
getId
();
...
...
@@ -205,9 +205,9 @@ public class PostApi {
}).
collect
(
Collectors
.
toList
());
}
Page
VO
<
PostVO
>
postPageVO
=
new
PageV
O
<>();
PageUtils
.
copyMeta
(
postPage
,
postPage
V
O
);
postPage
V
O
.
setDataList
(
postVOList
);
return
postPage
V
O
;
Page
DTO
<
PostVO
>
postPageDTO
=
new
PageDT
O
<>();
PageUtils
.
copyMeta
(
postPage
,
postPage
DT
O
);
postPage
DT
O
.
setDataList
(
postVOList
);
return
postPage
DT
O
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/post/api/PostCommentApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
post
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -70,13 +70,13 @@ public class PostCommentApi {
@Anonymous
@ApiOperation
(
"评论列表"
)
@GetMapping
(
"/post/{postId}/comments"
)
public
Response
<
Page
V
O
<
PostComment
>>
getPostCommentPage
(
@PathVariable
(
"postId"
)
String
postId
,
public
Response
<
Page
DT
O
<
PostComment
>>
getPostCommentPage
(
@PathVariable
(
"postId"
)
String
postId
,
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"parent_id"
,
required
=
false
)
Integer
parentId
)
{
try
{
IPage
<
PostComment
>
postCommentIPage
=
postCommentService
.
getCommentPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
postId
,
parentId
);
Page
VO
<
PostComment
>
postCommentPageVO
=
new
PageV
O
<>(
postCommentIPage
);
return
Response
.
success
(
postCommentPage
V
O
);
Page
DTO
<
PostComment
>
postCommentPageDTO
=
new
PageDT
O
<>(
postCommentIPage
);
return
Response
.
success
(
postCommentPage
DT
O
);
}
catch
(
PostCommentServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
project
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -149,11 +149,11 @@ public class ProjectApi {
@Anonymous
@ApiOperation
(
"项目列表"
)
@GetMapping
(
"/projects"
)
public
Response
<
Page
V
O
<
Project
>>
getProjects
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
public
Response
<
Page
DT
O
<
Project
>>
getProjects
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
// 获取列表并返回
IPage
<
Project
>
projectPage
=
projectService
.
getProjectPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
categoryId
);
Page
VO
<
Project
>
projectPageVO
=
new
PageV
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
V
O
);
Page
DTO
<
Project
>
projectPageDTO
=
new
PageDT
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
DT
O
);
}
/**
...
...
@@ -163,11 +163,11 @@ public class ProjectApi {
*/
@ApiOperation
(
"我的项目列表"
)
@GetMapping
(
"/my/projects"
)
public
Response
<
Page
V
O
<
Project
>>
getMyProjects
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
Page
DT
O
<
Project
>>
getMyProjects
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
// 根据用户获取列表并返回
IPage
<
Project
>
projectPage
=
projectService
.
getProjectPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
Project
>
projectPageVO
=
new
PageV
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
V
O
);
Page
DTO
<
Project
>
projectPageDTO
=
new
PageDT
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
DT
O
);
}
/**
...
...
@@ -178,22 +178,22 @@ public class ProjectApi {
@Anonymous
@ApiOperation
(
"他人项目列表"
)
@GetMapping
(
"/user/{userId}/projects"
)
public
Response
<
Page
V
O
<
Project
>>
getOthersProjects
(
@Valid
PageForm
pageForm
,
public
Response
<
Page
DT
O
<
Project
>>
getOthersProjects
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
// 根据用户获取列表并返回
IPage
<
Project
>
projectPage
=
projectService
.
getProjectPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
Page
VO
<
Project
>
projectPageVO
=
new
PageV
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
V
O
);
Page
DTO
<
Project
>
projectPageDTO
=
new
PageDT
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
DT
O
);
}
@Anonymous
@ApiOperation
(
"热门项目"
)
@GetMapping
(
"/project/hots"
)
public
Response
<
Page
V
O
<
Project
>>
getHotProjects
(
@Valid
PageForm
pageForm
)
{
public
Response
<
Page
DT
O
<
Project
>>
getHotProjects
(
@Valid
PageForm
pageForm
)
{
// 获取热门项目列表并返回
IPage
<
Project
>
projectPage
=
projectService
.
getHotProjectPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
Page
VO
<
Project
>
projectPageVO
=
new
PageV
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
V
O
);
Page
DTO
<
Project
>
projectPageDTO
=
new
PageDT
O
<>(
projectPage
);
return
Response
.
success
(
projectPage
DT
O
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectCommentApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
project
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -82,14 +82,14 @@ public class ProjectCommentApi {
@Anonymous
@ApiOperation
(
"评论列表"
)
@GetMapping
(
"/project/{projectId}/comments"
)
public
Response
<
Page
V
O
<
ProjectComment
>>
getProjectComments
(
@PathVariable
(
"projectId"
)
Integer
projectId
,
public
Response
<
Page
DT
O
<
ProjectComment
>>
getProjectComments
(
@PathVariable
(
"projectId"
)
Integer
projectId
,
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"parentId"
,
required
=
false
)
Integer
parentId
)
{
try
{
// 根据用户获取列表并返回
IPage
<
ProjectComment
>
commentPage
=
projectCommentService
.
getCommentPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
projectId
,
parentId
);
Page
VO
<
ProjectComment
>
projectPageVO
=
new
PageV
O
<>(
commentPage
);
return
Response
.
success
(
projectPage
V
O
);
Page
DTO
<
ProjectComment
>
projectPageDTO
=
new
PageDT
O
<>(
commentPage
);
return
Response
.
success
(
projectPage
DT
O
);
}
catch
(
ProjectCommentServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
question
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -177,11 +177,11 @@ public class QuestionApi {
@Anonymous
@ApiOperation
(
"问答列表"
)
@GetMapping
(
"/questions"
)
public
Response
<
Page
V
O
<
Question
>>
getQuestions
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
public
Response
<
Page
DT
O
<
Question
>>
getQuestions
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
//获取列表并返回
IPage
<
Question
>
questionPage
=
questionService
.
getQuestionPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
categoryId
);
Page
VO
<
Question
>
questionPageVO
=
new
PageV
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
V
O
);
Page
DTO
<
Question
>
questionPageDTO
=
new
PageDT
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
DT
O
);
}
/**
...
...
@@ -192,11 +192,11 @@ public class QuestionApi {
*/
@ApiOperation
(
"我创建的问答列表"
)
@GetMapping
(
"/my/questions"
)
public
Response
<
Page
V
O
<
Question
>>
getMyQuestions
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
Page
DT
O
<
Question
>>
getMyQuestions
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
//获取我的列表并返回
IPage
<
Question
>
myQuestionPage
=
questionService
.
getUserQuestionPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
Question
>
questionPageVO
=
new
PageV
O
<>(
myQuestionPage
);
return
Response
.
success
(
questionPage
V
O
);
Page
DTO
<
Question
>
questionPageDTO
=
new
PageDT
O
<>(
myQuestionPage
);
return
Response
.
success
(
questionPage
DT
O
);
}
/**
...
...
@@ -207,11 +207,11 @@ public class QuestionApi {
*/
@ApiOperation
(
"我参与的问答列表"
)
@GetMapping
(
"/my/question/participated"
)
public
Response
<
Page
V
O
<
Question
>>
getMyParticipateQuestions
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
Page
DT
O
<
Question
>>
getMyParticipateQuestions
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
//获取我的列表并返回
IPage
<
Question
>
questionPage
=
questionService
.
getUserParticipatePage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
Question
>
questionReplyPageVO
=
new
PageV
O
<>(
questionPage
);
return
Response
.
success
(
questionReplyPage
V
O
);
Page
DTO
<
Question
>
questionReplyPageDTO
=
new
PageDT
O
<>(
questionPage
);
return
Response
.
success
(
questionReplyPage
DT
O
);
}
/**
...
...
@@ -223,11 +223,11 @@ public class QuestionApi {
@Anonymous
@ApiOperation
(
"用户创建的问答列表"
)
@GetMapping
(
"/user/{userId}/questions"
)
public
Response
<
Page
V
O
<
Question
>>
getOthersQuestions
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
public
Response
<
Page
DT
O
<
Question
>>
getOthersQuestions
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
//获取别人的问答列表并返回
IPage
<
Question
>
questionPage
=
questionService
.
getUserQuestionPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
Page
VO
<
Question
>
questionPageVO
=
new
PageV
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
V
O
);
Page
DTO
<
Question
>
questionPageDTO
=
new
PageDT
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
DT
O
);
}
/**
...
...
@@ -239,30 +239,30 @@ public class QuestionApi {
@Anonymous
@ApiOperation
(
"用户参与的问答列表"
)
@GetMapping
(
"/user/{userId}/question/participated"
)
public
Response
<
Page
V
O
<
Question
>>
getUserParticipateQuestions
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
public
Response
<
Page
DT
O
<
Question
>>
getUserParticipateQuestions
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"userId"
)
String
userId
)
{
//获取用户参与的问答列表并返回
IPage
<
Question
>
userParticipateQuestion
=
questionService
.
getUserParticipatePage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
Page
VO
<
Question
>
questionReplyPageVO
=
new
PageV
O
<>(
userParticipateQuestion
);
return
Response
.
success
(
questionReplyPage
V
O
);
Page
DTO
<
Question
>
questionReplyPageDTO
=
new
PageDT
O
<>(
userParticipateQuestion
);
return
Response
.
success
(
questionReplyPage
DT
O
);
}
@Anonymous
@ApiOperation
(
"热门回答"
)
@GetMapping
(
"/question/hots"
)
public
Response
<
Page
V
O
<
Question
>>
getHotsQuestions
(
@Valid
PageForm
pageForm
)
{
public
Response
<
Page
DT
O
<
Question
>>
getHotsQuestions
(
@Valid
PageForm
pageForm
)
{
IPage
<
Question
>
questionPage
=
questionService
.
getHotsQuestionsPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
Page
VO
<
Question
>
questionPageVO
=
new
PageV
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
V
O
);
Page
DTO
<
Question
>
questionPageDTO
=
new
PageDT
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
DT
O
);
}
@Anonymous
@ApiOperation
(
"相关问答"
)
@GetMapping
(
"/question/{questionId}/recommends"
)
public
Response
<
Page
V
O
<
Question
>>
questionRecommends
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"questionId"
)
String
questionId
)
{
public
Response
<
Page
DT
O
<
Question
>>
questionRecommends
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"questionId"
)
String
questionId
)
{
try
{
IPage
<
Question
>
questionPage
=
questionService
.
questionRecommends
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
questionId
);
Page
VO
<
Question
>
questionPageVO
=
new
PageV
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
V
O
);
Page
DTO
<
Question
>
questionPageDTO
=
new
PageDT
O
<>(
questionPage
);
return
Response
.
success
(
questionPage
DT
O
);
}
catch
(
QuestionServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
@@ -272,11 +272,11 @@ public class QuestionApi {
@Anonymous
@ApiOperation
(
"得到标签下的问答列表"
)
@GetMapping
(
"/tag/{tagId}/questions"
)
public
Response
<
Page
V
O
<
Question
>>
getQuestionsByTagId
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"tagId"
)
String
tagId
)
{
public
Response
<
Page
DT
O
<
Question
>>
getQuestionsByTagId
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"tagId"
)
String
tagId
)
{
try
{
IPage
<
Question
>
page
=
questionService
.
getQuestionsByTagId
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
tagId
);
Page
VO
<
Question
>
pageVO
=
new
PageV
O
<>(
page
);
return
Response
.
success
(
page
V
O
);
Page
DTO
<
Question
>
pageDTO
=
new
PageDT
O
<>(
page
);
return
Response
.
success
(
page
DT
O
);
}
catch
(
QuestionTagServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionReplyApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
question
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -85,12 +85,12 @@ public class QuestionReplyApi {
@Anonymous
@ApiOperation
(
"问题的回复列表"
)
@GetMapping
(
"/question/{questionId}/replies"
)
public
Response
<
Page
V
O
<
QuestionReply
>>
getReplies
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"questionId"
)
String
questionId
)
{
public
Response
<
Page
DT
O
<
QuestionReply
>>
getReplies
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"questionId"
)
String
questionId
)
{
//获取问题的回复列表
try
{
IPage
<
QuestionReply
>
questionReplyPage
=
questionReplyService
.
getReplies
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
questionId
);
Page
VO
<
QuestionReply
>
questionReplyPageVO
=
new
PageV
O
<>(
questionReplyPage
);
return
Response
.
success
(
questionReplyPage
V
O
);
Page
DTO
<
QuestionReply
>
questionReplyPageDTO
=
new
PageDT
O
<>(
questionReplyPage
);
return
Response
.
success
(
questionReplyPage
DT
O
);
}
catch
(
QuestionReplyServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionReplyCommentApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
question
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -89,13 +89,13 @@ public class QuestionReplyCommentApi {
@Anonymous
@ApiOperation
(
"评论列表"
)
@GetMapping
(
"/question/reply/{replyId}/comments"
)
public
Response
<
Page
V
O
<
QuestionReplyComment
>>
getReplyComments
(
@PathVariable
(
"replyId"
)
String
replyId
,
public
Response
<
Page
DT
O
<
QuestionReplyComment
>>
getReplyComments
(
@PathVariable
(
"replyId"
)
String
replyId
,
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"parentId"
,
required
=
false
)
String
parentId
)
{
try
{
IPage
<
QuestionReplyComment
>
replyCommentPage
=
questionReplyCommentService
.
getReplyCommentPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
replyId
,
parentId
);
Page
VO
<
QuestionReplyComment
>
questionReplyCommentPageVO
=
new
PageV
O
<>(
replyCommentPage
);
return
Response
.
success
(
questionReplyCommentPage
V
O
);
Page
DTO
<
QuestionReplyComment
>
questionReplyCommentPageDTO
=
new
PageDT
O
<>(
replyCommentPage
);
return
Response
.
success
(
questionReplyCommentPage
DT
O
);
}
catch
(
QuestionReplyCommentServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
(
e
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/search/api/SearchApi.java
View file @
678ee9d2
...
...
@@ -2,7 +2,7 @@ package cn.meteor.beyondclouds.modules.search.api;
import
cn.meteor.beyondclouds.common.enums.ErrorCode
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.api.Response
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItem
;
...
...
@@ -45,8 +45,8 @@ public class SearchApi {
// spring的分页是从0开始的,对输入的页码减1后可以统一分页规则
pageForm
.
setPage
(
pageForm
.
getPage
()
-
1
);
Page
<
SearchItem
>
searchItemPage
=
searchService
.
searchPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
itemType
,
keywords
);
Page
VO
<
SearchItem
>
searchItemPageVO
=
new
PageV
O
<>(
searchItemPage
);
return
Response
.
success
(
searchItemPage
V
O
);
Page
DTO
<
SearchItem
>
searchItemPageDTO
=
new
PageDT
O
<>(
searchItemPage
);
return
Response
.
success
(
searchItemPage
DT
O
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/tag/api/TagApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
tag
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -65,29 +65,29 @@ public class TagApi {
}
IPage
<
Tag
>
tagPage
=
tagService
.
searchTags
(
keywords
,
pageForm
.
getPage
(),
pageForm
.
getSize
());
Page
VO
<
Tag
>
tagPageVO
=
new
PageV
O
<>(
tagPage
);
return
Response
.
success
(
tagPage
V
O
);
Page
DTO
<
Tag
>
tagPageDTO
=
new
PageDT
O
<>(
tagPage
);
return
Response
.
success
(
tagPage
DT
O
);
}
@ApiOperation
(
"我创建的标签列表"
)
@GetMapping
(
"/my/tag/created"
)
public
Response
<
Page
V
O
<
Tag
>>
getMyTags
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
Page
DT
O
<
Tag
>>
getMyTags
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
// 根据用户获取列表并返回
IPage
<
Tag
>
tag
=
tagService
.
getTagPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
Tag
>
tagPageVO
=
new
PageV
O
<>(
tag
);
return
Response
.
success
(
tagPage
V
O
);
Page
DTO
<
Tag
>
tagPageDTO
=
new
PageDT
O
<>(
tag
);
return
Response
.
success
(
tagPage
DT
O
);
}
@Anonymous
@ApiOperation
(
"热门标签"
)
@GetMapping
(
"/tag/hots"
)
public
Response
<
Page
V
O
<
Tag
>>
getHotTags
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
Page
DT
O
<
Tag
>>
getHotTags
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
IPage
<
Tag
>
tag
=
tagService
.
getHotPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
Page
VO
<
Tag
>
tagPageVO
=
new
PageV
O
<>(
tag
);
return
Response
.
success
(
tagPage
V
O
);
Page
DTO
<
Tag
>
tagPageDTO
=
new
PageDT
O
<>(
tag
);
return
Response
.
success
(
tagPage
DT
O
);
}
}
src/main/java/cn/meteor/beyondclouds/modules/topic/api/TopicApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
topic
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.api.Response
;
...
...
@@ -65,8 +65,8 @@ public class TopicApi {
int
pageNo
=
pageForm
.
getPage
();
int
pageSize
=
pageForm
.
getSize
();
IPage
<
Topic
>
topicPage
=
topicService
.
getTopicPage
(
pageNo
,
pageSize
);
Page
VO
<
Topic
>
topicPageVO
=
new
PageV
O
<>(
topicPage
);
return
Response
.
success
(
topicPage
V
O
);
Page
DTO
<
Topic
>
topicPageDTO
=
new
PageDT
O
<>(
topicPage
);
return
Response
.
success
(
topicPage
DT
O
);
}
@Anonymous
...
...
@@ -79,7 +79,7 @@ public class TopicApi {
}
IPage
<
Topic
>
topicPage
=
topicService
.
searchTopics
(
keywords
,
pageForm
.
getPage
(),
pageForm
.
getSize
());
return
Response
.
success
(
new
Page
V
O
<>(
topicPage
));
return
Response
.
success
(
new
Page
DT
O
<>(
topicPage
));
}
@Anonymous
...
...
@@ -126,8 +126,8 @@ public class TopicApi {
return
Response
.
fieldError
(
bindingResult
.
getFieldError
());
}
IPage
<
User
>
page
=
topicService
.
getTopicsFollower
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
topicId
);
Page
VO
<
User
>
userPageVO
=
new
PageV
O
<>(
page
);
return
Response
.
success
(
userPage
V
O
);
Page
DTO
<
User
>
userPageDTO
=
new
PageDT
O
<>(
page
);
return
Response
.
success
(
userPage
DT
O
);
}
...
...
@@ -151,11 +151,11 @@ public class TopicApi {
*/
@ApiOperation
(
"我的话题列表"
)
@GetMapping
(
"/my/topic/created"
)
public
Response
<
Page
V
O
<
Topic
>>
getMyTopics
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
public
Response
<
Page
DT
O
<
Topic
>>
getMyTopics
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
)
{
// 根据用户获取列表并返回
IPage
<
Topic
>
topicPage
=
topicService
.
getTopicPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
Topic
>
topicPageVO
=
new
PageV
O
<>(
topicPage
);
return
Response
.
success
(
topicPage
V
O
);
Page
DTO
<
Topic
>
topicPageDTO
=
new
PageDT
O
<>(
topicPage
);
return
Response
.
success
(
topicPage
DT
O
);
}
...
...
@@ -175,22 +175,22 @@ public class TopicApi {
@Anonymous
@ApiOperation
(
"热门话题"
)
@GetMapping
(
"/topic/hots"
)
public
Response
<
Page
V
O
<
Topic
>>
getHotTags
(
@Valid
PageForm
pageForm
)
{
public
Response
<
Page
DT
O
<
Topic
>>
getHotTags
(
@Valid
PageForm
pageForm
)
{
IPage
<
Topic
>
topic
=
topicService
.
getHotPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
Page
VO
<
Topic
>
topicPageVO
=
new
PageV
O
<>(
topic
);
return
Response
.
success
(
topicPage
V
O
);
Page
DTO
<
Topic
>
topicPageDTO
=
new
PageDT
O
<>(
topic
);
return
Response
.
success
(
topicPage
DT
O
);
}
@Anonymous
@ApiOperation
(
"查询话题下的所有动态"
)
@GetMapping
(
"/topic/{topicName}/posts"
)
public
Response
<
Page
V
O
<
Post
>>
getPostByTopicName
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"topicName"
)
String
topicName
)
{
public
Response
<
Page
DT
O
<
Post
>>
getPostByTopicName
(
@Valid
PageForm
pageForm
,
@PathVariable
(
"topicName"
)
String
topicName
)
{
try
{
IPage
<
Post
>
post
=
topicService
.
getPostByTopicName
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
topicName
);
Page
VO
<
Post
>
postPageVO
=
new
PageV
O
<>(
post
);
return
Response
.
success
(
postPage
V
O
);
Page
DTO
<
Post
>
postPageDTO
=
new
PageDT
O
<>(
post
);
return
Response
.
success
(
postPage
DT
O
);
}
catch
(
TopicServiceException
e
)
{
e
.
printStackTrace
();
return
Response
.
error
();
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/api/UserApi.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
user
.
api
;
import
cn.meteor.beyondclouds.common.form.PageForm
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
cn.meteor.beyondclouds.core.annotation.Anonymous
;
import
cn.meteor.beyondclouds.core.annotation.CurrentSubject
;
import
cn.meteor.beyondclouds.core.flow.CollectAccessInfo
;
...
...
@@ -10,6 +10,7 @@ import cn.meteor.beyondclouds.core.authentication.Subject;
import
cn.meteor.beyondclouds.core.flow.AccessInfo
;
import
cn.meteor.beyondclouds.core.flow.ParamType
;
import
cn.meteor.beyondclouds.modules.user.dto.UserInfoDTO
;
import
cn.meteor.beyondclouds.modules.user.dto.UserInfoWithStatisticsDTO
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
import
cn.meteor.beyondclouds.modules.user.entity.UserBlacklist
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
...
...
@@ -274,8 +275,8 @@ public class UserApi {
// 根据userId获取粉丝并返回
IPage
<
UserBlacklist
>
blacklistIPage
=
userBlacklistService
.
getMyBlackList
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
Page
VO
<
UserBlacklist
>
blacklistPageVO
=
new
PageV
O
<>(
blacklistIPage
);
return
Response
.
success
(
blacklistPage
V
O
);
Page
DTO
<
UserBlacklist
>
blacklistPageDTO
=
new
PageDT
O
<>(
blacklistIPage
);
return
Response
.
success
(
blacklistPage
DT
O
);
}
...
...
@@ -299,8 +300,8 @@ public class UserApi {
// 根据userId获取粉丝并返回
IPage
<
UserFollow
>
fansPage
=
userFollowService
.
getFansPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
(
String
)
subject
.
getId
());
Page
VO
<
UserFollow
>
fansPageVo
=
new
PageV
O
<>(
fansPage
);
return
Response
.
success
(
fansPage
Vo
);
Page
DTO
<
UserFollow
>
fansPageDTO
=
new
PageDT
O
<>(
fansPage
);
return
Response
.
success
(
fansPage
DTO
);
}
...
...
@@ -311,8 +312,8 @@ public class UserApi {
// 根据userId获取粉丝并返回
IPage
<
UserFollow
>
fansPage
=
userFollowService
.
getFansPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
Page
VO
<
UserFollow
>
fansPageVo
=
new
PageV
O
<>(
fansPage
);
return
Response
.
success
(
fansPage
Vo
);
Page
DTO
<
UserFollow
>
fansPageDTO
=
new
PageDT
O
<>(
fansPage
);
return
Response
.
success
(
fansPage
DTO
);
}
...
...
@@ -321,20 +322,18 @@ public class UserApi {
public
Response
myFollower
(
@Valid
PageForm
pageForm
,
@CurrentSubject
Subject
subject
){
// 根据userId获取关注列表并返回
IPage
<
UserFollow
>
followersPage
=
userFollowService
.
getFollowersPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
String
.
valueOf
(
subject
.
getId
()));
PageVO
<
UserFollow
>
followersPageVo
=
new
PageVO
<>(
followersPage
);
return
Response
.
success
(
followersPageVo
);
PageDTO
<
UserInfoWithStatisticsDTO
>
followedPage
=
userFollowService
.
getFollowedPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
String
.
valueOf
(
subject
.
getId
()));
return
Response
.
success
(
followedPage
);
}
@Anonymous
@ApiOperation
((
"获取他人关注"
))
@GetMapping
(
"/user/{userId}/follower"
)
public
Response
otherFollower
(
@Valid
PageForm
pageForm
,
@PathVariable
(
name
=
"userId"
)
String
userId
){
public
Response
<
PageDTO
<
UserInfoWithStatisticsDTO
>>
otherFollower
(
@Valid
PageForm
pageForm
,
@PathVariable
(
name
=
"userId"
)
String
userId
){
// 根据userId获取关注列表并返回
IPage
<
UserFollow
>
followersPage
=
userFollowService
.
getFollowersPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
PageVO
<
UserFollow
>
followersPageVo
=
new
PageVO
<>(
followersPage
);
return
Response
.
success
(
followersPageVo
);
PageDTO
followedPage
=
userFollowService
.
getFollowedPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
userId
);
return
Response
.
success
(
followedPage
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/dto/UserInfoWithStatisticsDTO.java
0 → 100644
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
user
.
dto
;
import
cn.meteor.beyondclouds.modules.user.entity.UserStatistics
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author meteor
*/
@Data
public
class
UserInfoWithStatisticsDTO
{
private
String
userId
;
private
String
userNick
;
private
String
userAvatar
;
private
UserStatistics
statistics
;
}
src/main/java/cn/meteor/beyondclouds/modules/user/service/IUserFollowService.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
user
.
service
;
import
cn.meteor.beyondclouds.common.dto.PageDTO
;
import
cn.meteor.beyondclouds.modules.user.dto.UserInfoWithStatisticsDTO
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
import
cn.meteor.beyondclouds.modules.user.exception.UserServiceException
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.io.Serializable
;
import
java.util.Set
;
...
...
@@ -49,7 +50,7 @@ public interface IUserFollowService extends IService<UserFollow> {
* @param userId
* @return
*/
IPage
<
UserFollow
>
getFollowers
Page
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
PageDTO
<
UserInfoWithStatisticsDTO
>
getFollowed
Page
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
);
/**
* 获取当前用户关注的所有用户的ID
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/UserFollowServiceImpl.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
user
.
service
.
impl
;
import
cn.meteor.beyondclouds.common.dto.PageDTO
;
import
cn.meteor.beyondclouds.common.helper.IRedisHelper
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.core.redis.RedisKey
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.user.dto.UserInfoWithStatisticsDTO
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
import
cn.meteor.beyondclouds.modules.user.entity.UserBlacklist
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
import
cn.meteor.beyondclouds.modules.user.entity.UserStatistics
;
import
cn.meteor.beyondclouds.modules.user.enums.UserErrorCode
;
import
cn.meteor.beyondclouds.modules.user.exception.UserServiceException
;
import
cn.meteor.beyondclouds.modules.user.mapper.UserFollowMapper
;
import
cn.meteor.beyondclouds.modules.user.service.IUserBlacklistService
;
import
cn.meteor.beyondclouds.modules.user.service.IUserFollowService
;
import
cn.meteor.beyondclouds.modules.user.service.IUserService
;
import
cn.meteor.beyondclouds.modules.user.service.IUserStatisticsService
;
import
cn.meteor.beyondclouds.util.PageUtils
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -22,7 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Set
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -36,6 +42,7 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
private
IUserBlacklistService
userBlacklistService
;
private
IRedisHelper
redisHelper
;
private
IMessageQueueService
messageQueueService
;
private
IUserStatisticsService
userStatisticsService
;
@Autowired
public
void
setRedisHelper
(
IRedisHelper
redisHelper
)
{
...
...
@@ -43,6 +50,11 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
}
@Autowired
public
void
setUserStatisticsService
(
IUserStatisticsService
userStatisticsService
)
{
this
.
userStatisticsService
=
userStatisticsService
;
}
@Autowired
public
UserFollowServiceImpl
(
IUserBlacklistService
userBlacklistService
)
{
this
.
userBlacklistService
=
userBlacklistService
;
}
...
...
@@ -182,12 +194,49 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
* @return
*/
@Override
public
IPage
<
UserFollow
>
getFollowersPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
public
PageDTO
<
UserInfoWithStatisticsDTO
>
getFollowedPage
(
Integer
pageNumber
,
Integer
pageSize
,
String
userId
)
{
// 1.获取所有的关注
IPage
<
UserFollow
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
QueryWrapper
<
UserFollow
>
userFollowQueryWrapper
=
new
QueryWrapper
<>();
userFollowQueryWrapper
.
eq
(
"follower_id"
,
userId
);
userFollowQueryWrapper
.
eq
(
"follow_status"
,
0
);
return
page
(
page
,
userFollowQueryWrapper
);
IPage
<
UserFollow
>
userFollowPage
=
page
(
page
,
userFollowQueryWrapper
);
List
<
UserFollow
>
userFollowList
=
userFollowPage
.
getRecords
();
// 2.查询关注的用户的统计信息并填充到userInfoWithStatisticsDTOList里面
List
<
UserInfoWithStatisticsDTO
>
userInfoWithStatisticsDTOList
;
if
(!
CollectionUtils
.
isEmpty
(
userFollowList
))
{
List
<
String
>
followedUserIds
=
userFollowList
.
stream
()
.
map
(
UserFollow:
:
getFollowedId
).
collect
(
Collectors
.
toList
());
List
<
UserStatistics
>
userStatisticsList
=
userStatisticsService
.
listByIds
(
followedUserIds
);
Map
<
String
,
UserStatistics
>
userStatisticsMap
=
userStatisticsList
.
stream
()
.
collect
(
Collectors
.
toMap
(
UserStatistics:
:
getUserId
,
userStatistics
->
userStatistics
));
userInfoWithStatisticsDTOList
=
userFollowList
.
stream
()
.
map
(
userFollow
->
{
UserInfoWithStatisticsDTO
userInfoWithStatisticsDTO
=
new
UserInfoWithStatisticsDTO
();
String
followedId
=
userFollow
.
getFollowedId
();
userInfoWithStatisticsDTO
.
setUserId
(
followedId
);
userInfoWithStatisticsDTO
.
setUserNick
(
userFollow
.
getFollowedNick
());
userInfoWithStatisticsDTO
.
setUserAvatar
(
userFollow
.
getFollowedAvatar
());
userInfoWithStatisticsDTO
.
setStatistics
(
userStatisticsMap
.
get
(
followedId
));
return
userInfoWithStatisticsDTO
;
}).
collect
(
Collectors
.
toList
());
}
else
{
userInfoWithStatisticsDTOList
=
List
.
of
();
}
// 3.转换分页并返回
PageDTO
<
UserInfoWithStatisticsDTO
>
pageDTO
=
new
PageDTO
<>();
PageUtils
.
copyMeta
(
userFollowPage
,
pageDTO
);
pageDTO
.
setDataList
(
userInfoWithStatisticsDTOList
);
return
pageDTO
;
}
@Override
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/vo/UserStatisticsVO.java
0 → 100644
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
user
.
vo
;
import
cn.meteor.beyondclouds.modules.user.entity.UserStatistics
;
import
lombok.Data
;
/**
* @author meteor
*/
@Data
public
class
UserStatisticsVO
{
private
String
userId
;
private
String
userNick
;
private
String
userAvatar
;
private
UserStatistics
statistics
;
}
src/main/java/cn/meteor/beyondclouds/util/PageUtils.java
View file @
678ee9d2
package
cn
.
meteor
.
beyondclouds
.
util
;
import
cn.meteor.beyondclouds.common.
vo.PageV
O
;
import
cn.meteor.beyondclouds.common.
dto.PageDT
O
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -19,7 +19,7 @@ public class PageUtils {
return
page
;
}
public
static
void
copyMeta
(
IPage
<?>
src
,
Page
V
O
<?>
dest
)
{
public
static
void
copyMeta
(
IPage
<?>
src
,
Page
DT
O
<?>
dest
)
{
dest
.
setTotalPage
(
src
.
getPages
());
dest
.
setPageSize
(
src
.
getSize
());
dest
.
setTotalRecords
(
src
.
getTotal
());
...
...
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