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
fb93d201
Commit
fb93d201
authored
Feb 11, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
搜索更新
parent
c81aca95
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
100 additions
and
19 deletions
+100
-19
src/main/java/cn/meteor/beyondclouds/core/queue/message/DataItemType.java
+6
-0
src/main/java/cn/meteor/beyondclouds/modules/search/entity/ProjectExtra.java
+4
-0
src/main/java/cn/meteor/beyondclouds/modules/search/entity/QuestionExtra.java
+4
-0
src/main/java/cn/meteor/beyondclouds/modules/search/entity/SearchItem.java
+4
-1
src/main/java/cn/meteor/beyondclouds/modules/search/entity/UserExtra.java
+33
-0
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
+20
-9
src/main/java/cn/meteor/beyondclouds/modules/user/api/UserApi.java
+2
-2
src/main/java/cn/meteor/beyondclouds/modules/user/dto/UserInfoDTO.java
+6
-0
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserStatisticsListener.java
+16
-4
src/main/java/cn/meteor/beyondclouds/modules/user/service/IUserService.java
+2
-1
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/UserServiceImpl.java
+3
-2
No files found.
src/main/java/cn/meteor/beyondclouds/core/queue/message/DataItemType.java
View file @
fb93d201
...
@@ -6,6 +6,7 @@ import cn.meteor.beyondclouds.modules.project.entity.Project;
...
@@ -6,6 +6,7 @@ import cn.meteor.beyondclouds.modules.project.entity.Project;
import
cn.meteor.beyondclouds.modules.question.entity.Question
;
import
cn.meteor.beyondclouds.modules.question.entity.Question
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
import
cn.meteor.beyondclouds.modules.user.entity.UserStatistics
;
import
lombok.Getter
;
import
lombok.Getter
;
/**
/**
...
@@ -20,6 +21,11 @@ public enum DataItemType {
...
@@ -20,6 +21,11 @@ public enum DataItemType {
USER
(
User
.
class
),
USER
(
User
.
class
),
/**
/**
* 用户统计信息
*/
USER_STATISTICS
(
UserStatistics
.
class
),
/**
* 博客
* 博客
*/
*/
BLOG
(
Blog
.
class
),
BLOG
(
Blog
.
class
),
...
...
src/main/java/cn/meteor/beyondclouds/modules/search/entity/ProjectExtra.java
0 → 100644
View file @
fb93d201
package
cn
.
meteor
.
beyondclouds
.
modules
.
search
.
entity
;
public
class
ProjectExtra
{
}
src/main/java/cn/meteor/beyondclouds/modules/search/entity/QuestionExtra.java
0 → 100644
View file @
fb93d201
package
cn
.
meteor
.
beyondclouds
.
modules
.
search
.
entity
;
public
class
QuestionExtra
{
}
src/main/java/cn/meteor/beyondclouds/modules/search/entity/SearchItem.java
View file @
fb93d201
...
@@ -19,7 +19,7 @@ import java.util.Date;
...
@@ -19,7 +19,7 @@ import java.util.Date;
@Data
@Data
@NoArgsConstructor
@NoArgsConstructor
@Document
(
indexName
=
"search_items"
)
@Document
(
indexName
=
"search_items"
)
public
class
SearchItem
{
public
class
SearchItem
<
T
>
{
/**
/**
* 快捷构造函数
* 快捷构造函数
...
@@ -84,7 +84,10 @@ public class SearchItem {
...
@@ -84,7 +84,10 @@ public class SearchItem {
@Field
(
index
=
false
,
type
=
FieldType
.
Date
)
@Field
(
index
=
false
,
type
=
FieldType
.
Date
)
private
Date
updateTime
;
private
Date
updateTime
;
private
T
extra
;
public
static
SearchItem
of
(
BlogDetailDTO
blogDetail
)
{
public
static
SearchItem
of
(
BlogDetailDTO
blogDetail
)
{
return
null
;
return
null
;
}
}
}
}
src/main/java/cn/meteor/beyondclouds/modules/search/entity/UserExtra.java
0 → 100644
View file @
fb93d201
package
cn
.
meteor
.
beyondclouds
.
modules
.
search
.
entity
;
import
lombok.Data
;
import
org.springframework.data.elasticsearch.annotations.Field
;
import
org.springframework.data.elasticsearch.annotations.FieldType
;
@Data
public
class
UserExtra
{
private
static
final
long
serialVersionUID
=
1L
;
@Field
(
index
=
false
,
type
=
FieldType
.
Long
)
private
Integer
followedNum
;
@Field
(
index
=
false
,
type
=
FieldType
.
Long
)
private
Integer
fansNum
;
@Field
(
index
=
false
,
type
=
FieldType
.
Long
)
private
Integer
blogNum
;
@Field
(
index
=
false
,
type
=
FieldType
.
Long
)
private
Integer
projectNum
;
@Field
(
index
=
false
,
type
=
FieldType
.
Long
)
private
Integer
postNum
;
@Field
(
index
=
false
,
type
=
FieldType
.
Long
)
private
Integer
questionNum
;
@Field
(
index
=
false
,
type
=
FieldType
.
Long
)
private
Integer
visitedNum
;
}
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
View file @
fb93d201
...
@@ -17,16 +17,21 @@ import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
...
@@ -17,16 +17,21 @@ import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItem
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItem
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItemId
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItemId
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.modules.search.entity.UserExtra
;
import
cn.meteor.beyondclouds.modules.search.repository.ISearchRepository
;
import
cn.meteor.beyondclouds.modules.search.repository.ISearchRepository
;
import
cn.meteor.beyondclouds.modules.search.service.ISearchService
;
import
cn.meteor.beyondclouds.modules.search.service.ISearchService
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicService
;
import
cn.meteor.beyondclouds.modules.topic.service.ITopicService
;
import
cn.meteor.beyondclouds.modules.user.dto.UserInfoDTO
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
import
cn.meteor.beyondclouds.modules.user.entity.User
;
import
cn.meteor.beyondclouds.modules.user.entity.UserStatistics
;
import
cn.meteor.beyondclouds.modules.user.exception.UserServiceException
;
import
cn.meteor.beyondclouds.modules.user.service.IUserService
;
import
cn.meteor.beyondclouds.modules.user.service.IUserService
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.elasticsearch.index.query.DisMaxQueryBuilder
;
import
org.elasticsearch.index.query.DisMaxQueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilder
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.elasticsearch.index.query.QueryBuilders
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
...
@@ -186,6 +191,7 @@ public class SearchServiceImpl implements ISearchService {
...
@@ -186,6 +191,7 @@ public class SearchServiceImpl implements ISearchService {
searchItem
=
buildSearchItemFromProject
(
itemId
);
searchItem
=
buildSearchItemFromProject
(
itemId
);
break
;
break
;
case
USER:
case
USER:
case
USER_STATISTICS:
searchItem
=
buildSearchItemFromUser
(
itemId
);
searchItem
=
buildSearchItemFromUser
(
itemId
);
break
;
break
;
case
QUESTION:
case
QUESTION:
...
@@ -216,15 +222,20 @@ public class SearchServiceImpl implements ISearchService {
...
@@ -216,15 +222,20 @@ public class SearchServiceImpl implements ISearchService {
return
null
;
return
null
;
}
}
private
SearchItem
buildSearchItemFromUser
(
String
userId
)
{
private
SearchItem
buildSearchItemFromUser
(
String
userId
)
throws
UserServiceException
{
User
user
=
userService
.
getById
(
userId
);
UserInfoDTO
userInfoDTO
=
userService
.
getUserInfo
(
userId
,
true
);
if
(
null
!=
user
)
{
if
(
null
!=
userInfoDTO
)
{
SearchItem
searchItem
=
new
SearchItem
(
DataItemType
.
USER
,
userId
);
SearchItem
<
UserExtra
>
searchItem
=
new
SearchItem
(
DataItemType
.
USER
,
userId
);
searchItem
.
setTitle
(
user
.
getNickName
());
searchItem
.
setTitle
(
userInfoDTO
.
getNickName
());
searchItem
.
setCover
(
user
.
getUserAvatar
());
searchItem
.
setCover
(
userInfoDTO
.
getUserAvatar
());
searchItem
.
setDescription
(
user
.
getSignature
());
searchItem
.
setDescription
(
userInfoDTO
.
getSignature
());
searchItem
.
setCreateTime
(
user
.
getCreateTime
());
searchItem
.
setCreateTime
(
userInfoDTO
.
getCreateTime
());
searchItem
.
setUpdateTime
(
user
.
getUpdateTime
());
searchItem
.
setUpdateTime
(
userInfoDTO
.
getUpdateTime
());
UserExtra
userExtra
=
new
UserExtra
();
BeanUtils
.
copyProperties
(
userInfoDTO
.
getStatistics
(),
userExtra
);
searchItem
.
setExtra
(
userExtra
);
return
searchItem
;
return
searchItem
;
}
}
return
null
;
return
null
;
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/api/UserApi.java
View file @
fb93d201
...
@@ -174,7 +174,7 @@ public class UserApi {
...
@@ -174,7 +174,7 @@ public class UserApi {
// 获取用户信息
// 获取用户信息
try
{
try
{
UserInfoDTO
userInfoDTO
=
userService
.
getUserInfo
((
String
)
subject
.
getId
());
UserInfoDTO
userInfoDTO
=
userService
.
getUserInfo
((
String
)
subject
.
getId
()
,
true
);
// 返回结果
// 返回结果
return
Response
.
success
(
userInfoDTO
);
return
Response
.
success
(
userInfoDTO
);
}
catch
(
UserServiceException
e
)
{
}
catch
(
UserServiceException
e
)
{
...
@@ -190,7 +190,7 @@ public class UserApi {
...
@@ -190,7 +190,7 @@ public class UserApi {
// 获取用户信息
// 获取用户信息
try
{
try
{
UserInfoDTO
userInfoDTO
=
userService
.
getUserInfo
(
userId
);
UserInfoDTO
userInfoDTO
=
userService
.
getUserInfo
(
userId
,
false
);
// 去除敏感信息
// 去除敏感信息
userInfoDTO
.
setEmail
(
null
);
userInfoDTO
.
setEmail
(
null
);
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/dto/UserInfoDTO.java
View file @
fb93d201
...
@@ -4,6 +4,8 @@ import cn.meteor.beyondclouds.modules.user.entity.UserStatistics;
...
@@ -4,6 +4,8 @@ import cn.meteor.beyondclouds.modules.user.entity.UserStatistics;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.Date
;
/**
/**
* @author meteor
* @author meteor
*/
*/
...
@@ -36,5 +38,9 @@ public class UserInfoDTO {
...
@@ -36,5 +38,9 @@ public class UserInfoDTO {
@ApiModelProperty
(
value
=
"QQ号"
)
@ApiModelProperty
(
value
=
"QQ号"
)
private
String
qqNumber
;
private
String
qqNumber
;
private
Date
createTime
;
private
Date
updateTime
;
private
UserStatistics
statistics
;
private
UserStatistics
statistics
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserStatisticsListener.java
View file @
fb93d201
...
@@ -3,14 +3,11 @@ package cn.meteor.beyondclouds.modules.user.listener;
...
@@ -3,14 +3,11 @@ package cn.meteor.beyondclouds.modules.user.listener;
import
cn.meteor.beyondclouds.core.listener.DataItemChangeListener
;
import
cn.meteor.beyondclouds.core.listener.DataItemChangeListener
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.modules.blog.entity.Blog
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogService
;
import
cn.meteor.beyondclouds.modules.blog.service.IBlogService
;
import
cn.meteor.beyondclouds.modules.post.entity.Post
;
import
cn.meteor.beyondclouds.modules.post.service.IPostService
;
import
cn.meteor.beyondclouds.modules.post.service.IPostService
;
import
cn.meteor.beyondclouds.modules.project.entity.Project
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectService
;
import
cn.meteor.beyondclouds.modules.project.service.IProjectService
;
import
cn.meteor.beyondclouds.modules.question.entity.Question
;
import
cn.meteor.beyondclouds.modules.question.service.IQuestionService
;
import
cn.meteor.beyondclouds.modules.question.service.IQuestionService
;
import
cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
import
cn.meteor.beyondclouds.modules.user.entity.UserFollow
;
import
cn.meteor.beyondclouds.modules.user.entity.UserStatistics
;
import
cn.meteor.beyondclouds.modules.user.entity.UserStatistics
;
import
cn.meteor.beyondclouds.modules.user.service.IUserFollowService
;
import
cn.meteor.beyondclouds.modules.user.service.IUserFollowService
;
...
@@ -31,12 +28,19 @@ public class UserStatisticsListener implements DataItemChangeListener {
...
@@ -31,12 +28,19 @@ public class UserStatisticsListener implements DataItemChangeListener {
private
IUserFollowService
userFollowService
;
private
IUserFollowService
userFollowService
;
private
IMessageQueueService
messageQueueService
;
@Autowired
@Autowired
public
UserStatisticsListener
(
IUserStatisticsService
userStatisticsService
,
IUserFollowService
userFollowService
,
IBlogService
blogService
,
IProjectService
projectService
,
IPostService
postService
,
IQuestionService
questionService
)
{
public
UserStatisticsListener
(
IUserStatisticsService
userStatisticsService
,
IUserFollowService
userFollowService
,
IBlogService
blogService
,
IProjectService
projectService
,
IPostService
postService
,
IQuestionService
questionService
)
{
this
.
userStatisticsService
=
userStatisticsService
;
this
.
userStatisticsService
=
userStatisticsService
;
this
.
userFollowService
=
userFollowService
;
this
.
userFollowService
=
userFollowService
;
}
}
@Autowired
public
void
setMessageQueueService
(
IMessageQueueService
messageQueueService
)
{
this
.
messageQueueService
=
messageQueueService
;
}
@Override
@Override
public
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
{
public
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
{
DataItemType
itemType
=
dataItemChangeMessage
.
getItemType
();
DataItemType
itemType
=
dataItemChangeMessage
.
getItemType
();
...
@@ -75,6 +79,10 @@ public class UserStatisticsListener implements DataItemChangeListener {
...
@@ -75,6 +79,10 @@ public class UserStatisticsListener implements DataItemChangeListener {
// 新增发问答的用户的问答发布量
// 新增发问答的用户的问答发布量
increaseUserStatisticValue
(
operatorId
,
"question_num"
);
increaseUserStatisticValue
(
operatorId
,
"question_num"
);
}
}
// 修改完用户统计信息后发送用户统计信息修改的通知
messageQueueService
.
sendDataItemChangeMessage
(
DataItemChangeMessage
.
updateMessage
(
DataItemType
.
USER_STATISTICS
,
itemId
,
(
String
)
itemId
));
}
}
@Override
@Override
...
@@ -115,6 +123,10 @@ public class UserStatisticsListener implements DataItemChangeListener {
...
@@ -115,6 +123,10 @@ public class UserStatisticsListener implements DataItemChangeListener {
// 减少发问答的用户的问答发布量
// 减少发问答的用户的问答发布量
decreaseUserStatisticValue
(
operatorId
,
"question_num"
);
decreaseUserStatisticValue
(
operatorId
,
"question_num"
);
}
}
// 修改完用户统计信息后发送用户统计信息修改的通知
messageQueueService
.
sendDataItemChangeMessage
(
DataItemChangeMessage
.
updateMessage
(
DataItemType
.
USER_STATISTICS
,
itemId
,
(
String
)
itemId
));
}
}
/**
/**
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/service/IUserService.java
View file @
fb93d201
...
@@ -91,7 +91,8 @@ public interface IUserService extends IService<User> {
...
@@ -91,7 +91,8 @@ public interface IUserService extends IService<User> {
/**
/**
* 获取用户信息
* 获取用户信息
* @param userId
* @param userId
* @param selfView
* @return
* @return
*/
*/
UserInfoDTO
getUserInfo
(
String
userId
)
throws
UserServiceException
;
UserInfoDTO
getUserInfo
(
String
userId
,
boolean
selfView
)
throws
UserServiceException
;
}
}
src/main/java/cn/meteor/beyondclouds/modules/user/service/impl/UserServiceImpl.java
View file @
fb93d201
...
@@ -395,13 +395,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
...
@@ -395,13 +395,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
}
}
@Override
@Override
public
UserInfoDTO
getUserInfo
(
String
userId
)
throws
UserServiceException
{
public
UserInfoDTO
getUserInfo
(
String
userId
,
boolean
selfView
)
throws
UserServiceException
{
User
user
=
getById
(
userId
);
User
user
=
getById
(
userId
);
if
(
null
==
user
)
{
if
(
null
==
user
)
{
throw
new
UserServiceException
(
UserErrorCode
.
USER_NOT_EXISTS
);
throw
new
UserServiceException
(
UserErrorCode
.
USER_NOT_EXISTS
);
}
}
UserStatistics
userStatistics
=
userStatisticsService
.
getById
(
userId
);
UserStatistics
userStatistics
=
getStatistics
(
userId
,
selfView
);
UserInfoDTO
userInfoDTO
=
new
UserInfoDTO
();
UserInfoDTO
userInfoDTO
=
new
UserInfoDTO
();
BeanUtils
.
copyProperties
(
user
,
userInfoDTO
);
BeanUtils
.
copyProperties
(
user
,
userInfoDTO
);
...
...
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