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
7ac83f24
Commit
7ac83f24
authored
Feb 12, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复关注后不能立马刷新关注状态的bug
parent
74d3255a
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
95 additions
and
13 deletions
+95
-13
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
+3
-2
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
+2
-1
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
+5
-1
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectApi.java
+2
-2
src/main/java/cn/meteor/beyondclouds/modules/project/service/IProjectService.java
+1
-1
src/main/java/cn/meteor/beyondclouds/modules/project/service/impl/ProjectServiceImpl.java
+4
-1
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionApi.java
+2
-2
src/main/java/cn/meteor/beyondclouds/modules/question/service/IQuestionService.java
+2
-1
src/main/java/cn/meteor/beyondclouds/modules/question/service/impl/QuestionServiceImpl.java
+4
-1
src/main/java/cn/meteor/beyondclouds/modules/user/api/UserApi.java
+1
-0
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserFollowedListener.java
+64
-0
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserLoginAndLogoutListener.java
+5
-1
No files found.
src/main/java/cn/meteor/beyondclouds/modules/blog/api/BlogApi.java
View file @
7ac83f24
...
...
@@ -94,8 +94,9 @@ public class BlogApi {
@Anonymous
@ApiOperation
(
"博客列表"
)
@GetMapping
(
"/blogs"
)
public
Response
<
PageVO
<
Blog
>>
getBlogs
(
@Valid
PageForm
pageForm
)
{
IPage
<
Blog
>
blogPage
=
blogService
.
getBlogPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
public
Response
<
PageVO
<
Blog
>>
getBlogs
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
IPage
<
Blog
>
blogPage
=
blogService
.
getBlogPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
(),
categoryId
);
PageVO
<
Blog
>
blogPageVO
=
new
PageVO
<>(
blogPage
);
return
Response
.
success
(
blogPageVO
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/service/IBlogService.java
View file @
7ac83f24
...
...
@@ -50,9 +50,10 @@ public interface IBlogService extends IService<Blog> {
* 博客列表
* @param pageNumber
* @param pageSize
* @param categoryId
* @return
*/
IPage
<
Blog
>
getBlogPage
(
Integer
pageNumber
,
Integer
pageSize
);
IPage
<
Blog
>
getBlogPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
categoryId
);
/**
* 个人博客列表
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/service/impl/BlogServiceImpl.java
View file @
7ac83f24
...
...
@@ -322,14 +322,18 @@ public class BlogServiceImpl extends ServiceImpl<BlogMapper, Blog> implements IB
*
* @param pageNumber
* @param pageSize
* @param categoryId
* @return
*/
@Override
public
IPage
<
Blog
>
getBlogPage
(
Integer
pageNumber
,
Integer
pageSize
)
{
public
IPage
<
Blog
>
getBlogPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
categoryId
)
{
IPage
<
Blog
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
QueryWrapper
<
Blog
>
blogQueryWrapper
=
new
QueryWrapper
<>();
blogQueryWrapper
.
eq
(
"view_privileges"
,
1
);
blogQueryWrapper
.
orderByDesc
(
"b.create_time"
);
if
(
null
!=
categoryId
)
{
blogQueryWrapper
.
eq
(
"category_id"
,
categoryId
);
}
IPage
<
Blog
>
blogPage
=
blogMapper
.
selectPageWithTags
(
page
,
blogQueryWrapper
);
return
blogPage
;
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/project/api/ProjectApi.java
View file @
7ac83f24
...
...
@@ -149,9 +149,9 @@ public class ProjectApi {
@Anonymous
@ApiOperation
(
"项目列表"
)
@GetMapping
(
"/projects"
)
public
Response
<
PageVO
<
Project
>>
getProjects
(
@Valid
PageForm
pageForm
)
{
public
Response
<
PageVO
<
Project
>>
getProjects
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
// 获取列表并返回
IPage
<
Project
>
projectPage
=
projectService
.
getProjectPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
IPage
<
Project
>
projectPage
=
projectService
.
getProjectPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
()
,
categoryId
);
PageVO
<
Project
>
projectPageVO
=
new
PageVO
<>(
projectPage
);
return
Response
.
success
(
projectPageVO
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/project/service/IProjectService.java
View file @
7ac83f24
...
...
@@ -46,7 +46,7 @@ public interface IProjectService extends IService<Project> {
* @param pageNumber
* @param pageSize
*/
IPage
<
Project
>
getProjectPage
(
Integer
pageNumber
,
Integer
pageSize
);
IPage
<
Project
>
getProjectPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
categoryId
);
/**
* 更新项目
...
...
src/main/java/cn/meteor/beyondclouds/modules/project/service/impl/ProjectServiceImpl.java
View file @
7ac83f24
...
...
@@ -204,9 +204,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
}
@Override
public
IPage
<
Project
>
getProjectPage
(
Integer
pageNumber
,
Integer
pageSize
)
{
public
IPage
<
Project
>
getProjectPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
categoryId
)
{
QueryWrapper
<
Project
>
projectQueryWrapper
=
new
QueryWrapper
<>();
projectQueryWrapper
.
orderByDesc
(
"create_time"
);
if
(
null
!=
categoryId
)
{
projectQueryWrapper
.
eq
(
"category_id"
,
categoryId
);
}
IPage
<
Project
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
return
page
(
page
,
projectQueryWrapper
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/api/QuestionApi.java
View file @
7ac83f24
...
...
@@ -177,9 +177,9 @@ public class QuestionApi {
@Anonymous
@ApiOperation
(
"问答列表"
)
@GetMapping
(
"/questions"
)
public
Response
<
PageVO
<
Question
>>
getQuestions
(
@Valid
PageForm
pageForm
)
{
public
Response
<
PageVO
<
Question
>>
getQuestions
(
@Valid
PageForm
pageForm
,
@RequestParam
(
value
=
"categoryId"
,
required
=
false
)
Integer
categoryId
)
{
//获取列表并返回
IPage
<
Question
>
questionPage
=
questionService
.
getQuestionPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
());
IPage
<
Question
>
questionPage
=
questionService
.
getQuestionPage
(
pageForm
.
getPage
(),
pageForm
.
getSize
()
,
categoryId
);
PageVO
<
Question
>
questionPageVO
=
new
PageVO
<>(
questionPage
);
return
Response
.
success
(
questionPageVO
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/service/IQuestionService.java
View file @
7ac83f24
...
...
@@ -66,9 +66,10 @@ public interface IQuestionService extends IService<Question> {
* 获取问答列表
* @param pageNumber 页数
* @param pageSize 页面大小
* @param categoryId
* @return 分页对象
*/
IPage
<
Question
>
getQuestionPage
(
Integer
pageNumber
,
Integer
pageSize
);
IPage
<
Question
>
getQuestionPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
categoryId
);
/**
* 获取用户的问答列表
...
...
src/main/java/cn/meteor/beyondclouds/modules/question/service/impl/QuestionServiceImpl.java
View file @
7ac83f24
...
...
@@ -336,10 +336,13 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
@Override
public
IPage
<
Question
>
getQuestionPage
(
Integer
pageNumber
,
Integer
pageSize
)
{
public
IPage
<
Question
>
getQuestionPage
(
Integer
pageNumber
,
Integer
pageSize
,
Integer
categoryId
)
{
IPage
<
Question
>
page
=
new
Page
<>(
pageNumber
,
pageSize
);
QueryWrapper
<
Question
>
questionQueryWrapper
=
new
QueryWrapper
<>();
questionQueryWrapper
.
orderByDesc
(
"q.create_time"
);
if
(
null
!=
categoryId
)
{
questionQueryWrapper
.
eq
(
"q.category_id"
,
categoryId
);
}
return
questionMapper
.
selectPageWithTags
(
page
,
questionQueryWrapper
);
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/api/UserApi.java
View file @
7ac83f24
...
...
@@ -236,6 +236,7 @@ public class UserApi {
try
{
userFollowService
.
follow
(
userId
,
(
String
)
subject
.
getId
());
return
Response
.
success
();
}
catch
(
UserServiceException
e
)
{
e
.
printStackTrace
();
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserFollowedListener.java
0 → 100644
View file @
7ac83f24
package
cn
.
meteor
.
beyondclouds
.
modules
.
user
.
listener
;
import
cn.meteor.beyondclouds.common.helper.IRedisHelper
;
import
cn.meteor.beyondclouds.core.listener.DataItemChangeListener
;
import
cn.meteor.beyondclouds.core.listener.UserActionListener
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.core.queue.message.UserActionMessage
;
import
cn.meteor.beyondclouds.core.redis.RedisKey
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
import
cn.meteor.beyondclouds.modules.user.service.IUserFollowService
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.Assert
;
import
org.springframework.util.CollectionUtils
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* 用户登录注销监听器
* @author meteor
*/
@Slf4j
@Component
public
class
UserFollowedListener
implements
DataItemChangeListener
{
private
IUserFollowService
userFollowService
;
private
IRedisHelper
redisHelper
;
@Autowired
public
UserFollowedListener
(
IUserFollowService
userFollowService
,
IRedisHelper
redisHelper
)
{
this
.
userFollowService
=
userFollowService
;
this
.
redisHelper
=
redisHelper
;
}
@Override
public
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
{
String
operatorId
=
dataItemChangeMessage
.
getOperatorId
();
String
itemId
=
(
String
)
dataItemChangeMessage
.
getItemId
();
UserFollow
userFollow
=
userFollowService
.
getById
(
itemId
);
String
followerId
=
userFollow
.
getFollowerId
();
Assert
.
isTrue
(
followerId
.
equals
(
operatorId
),
"数据不合法"
);
String
followedId
=
userFollow
.
getFollowedId
();
// 用户关注
if
(
dataItemChangeMessage
.
getItemType
().
equals
(
DataItemType
.
USER_FOLLOW
))
{
// 更新关注者的关注列表
redisHelper
.
setAdd
(
RedisKey
.
USER_FOLLOWED
(
operatorId
),
followedId
);
// 检查被关注者,如果被关注者登录过,则将当前发起关注的用户的ID存入他的粉丝列表里面
if
(
redisHelper
.
hasKey
(
RedisKey
.
USER_FANS
(
followedId
)))
{
redisHelper
.
setAdd
(
RedisKey
.
USER_FANS
(
followedId
),
operatorId
);
}
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserLoginAndLogoutListener.java
View file @
7ac83f24
...
...
@@ -61,10 +61,14 @@ public class UserLoginAndLogoutListener implements UserActionListener {
if
(!
CollectionUtils
.
isEmpty
(
followedUserIds
))
{
redisHelper
.
setAdd
(
RedisKey
.
USER_FOLLOWED
(
userId
),
followedUserIds
.
toArray
(
new
String
[
0
]));
}
else
{
redisHelper
.
setAdd
(
RedisKey
.
USER_FOLLOWED
(
userId
),
""
);
}
if
(!
CollectionUtils
.
isEmpty
(
fansIds
))
{
redisHelper
.
setAdd
(
RedisKey
.
USER_FANS
(
userId
),
fansIds
.
toArray
(
new
String
[
0
]));
redisHelper
.
setAdd
(
RedisKey
.
USER_FANS
(
userId
),
"fansIds.toArray(new String[0])"
);
}
else
{
redisHelper
.
setAdd
(
RedisKey
.
USER_FANS
(
userId
),
""
);
}
log
.
debug
(
"已经将用户{}的关注列表和粉丝列表存入redis."
,
userId
);
}
...
...
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