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
42eacde3
Commit
42eacde3
authored
Aug 04, 2022
by
shenjunjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2022/8/4 9:33
parent
42bd4ecb
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
41 additions
and
20 deletions
+41
-20
src/main/java/com/zhiwei/brandkbs2/controller/app/AppChannelController.java
+2
-3
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
+1
-0
src/main/java/com/zhiwei/brandkbs2/pojo/Event.java
+4
-0
src/main/java/com/zhiwei/brandkbs2/pojo/EventData.java
+5
-0
src/main/java/com/zhiwei/brandkbs2/service/ChannelService.java
+2
-5
src/main/java/com/zhiwei/brandkbs2/service/impl/ChannelServiceImpl.java
+27
-12
No files found.
src/main/java/com/zhiwei/brandkbs2/controller/app/AppChannelController.java
View file @
42eacde3
...
...
@@ -15,7 +15,6 @@ import org.springframework.web.bind.annotation.*;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.Set
;
/**
* @ClassName: AppChannelController
...
...
@@ -132,7 +131,7 @@ public class AppChannelController extends BaseController {
@GetMapping
(
"/spreadingTend"
)
public
ResponseResult
getSpreadingTend
(
@RequestParam
(
"channelId"
)
String
channelId
,
@RequestParam
(
value
=
"type"
,
defaultValue
=
"文章"
)
String
type
,
@RequestParam
(
value
=
"contends"
,
required
=
false
)
S
et
<
String
>
contends
,
@RequestParam
(
value
=
"contends"
,
required
=
false
)
S
tring
contends
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
Long
endTime
)
{
return
ResponseResult
.
success
(
channelService
.
getSpreadingTend
(
channelId
,
type
,
contends
,
startTime
,
endTime
));
...
...
@@ -147,7 +146,7 @@ public class AppChannelController extends BaseController {
})
@GetMapping
(
"/spreadingTend/summary"
)
public
ResponseResult
getSpreadingTendSummary
(
@RequestParam
(
"channelId"
)
String
channelId
,
@RequestParam
(
value
=
"contends"
,
required
=
false
)
S
et
<
String
>
contends
,
@RequestParam
(
value
=
"contends"
,
required
=
false
)
S
tring
contends
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
Long
endTime
)
{
return
ResponseResult
.
success
(
channelService
.
getSpreadingTendSummary
(
channelId
,
contends
,
startTime
,
endTime
));
...
...
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
View file @
42eacde3
...
...
@@ -69,6 +69,7 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
private
Map
<
Long
,
List
<
Event
>>
getEventTimePattern
(
ChannelIndex
channelIndex
,
Long
startTime
,
Long
endTime
,
int
nrOfChars
)
{
// 添加渠道唯一标识
Criteria
criteria
=
addChannelIndex
(
channelIndex
);
criteria
.
and
(
"startTime"
).
gte
(
startTime
).
lt
(
endTime
);
// 分组
Aggregation
agg
=
Aggregation
.
newAggregation
(
Aggregation
.
match
(
criteria
),
// 截取前8位,按日分组
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/Event.java
View file @
42eacde3
...
...
@@ -71,6 +71,10 @@ public class Event extends AbstractBaseMongo {
*/
private
String
linkedGroupId
;
/**
* 品牌ID
*/
private
String
contendId
;
/**
* 是否是舆情事件
*/
private
String
yqEventId
;
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/EventData.java
View file @
42eacde3
...
...
@@ -60,6 +60,10 @@ public class EventData extends AbstractBaseMongo {
*/
private
String
linkedGroupId
;
/**
* 品牌ID
*/
private
String
contendId
;
/**
* 情感倾向
*/
private
String
emotion
;
...
...
@@ -86,6 +90,7 @@ public class EventData extends AbstractBaseMongo {
BaseMap
baseMap
=
Tools
.
getBaseFromEsMap
(
map
);
data
.
setEventId
(
event
.
getId
());
data
.
setProjectId
(
event
.
getProjectId
());
data
.
setContendId
(
event
.
getContendId
());
data
.
setLinkedGroupId
(
event
.
getLinkedGroupId
());
data
.
setPlatform
(
baseMap
.
getPlatform
());
data
.
setRealSource
(
baseMap
.
getRealSource
());
...
...
src/main/java/com/zhiwei/brandkbs2/service/ChannelService.java
View file @
42eacde3
...
...
@@ -10,7 +10,6 @@ import com.zhiwei.brandkbs2.pojo.vo.ChannelListVO;
import
com.zhiwei.brandkbs2.pojo.vo.PageVO
;
import
java.util.List
;
import
java.util.Set
;
/**
* @ClassName: ChannelService
...
...
@@ -183,7 +182,7 @@ public interface ChannelService {
* @param endTime 结束时间
* @return 渠道动向
*/
JSONObject
getSpreadingTend
(
String
channelId
,
String
type
,
S
et
<
String
>
contends
,
Long
startTime
,
Long
endTime
);
JSONObject
getSpreadingTend
(
String
channelId
,
String
type
,
S
tring
contends
,
Long
startTime
,
Long
endTime
);
/**
* 获取渠道动向-摘要
...
...
@@ -194,7 +193,7 @@ public interface ChannelService {
* @param endTime 结束时间
* @return 渠道动向-摘要
*/
JSONObject
getSpreadingTendSummary
(
String
channelId
,
S
et
<
String
>
contends
,
Long
startTime
,
Long
endTime
);
JSONObject
getSpreadingTendSummary
(
String
channelId
,
S
tring
contends
,
Long
startTime
,
Long
endTime
);
/**
...
...
@@ -215,8 +214,6 @@ public interface ChannelService {
*
* @param startTime 开始时间时间戳
* @param endTime 结束时间
* @param page 页码
* @param pageSize 页码大小
* @param channelId 渠道ID
* @param contendId 竞品ID
* @return 稿件信息
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/ChannelServiceImpl.java
View file @
42eacde3
...
...
@@ -289,6 +289,11 @@ public class ChannelServiceImpl implements ChannelService {
@Override
public
List
<
ChannelListVO
>
getActiveChannelList
(
String
contendId
,
String
platform
,
String
keyword
,
Long
startTime
,
Long
endTime
,
int
size
)
{
return
getEmotionList
(
contendId
,
platform
,
keyword
,
null
,
startTime
,
endTime
,
size
,
EmotionEnum
.
ALL
.
getState
());
}
@Deprecated
public
List
<
ChannelListVO
>
getActiveChannelList2
(
String
contendId
,
String
platform
,
String
keyword
,
Long
startTime
,
Long
endTime
,
int
size
)
{
List
<
ChannelListVO
>
resList
=
new
ArrayList
<>();
try
{
String
projectId
=
UserThreadLocal
.
getProjectId
();
...
...
@@ -304,7 +309,7 @@ public class ChannelServiceImpl implements ChannelService {
searchHelper
.
setAggregationBuilder
(
aggregationBuilder
);
SearchResponse
searchResponse
=
channelEsDao
.
searchResponse
(
searchHelper
);
Terms
keyTerms
=
searchResponse
.
getAggregations
().
get
(
"keyAgg"
);
Map
<
String
,
Long
>
fidCount
=
new
HashMap
<>();
Map
<
String
,
Long
>
fidCount
=
new
Linked
HashMap
<>();
for
(
Terms
.
Bucket
bucket
:
keyTerms
.
getBuckets
())
{
String
channelFid
=
Tools
.
getFidFromChannelKey
(
bucket
.
getKeyAsString
());
Sum
countSum
=
bucket
.
getAggregations
().
get
(
"countAgg"
);
...
...
@@ -374,7 +379,7 @@ public class ChannelServiceImpl implements ChannelService {
List
<
ChannelRecord
>
channelRecords
=
keyMap
.
values
().
stream
().
map
(
pair
->
{
ChannelRecord
channelRecord
=
pair
.
getRight
();
// 情感过滤
if
(
emotion
==
channelRecord
.
getEmotion
())
{
if
(
emotion
==
EmotionEnum
.
ALL
.
getState
()
||
emotion
==
channelRecord
.
getEmotion
())
{
List
<
ChannelIndex
.
Article
>
articles
=
ChannelIndex
.
Record
.
filterArticles
(
startTime
,
endTime
,
channelRecord
.
getRecord
().
getArticles
());
articles
.
sort
(
Comparator
.
comparingLong
(
ChannelIndex
.
Article
::
getTime
).
reversed
());
channelRecord
.
getRecord
().
setArticles
(
articles
);
...
...
@@ -383,7 +388,7 @@ public class ChannelServiceImpl implements ChannelService {
return
null
;
}).
filter
(
Objects:
:
nonNull
).
sorted
((
x
,
y
)
->
{
// emotionIndex降序
if
(
sorter
.
contains
(
"index"
))
{
if
(
null
!=
sorter
&&
sorter
.
contains
(
"index"
))
{
if
(
x
.
getEmotionIndex
()
>
y
.
getEmotionIndex
())
{
return
-
1
;
}
else
if
(
Objects
.
equals
(
x
.
getEmotionIndex
(),
y
.
getEmotionIndex
()))
{
...
...
@@ -474,15 +479,17 @@ public class ChannelServiceImpl implements ChannelService {
jsonObject
.
put
(
"platform"
,
channel
.
getPlatform
());
jsonObject
.
put
(
"source"
,
channel
.
getSource
());
jsonObject
.
put
(
"emotion"
,
ChannelEmotion
.
getNameFromState
(
channel
.
getEmotion
()));
jsonObject
.
put
(
"emotionIndex"
,
channel
.
getEmotionIndex
(
));
jsonObject
.
put
(
"emotionIndex"
,
BigDecimal
.
valueOf
(
channel
.
getEmotionIndex
()).
setScale
(
2
,
RoundingMode
.
UP
));
jsonObject
.
put
(
"articlesCount"
,
channel
.
getArticleCount
());
jsonObject
.
put
(
"eventCount"
,
channel
.
getEventCount
());
jsonObject
.
put
(
"channelTag"
,
channelTagDao
.
getTagByChannelName
(
channel
.
getSource
()));
jsonObject
.
put
(
"collectTime"
,
channel
.
getCollectTime
());
// 渠道倾向变化 TODO
return
jsonObject
;
}
@Override
public
JSONObject
getSpreadingTend
(
String
channelId
,
String
type
,
S
et
<
String
>
conten
ds
,
Long
startTime
,
Long
endTime
)
{
public
JSONObject
getSpreadingTend
(
String
channelId
,
String
type
,
S
tring
contendI
ds
,
Long
startTime
,
Long
endTime
)
{
JSONObject
res
=
new
JSONObject
();
// 默认搜索一周
if
(
null
==
startTime
||
null
==
endTime
)
{
...
...
@@ -490,10 +497,16 @@ public class ChannelServiceImpl implements ChannelService {
startTime
=
timeRangeWeek
[
0
];
endTime
=
timeRangeWeek
[
1
];
}
Collection
<
String
>
contendSet
;
if
(
null
==
contendIds
)
{
contendSet
=
Collections
.
singleton
(
"0"
);
}
else
{
contendSet
=
Arrays
.
asList
(
contendIds
.
split
(
","
));
}
List
<
JSONObject
>
spreadDatas
=
new
ArrayList
<>();
if
(
"事件"
.
equals
(
type
))
{
// 根据品牌分类
for
(
String
contend
:
contend
s
)
{
for
(
String
contend
:
contend
Set
)
{
JSONObject
json
=
new
JSONObject
();
Channel
channel
=
channelDao
.
findOneById
(
channelId
);
json
.
put
(
"spreadingTend"
,
spreadingTendEvent
(
startTime
,
endTime
,
channel
,
UserThreadLocal
.
getProjectId
(),
contend
));
...
...
@@ -504,7 +517,8 @@ public class ChannelServiceImpl implements ChannelService {
}
}
}
else
{
for
(
Map
.
Entry
<
String
,
List
<
ChannelIndex
.
Article
>>
entry
:
getSourceContendMap
(
channelId
,
contends
,
startTime
,
endTime
).
entrySet
())
{
for
(
Map
.
Entry
<
String
,
List
<
ChannelIndex
.
Article
>>
entry
:
getSourceContendMap
(
channelId
,
contendSet
,
startTime
,
endTime
).
entrySet
())
{
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"spreadingTend"
,
spreadingTendData
(
startTime
,
endTime
,
entry
.
getValue
()));
if
(
"0"
.
equals
(
entry
.
getKey
()))
{
...
...
@@ -519,7 +533,7 @@ public class ChannelServiceImpl implements ChannelService {
}
@Override
public
JSONObject
getSpreadingTendSummary
(
String
channelId
,
S
et
<
String
>
contends
,
Long
startTime
,
Long
endTime
)
{
public
JSONObject
getSpreadingTendSummary
(
String
channelId
,
S
tring
contends
,
Long
startTime
,
Long
endTime
)
{
JSONObject
res
=
new
JSONObject
();
String
projectId
=
UserThreadLocal
.
getProjectId
();
// 默认搜索一周
...
...
@@ -529,7 +543,7 @@ public class ChannelServiceImpl implements ChannelService {
endTime
=
timeRangeWeek
[
1
];
}
// 根据品牌分类
Map
<
String
,
List
<
ChannelIndex
.
Article
>>
contendMap
=
getSourceContendMap
(
channelId
,
contends
,
startTime
,
endTime
);
Map
<
String
,
List
<
ChannelIndex
.
Article
>>
contendMap
=
getSourceContendMap
(
channelId
,
Arrays
.
asList
(
contends
.
split
(
","
))
,
startTime
,
endTime
);
Channel
channel
=
channelDao
.
findOneById
(
channelId
);
long
articleTotal
=
0
;
long
eventTotal
=
0
;
...
...
@@ -542,6 +556,7 @@ public class ChannelServiceImpl implements ChannelService {
eventTotal
+=
eventCount
.
getLeft
();
// 合并统计
dataCount
.
getRight
().
putAll
(
eventCount
.
getRight
());
dataCount
.
getRight
().
put
(
"contendId"
,
entry
.
getKey
());
if
(
"0"
.
equals
(
contendId
))
{
spreadDatas
.
add
(
0
,
dataCount
.
getRight
());
}
else
{
...
...
@@ -595,7 +610,7 @@ public class ChannelServiceImpl implements ChannelService {
return
futureList
.
stream
().
map
(
CompletableFuture:
:
join
).
collect
(
Collectors
.
toList
());
}
private
Map
<
String
,
List
<
ChannelIndex
.
Article
>>
getSourceContendMap
(
String
channelId
,
Set
<
String
>
contendIds
,
String
platform
,
String
keyword
,
Long
startTime
,
private
Map
<
String
,
List
<
ChannelIndex
.
Article
>>
getSourceContendMap
(
String
channelId
,
Collection
<
String
>
contendIds
,
String
platform
,
String
keyword
,
Long
startTime
,
Long
endTime
)
{
try
{
String
projectId
=
UserThreadLocal
.
getProjectId
();
...
...
@@ -610,7 +625,7 @@ public class ChannelServiceImpl implements ChannelService {
return
Collections
.
emptyMap
();
}
private
Map
<
String
,
List
<
ChannelIndex
.
Article
>>
getSourceContendMap
(
String
channelId
,
Set
<
String
>
contendIds
,
Long
startTime
,
Long
endTime
)
{
private
Map
<
String
,
List
<
ChannelIndex
.
Article
>>
getSourceContendMap
(
String
channelId
,
Collection
<
String
>
contendIds
,
Long
startTime
,
Long
endTime
)
{
return
getSourceContendMap
(
channelId
,
contendIds
,
null
,
null
,
startTime
,
endTime
);
}
...
...
@@ -746,7 +761,7 @@ public class ChannelServiceImpl implements ChannelService {
}
private
EsClientDao
.
SearchHelper
createSearchHelperByChannelCriteria
(
String
projectId
,
String
channelId
,
Set
<
String
>
contendIds
,
String
platform
,
String
keyword
,
Long
startTime
,
Long
endTime
)
{
private
EsClientDao
.
SearchHelper
createSearchHelperByChannelCriteria
(
String
projectId
,
String
channelId
,
Collection
<
String
>
contendIds
,
String
platform
,
String
keyword
,
Long
startTime
,
Long
endTime
)
{
EsClientDao
.
SearchHelper
helper
=
EsClientDao
.
createSearchHelper
();
// 默认搜索一周
if
(
null
==
startTime
||
null
==
endTime
)
{
...
...
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