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
73f5e7d2
Commit
73f5e7d2
authored
Feb 13, 2020
by
段启岩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
博客浏览量完成
parent
d6b5734c
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
47 additions
and
19 deletions
+47
-19
src/main/java/cn/meteor/beyondclouds/core/listener/DataItemChangeListener.java
+3
-3
src/main/java/cn/meteor/beyondclouds/core/queue/consumer/DataItemChangeConsumer.java
+7
-0
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/xml/BlogMapper.xml
+1
-1
src/main/java/cn/meteor/beyondclouds/modules/search/listener/SearchItemItemChangeListener.java
+3
-3
src/main/java/cn/meteor/beyondclouds/modules/search/service/ISearchService.java
+7
-2
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
+25
-5
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserStatisticsListener.java
+1
-1
src/test/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImplTest.java
+0
-4
No files found.
src/main/java/cn/meteor/beyondclouds/core/listener/DataItemChangeListener.java
View file @
73f5e7d2
...
...
@@ -14,7 +14,7 @@ public interface DataItemChangeListener {
* 有新数据添加到数据库
* @param dataItemChangeMessage
*/
default
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
{
default
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
throws
Exception
{
}
...
...
@@ -22,7 +22,7 @@ public interface DataItemChangeListener {
* 有数据从数据库删除
* @param dataItemChangeMessage
*/
default
void
onDataItemDelete
(
DataItemChangeMessage
dataItemChangeMessage
)
{
default
void
onDataItemDelete
(
DataItemChangeMessage
dataItemChangeMessage
)
throws
Exception
{
}
...
...
@@ -30,7 +30,7 @@ public interface DataItemChangeListener {
* 数据库里面的数据更新
* @param dataItemChangeMessage
*/
default
void
onDataItemUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
{
default
void
onDataItemUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
throws
Exception
{
}
...
...
src/main/java/cn/meteor/beyondclouds/core/queue/consumer/DataItemChangeConsumer.java
View file @
73f5e7d2
...
...
@@ -42,6 +42,9 @@ public class DataItemChangeConsumer implements TopicConsumer, ApplicationContext
// 调用每个监听器对应的消息处理函数
DataItemChangeType
changeType
=
dataItemChangeMessage
.
getChangeType
();
listeners
.
forEach
(
listener
->
{
// try-catch,保证每个listener互不影响
try
{
switch
(
changeType
)
{
case
ADD:
listener
.
onDataItemAdd
(
dataItemChangeMessage
);
...
...
@@ -59,6 +62,10 @@ public class DataItemChangeConsumer implements TopicConsumer, ApplicationContext
listener
.
onUserAvatarUpdate
(
dataItemChangeMessage
);
break
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
e
.
getMessage
());
}
});
...
...
src/main/java/cn/meteor/beyondclouds/modules/blog/mapper/xml/BlogMapper.xml
View file @
73f5e7d2
...
...
@@ -67,7 +67,7 @@
</select>
<select
id=
"selectAllViewCount"
resultType=
"java.lang.Long"
>
select count(view_num)
select count(view_num
ber
)
from blog
where user_id = #{userId}
</select>
...
...
src/main/java/cn/meteor/beyondclouds/modules/search/listener/SearchItemItemChangeListener.java
View file @
73f5e7d2
...
...
@@ -22,17 +22,17 @@ public class SearchItemItemChangeListener implements DataItemChangeListener {
}
@Override
public
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
{
public
void
onDataItemAdd
(
DataItemChangeMessage
dataItemChangeMessage
)
throws
Exception
{
searchService
.
saveSearchItem
(
dataItemChangeMessage
.
getItemType
(),
String
.
valueOf
(
dataItemChangeMessage
.
getItemId
()));
}
@Override
public
void
onDataItemUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
{
public
void
onDataItemUpdate
(
DataItemChangeMessage
dataItemChangeMessage
)
throws
Exception
{
searchService
.
updateSearchItem
(
dataItemChangeMessage
.
getItemType
(),
String
.
valueOf
(
dataItemChangeMessage
.
getItemId
()));
}
@Override
public
void
onDataItemDelete
(
DataItemChangeMessage
dataItemChangeMessage
)
{
public
void
onDataItemDelete
(
DataItemChangeMessage
dataItemChangeMessage
)
throws
Exception
{
searchService
.
deleteSearchItem
(
dataItemChangeMessage
.
getItemType
(),
String
.
valueOf
(
dataItemChangeMessage
.
getItemId
()));
}
}
src/main/java/cn/meteor/beyondclouds/modules/search/service/ISearchService.java
View file @
73f5e7d2
package
cn
.
meteor
.
beyondclouds
.
modules
.
search
.
service
;
import
cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException
;
import
cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException
;
import
cn.meteor.beyondclouds.modules.question.exception.QuestionServiceException
;
import
cn.meteor.beyondclouds.modules.question.exception.QuestionTagServiceException
;
import
cn.meteor.beyondclouds.modules.search.entity.SearchItem
;
import
cn.meteor.beyondclouds.core.queue.message.DataItemType
;
import
cn.meteor.beyondclouds.modules.user.exception.UserServiceException
;
import
org.springframework.data.domain.Page
;
import
java.util.Optional
;
...
...
@@ -17,7 +22,7 @@ public interface ISearchService {
* @param dataItemType
* @param itemId
*/
void
saveSearchItem
(
DataItemType
dataItemType
,
String
itemId
);
void
saveSearchItem
(
DataItemType
dataItemType
,
String
itemId
)
throws
BlogServiceException
,
QuestionTagServiceException
,
QuestionServiceException
,
UserServiceException
,
ProjectServiceException
,
Exception
;
/**
* 删除搜索条目
...
...
@@ -31,7 +36,7 @@ public interface ISearchService {
* @param dataItemType
* @param itemId
*/
void
updateSearchItem
(
DataItemType
dataItemType
,
String
itemId
);
void
updateSearchItem
(
DataItemType
dataItemType
,
String
itemId
)
throws
BlogServiceException
,
QuestionTagServiceException
,
QuestionServiceException
,
UserServiceException
,
ProjectServiceException
,
Exception
;
/**
* 查找搜索条目
...
...
src/main/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImpl.java
View file @
73f5e7d2
...
...
@@ -78,7 +78,7 @@ public class SearchServiceImpl implements ISearchService {
}
@Override
public
void
saveSearchItem
(
DataItemType
itemType
,
String
itemId
)
{
public
void
saveSearchItem
(
DataItemType
itemType
,
String
itemId
)
throws
Exception
{
SearchItem
searchItem
=
getSearchItemInDb
(
itemType
,
itemId
);
if
(
null
!=
searchItem
)
{
searchRepository
.
save
(
searchItem
);
...
...
@@ -93,7 +93,7 @@ public class SearchServiceImpl implements ISearchService {
}
@Override
public
void
updateSearchItem
(
DataItemType
itemType
,
String
itemId
)
{
public
void
updateSearchItem
(
DataItemType
itemType
,
String
itemId
)
throws
Exception
{
SearchItem
searchItem
=
getSearchItemInDb
(
itemType
,
itemId
);
searchRepository
.
save
(
searchItem
);
log
.
debug
(
"elasticsearch-update:{}"
,
searchItem
);
...
...
@@ -167,7 +167,11 @@ public class SearchServiceImpl implements ISearchService {
List
<
User
>
userList
=
userPage
.
getRecords
();
if
(!
CollectionUtils
.
isEmpty
(
userList
))
{
userList
.
forEach
(
user
->
{
try
{
saveSearchItem
(
DataItemType
.
USER
,
user
.
getUserId
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
}
});
current
++;
}
else
{
...
...
@@ -183,7 +187,11 @@ public class SearchServiceImpl implements ISearchService {
List
<
Project
>
projectList
=
projectPage
.
getRecords
();
if
(!
CollectionUtils
.
isEmpty
(
projectList
))
{
projectList
.
forEach
(
project
->
{
try
{
saveSearchItem
(
DataItemType
.
PROJECT
,
String
.
valueOf
(
project
.
getProjectId
()));
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
}
});
current
++;
}
else
{
...
...
@@ -199,7 +207,11 @@ public class SearchServiceImpl implements ISearchService {
List
<
Question
>
questionList
=
questionPage
.
getRecords
();
if
(!
CollectionUtils
.
isEmpty
(
questionList
))
{
questionList
.
forEach
(
question
->
{
try
{
saveSearchItem
(
DataItemType
.
QUESTION
,
question
.
getQuestionId
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
}
});
current
++;
}
else
{
...
...
@@ -215,7 +227,11 @@ public class SearchServiceImpl implements ISearchService {
List
<
Blog
>
questionList
=
blogPage
.
getRecords
();
if
(!
CollectionUtils
.
isEmpty
(
questionList
))
{
questionList
.
forEach
(
blog
->
{
try
{
saveSearchItem
(
DataItemType
.
BLOG
,
blog
.
getBlogId
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
}
});
current
++;
}
else
{
...
...
@@ -231,7 +247,11 @@ public class SearchServiceImpl implements ISearchService {
List
<
Topic
>
topicList
=
topicPage
.
getRecords
();
if
(!
CollectionUtils
.
isEmpty
(
topicList
))
{
topicList
.
forEach
(
topic
->
{
try
{
saveSearchItem
(
DataItemType
.
TOPIC
,
topic
.
getTopicId
());
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
());
}
});
current
++;
}
else
{
...
...
@@ -240,7 +260,7 @@ public class SearchServiceImpl implements ISearchService {
}
}
private
SearchItem
getSearchItemInDb
(
DataItemType
itemType
,
String
itemId
)
{
private
SearchItem
getSearchItemInDb
(
DataItemType
itemType
,
String
itemId
)
throws
BlogServiceException
,
QuestionTagServiceException
,
QuestionServiceException
,
UserServiceException
,
ProjectServiceException
{
SearchItem
searchItem
=
null
;
try
{
switch
(
itemType
)
{
...
...
@@ -261,11 +281,11 @@ public class SearchServiceImpl implements ISearchService {
searchItem
=
buildSearchItemFromTopic
(
itemId
);
break
;
default
:
return
null
;
throw
new
IllegalArgumentException
(
"该类型不支持搜索:"
+
itemType
.
name
()
+
":"
+
itemId
)
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"搜索条目存储失败:{}"
,
e
.
getMessage
());
throw
e
;
}
return
searchItem
;
}
...
...
src/main/java/cn/meteor/beyondclouds/modules/user/listener/UserStatisticsListener.java
View file @
73f5e7d2
...
...
@@ -139,7 +139,7 @@ public class UserStatisticsListener implements DataItemChangeListener {
if
(
itemType
.
equals
(
DataItemType
.
BLOG_VIEW_NUM
))
{
// 更新博客浏览量
updateUserStatisticValue
((
String
)
item
Id
,
"blog_view_num"
,
blogService
.
allBlogViewCount
(
operatorId
));
updateUserStatisticValue
((
String
)
operator
Id
,
"blog_view_num"
,
blogService
.
allBlogViewCount
(
operatorId
));
}
if
(
itemType
.
equals
(
DataItemType
.
PROJECT
))
{
...
...
src/test/java/cn/meteor/beyondclouds/modules/search/service/impl/SearchServiceImplTest.java
View file @
73f5e7d2
...
...
@@ -24,10 +24,6 @@ public class SearchServiceImplTest {
@Autowired
private
ISearchRepository
searchRepository
;
@Test
public
void
saveSearchItem
()
{
searchService
.
saveSearchItem
(
DataItemType
.
BLOG
,
"123"
);
}
@Test
public
void
getSearchItem
()
{
...
...
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