Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
brandkbs2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shenjunjie
brandkbs2
Commits
ce5b16a5
Commit
ce5b16a5
authored
Oct 28, 2022
by
shenjunjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release' into 'master'
Release See merge request
!69
parents
e7ea5088
88f7a151
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
27 additions
and
17 deletions
+27
-17
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDataDaoImpl.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/service/impl/EventDataServiceImpl.java
+2
-1
src/main/java/com/zhiwei/brandkbs2/service/impl/ProjectWarnServiceImpl.java
+8
-8
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
+15
-6
No files found.
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
View file @
ce5b16a5
...
@@ -218,7 +218,7 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
...
@@ -218,7 +218,7 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
Calendar
date
=
Calendar
.
getInstance
();
Calendar
date
=
Calendar
.
getInstance
();
int
year
=
date
.
get
(
Calendar
.
YEAR
);
int
year
=
date
.
get
(
Calendar
.
YEAR
);
for
(
int
i
=
0
;
i
<
years
;
i
++)
{
for
(
int
i
=
0
;
i
<
years
;
i
++)
{
res
.
add
(
COLLECTION_PREFIX
+
(
year
-
i
));
res
.
add
(
COLLECTION_PREFIX
+
"_"
+
(
year
-
i
));
}
}
return
res
;
return
res
;
}
}
...
...
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDataDaoImpl.java
View file @
ce5b16a5
...
@@ -22,7 +22,7 @@ import java.util.concurrent.CompletableFuture;
...
@@ -22,7 +22,7 @@ import java.util.concurrent.CompletableFuture;
@Component
(
"eventDataDao"
)
@Component
(
"eventDataDao"
)
public
class
EventDataDaoImpl
extends
BaseMongoDaoImpl
<
EventData
>
implements
EventDataDao
{
public
class
EventDataDaoImpl
extends
BaseMongoDaoImpl
<
EventData
>
implements
EventDataDao
{
protected
static
final
String
COLLECTION_PREFIX
=
"brandkbs_event_data
_
"
;
protected
static
final
String
COLLECTION_PREFIX
=
"brandkbs_event_data"
;
private
static
final
String
TIME_PATTERN
=
"yyyy"
;
private
static
final
String
TIME_PATTERN
=
"yyyy"
;
public
EventDataDaoImpl
()
{
public
EventDataDaoImpl
()
{
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/EventDataServiceImpl.java
View file @
ce5b16a5
...
@@ -93,6 +93,7 @@ public class EventDataServiceImpl implements EventDataService {
...
@@ -93,6 +93,7 @@ public class EventDataServiceImpl implements EventDataService {
private
void
updateEventData
(
Event
event
,
List
<
EventData
>
eventDataList
)
{
private
void
updateEventData
(
Event
event
,
List
<
EventData
>
eventDataList
)
{
// 根据配置筛选目标数据
// 根据配置筛选目标数据
eventDataList
=
filterEventData
(
event
,
eventDataList
);
eventDataList
=
filterEventData
(
event
,
eventDataList
);
log
.
info
(
"analysisEvent-eventId:{},关键词筛选后剩余:{}条"
,
event
.
getId
(),
eventDataList
.
size
());
// 删除历史数据
// 删除历史数据
deleteEventRelated
(
event
);
deleteEventRelated
(
event
);
// 数据入库
// 数据入库
...
@@ -107,7 +108,7 @@ public class EventDataServiceImpl implements EventDataService {
...
@@ -107,7 +108,7 @@ public class EventDataServiceImpl implements EventDataService {
String
keyword
=
event
.
getKeyword
();
String
keyword
=
event
.
getKeyword
();
for
(
EventData
data
:
eventDataList
)
{
for
(
EventData
data
:
eventDataList
)
{
// 关键词筛选
// 关键词筛选
if
(
Tools
.
isContains
(
Arrays
.
asList
(
keyword
.
split
(
keyword
.
contains
(
","
)
?
","
:
"\\|"
))
,
(
data
.
getTitle
()
+
data
.
getContent
())))
{
if
(
Tools
.
isContains
(
keyword
,
(
data
.
getTitle
()
+
data
.
getContent
())))
{
hitList
.
add
(
data
);
hitList
.
add
(
data
);
}
}
}
}
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/ProjectWarnServiceImpl.java
View file @
ce5b16a5
...
@@ -38,7 +38,7 @@ public class ProjectWarnServiceImpl implements ProjectWarnService {
...
@@ -38,7 +38,7 @@ public class ProjectWarnServiceImpl implements ProjectWarnService {
warnCriteriaAdd
(
res
,
"contends"
,
nameList
,
idList
);
warnCriteriaAdd
(
res
,
"contends"
,
nameList
,
idList
);
warnCriteriaAdd
(
res
,
"keyword"
,
null
);
warnCriteriaAdd
(
res
,
"keyword"
,
null
);
warnCriteriaAdd
(
res
,
"duplicate"
,
Arrays
.
asList
(
"去重"
,
"不去重"
),
Arrays
.
asList
(
true
,
false
));
warnCriteriaAdd
(
res
,
"duplicate"
,
Arrays
.
asList
(
"去重"
,
"不去重"
),
Arrays
.
asList
(
true
,
false
));
warnCriteriaAdd
(
res
,
"pushInterval"
,
Arrays
.
asList
(
"10"
,
"30min"
,
"60min"
),
Arrays
.
asList
(
10
*
ONE_MINUTE
,
30
*
ONE_MINUTE
,
60
*
ONE_MINUTE
));
warnCriteriaAdd
(
res
,
"pushInterval"
,
Arrays
.
asList
(
"10
min
"
,
"30min"
,
"60min"
),
Arrays
.
asList
(
10
*
ONE_MINUTE
,
30
*
ONE_MINUTE
,
60
*
ONE_MINUTE
));
break
;
break
;
case
"渠道参与"
:
case
"渠道参与"
:
warnCriteriaAdd
(
res
,
"friendlyChannel"
,
Arrays
.
asList
(
"友好渠道"
,
"敏感渠道"
,
"自定义渠道"
),
Arrays
.
asList
(
true
,
false
,
null
));
warnCriteriaAdd
(
res
,
"friendlyChannel"
,
Arrays
.
asList
(
"友好渠道"
,
"敏感渠道"
,
"自定义渠道"
),
Arrays
.
asList
(
true
,
false
,
null
));
...
@@ -54,31 +54,31 @@ public class ProjectWarnServiceImpl implements ProjectWarnService {
...
@@ -54,31 +54,31 @@ public class ProjectWarnServiceImpl implements ProjectWarnService {
warnCriteriaAdd
(
res
,
"primary"
,
Arrays
.
asList
(
"原创"
,
"转发"
),
Arrays
.
asList
(
false
,
true
),
"说明:仅对微博平台数据生效"
);
warnCriteriaAdd
(
res
,
"primary"
,
Arrays
.
asList
(
"原创"
,
"转发"
),
Arrays
.
asList
(
false
,
true
),
"说明:仅对微博平台数据生效"
);
warnCriteriaAddSimple
(
res
,
"markerTags"
,
Arrays
.
asList
(
"正面"
,
"中性"
,
"负面"
));
warnCriteriaAddSimple
(
res
,
"markerTags"
,
Arrays
.
asList
(
"正面"
,
"中性"
,
"负面"
));
warnCriteriaAdd
(
res
,
"duplicate"
,
Arrays
.
asList
(
"去重"
,
"不去重"
),
Arrays
.
asList
(
true
,
false
));
warnCriteriaAdd
(
res
,
"duplicate"
,
Arrays
.
asList
(
"去重"
,
"不去重"
),
Arrays
.
asList
(
true
,
false
));
warnCriteriaAdd
(
res
,
"pushInterval"
,
Arrays
.
asList
(
"
实时"
,
"30min"
,
"60min"
,
"180min"
),
Arrays
.
asList
(
null
,
30
*
ONE_MINUTE
,
60
*
ONE_MINUTE
,
18
0
*
ONE_MINUTE
));
warnCriteriaAdd
(
res
,
"pushInterval"
,
Arrays
.
asList
(
"
10min"
,
"30min"
,
"60min"
),
Arrays
.
asList
(
10
*
ONE_MINUTE
,
30
*
ONE_MINUTE
,
6
0
*
ONE_MINUTE
));
break
;
break
;
case
"热点事件"
:
case
"热点事件"
:
warnCriteriaAddSimple
(
res
,
"
wo
nEvent"
,
Arrays
.
asList
(
"正面"
,
"中性"
,
"负面"
));
warnCriteriaAddSimple
(
res
,
"
ow
nEvent"
,
Arrays
.
asList
(
"正面"
,
"中性"
,
"负面"
));
List
<
JSONObject
>
brands2
=
projectService
.
getBrands
(
projectId
,
false
);
List
<
JSONObject
>
brands2
=
projectService
.
getBrands
(
projectId
,
false
);
List
<
String
>
nameList2
=
brands2
.
stream
().
map
(
json
->
json
.
getString
(
"brandName"
)).
collect
(
Collectors
.
toList
());
List
<
String
>
nameList2
=
brands2
.
stream
().
map
(
json
->
json
.
getString
(
"brandName"
)).
collect
(
Collectors
.
toList
());
List
<
String
>
idList2
=
brands2
.
stream
().
map
(
json
->
json
.
getString
(
"contendId"
)).
collect
(
Collectors
.
toList
());
List
<
String
>
idList2
=
brands2
.
stream
().
map
(
json
->
json
.
getString
(
"contendId"
)).
collect
(
Collectors
.
toList
());
warnCriteriaAdd
(
res
,
"contendsEvent"
,
nameList2
,
idList2
);
warnCriteriaAdd
(
res
,
"contendsEvent"
,
nameList2
,
idList2
);
warnCriteriaAddSimple
(
res
,
"zhiWeiEvent"
,
Arrays
.
asList
(
"社会"
,
"互联网"
,
"政务"
,
"财经"
,
"企业"
,
"娱乐"
,
"灾难"
,
"违法犯罪"
,
"国际"
,
"体育"
,
"谣言"
),
"说明:知微事见支持选择事件的领域"
);
warnCriteriaAddSimple
(
res
,
"zhiWeiEvent"
,
Arrays
.
asList
(
"社会"
,
"互联网"
,
"政务"
,
"财经"
,
"企业"
,
"娱乐"
,
"灾难"
,
"违法犯罪"
,
"国际"
,
"体育"
,
"谣言"
),
"说明:知微事见支持选择事件的领域"
);
warnCriteriaAdd
(
res
,
"eventTop"
,
Arrays
.
asList
(
"TOP5"
,
"TOP10"
),
Arrays
.
asList
(
5
,
10
),
"说明:按影响力选取;若事件数不足,以实际为准"
);
warnCriteriaAdd
(
res
,
"eventTop"
,
Arrays
.
asList
(
"TOP5"
,
"TOP10"
),
Arrays
.
asList
(
5
,
10
),
"说明:按影响力选取;若事件数不足,以实际为准"
);
warnCriteriaAdd
(
res
,
"timeCycles"
,
Arrays
.
asList
(
"周一"
,
"周二"
,
"周三"
,
"周四"
,
"周五"
,
"周六"
,
"周日"
),
Arrays
.
asList
(
1
,
2
,
3
,
4
,
5
,
6
,
7
),
"说明:系统推送时间为08
:00"
);
warnCriteriaAdd
(
res
,
"timeCycles"
,
Arrays
.
asList
(
"周一"
,
"周二"
,
"周三"
,
"周四"
,
"周五"
,
"周六"
,
"周日"
),
Arrays
.
asList
(
2
,
3
,
4
,
5
,
6
,
7
,
1
),
"说明:系统推送时间为08"
+
"
:00"
);
break
;
break
;
case
"上榜热搜"
:
case
"上榜热搜"
:
warnCriteriaAddSimple
(
res
,
"warnKeyword"
,
null
);
warnCriteriaAddSimple
(
res
,
"warnKeyword"
,
null
);
warnCriteriaAddSimple
(
res
,
"filterKeyword"
,
null
);
warnCriteriaAddSimple
(
res
,
"filterKeyword"
,
null
);
warnCriteriaAddSimple
(
res
,
"listType"
,
Arrays
.
asList
(
"微博热搜"
,
"微博话题"
,
"微博预热"
,
"头条热搜"
,
"抖音热搜"
,
"知乎热搜"
,
"B站热搜"
,
"快手热榜"
));
warnCriteriaAddSimple
(
res
,
"listType"
,
Arrays
.
asList
(
"微博热搜"
,
"微博话题"
,
"微博预热"
,
"头条热搜"
,
"抖音热搜"
,
"知乎热搜"
,
"B站热搜"
,
"快手热榜"
));
List
<
Map
<
String
,
Object
>>
top
Lis
t
=
new
ArrayList
<>();
List
<
Map
<
String
,
Object
>>
top
NewHeigh
t
=
new
ArrayList
<>();
for
(
int
i
:
Arrays
.
asList
(
3
,
5
,
10
,
20
,
50
))
{
for
(
int
i
:
Arrays
.
asList
(
3
,
5
,
10
,
20
,
50
))
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"name"
,
"前"
+
i
);
map
.
put
(
"name"
,
"前"
+
i
);
map
.
put
(
"id"
,
i
);
map
.
put
(
"id"
,
i
);
top
Lis
t
.
add
(
map
);
top
NewHeigh
t
.
add
(
map
);
}
}
warnCriteriaAddSimple
(
res
,
"warnType"
,
Arrays
.
asList
(
"首次上榜"
,
"排名新高"
,
"掉榜和再次上榜"
,
"导语(仅支持微博平台)"
)
);
res
.
put
(
"topNewHeight"
,
topNewHeight
);
res
.
put
(
"topList"
,
topList
);
warnCriteriaAdd
(
res
,
"warnType"
,
Arrays
.
asList
(
"首次上榜"
,
"排名新高"
,
"掉榜和再次上榜"
,
"导语(仅支持微博平台)"
),
Arrays
.
asList
(
"firstTop"
,
"newHeight"
,
"topOnceAgain"
,
"introduction"
)
);
warnCriteriaAdd
(
res
,
"pushInterval"
,
Collections
.
singletonList
(
"5min"
),
Collections
.
singletonList
(
5
*
ONE_MINUTE
));
warnCriteriaAdd
(
res
,
"pushInterval"
,
Collections
.
singletonList
(
"5min"
),
Collections
.
singletonList
(
5
*
ONE_MINUTE
));
break
;
break
;
case
"案例上新"
:
case
"案例上新"
:
...
...
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
View file @
ce5b16a5
...
@@ -851,6 +851,10 @@ public class Tools {
...
@@ -851,6 +851,10 @@ public class Tools {
return
dayList
;
return
dayList
;
}
}
public
static
boolean
isContains
(
String
keyword
,
String
content
)
{
return
isContains
(
Arrays
.
asList
(
keyword
.
split
(
"\\|"
)),
content
);
}
/**
/**
* 是否包含关键字
* 是否包含关键字
*
*
...
@@ -859,20 +863,25 @@ public class Tools {
...
@@ -859,20 +863,25 @@ public class Tools {
* @return 是否包含关键字
* @return 是否包含关键字
*/
*/
public
static
boolean
isContains
(
List
<
String
>
keywords
,
String
content
)
{
public
static
boolean
isContains
(
List
<
String
>
keywords
,
String
content
)
{
boolean
contains
=
true
;
if
(
null
==
keywords
||
keywords
.
isEmpty
())
{
if
(
null
!=
keywords
)
{
return
false
;
}
content
=
content
.
toLowerCase
();
content
=
content
.
toLowerCase
();
// 按空格分割必须全部命中
// 有一组命中即可
for
(
String
keyword
:
keywords
)
{
for
(
String
keyword
:
keywords
)
{
boolean
contains
=
true
;
for
(
String
word
:
keyword
.
split
(
" "
))
{
for
(
String
word
:
keyword
.
split
(
" "
))
{
if
(!
content
.
contains
(
word
.
toLowerCase
()))
{
if
(!
content
.
contains
(
word
.
toLowerCase
()))
{
//一个不命中,直接返回false
//一个不命中,跳转至下一组
return
false
;
contains
=
false
;
break
;
}
}
}
}
if
(
contains
)
{
return
true
;
}
}
}
}
return
contains
;
return
false
;
}
}
public
static
JSONObject
getBrandkbsHitMap
(
Map
<
String
,
Object
>
esMap
,
String
hitKey
)
{
public
static
JSONObject
getBrandkbsHitMap
(
Map
<
String
,
Object
>
esMap
,
String
hitKey
)
{
...
...
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