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
b37abbcd
Commit
b37abbcd
authored
Nov 10, 2022
by
shenjunjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加event结束状态判断2
parent
f60b13c1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
373 additions
and
19 deletions
+373
-19
src/main/java/com/zhiwei/brandkbs2/config/Constant.java
+2
-0
src/main/java/com/zhiwei/brandkbs2/controller/InterfaceController.java
+22
-0
src/main/java/com/zhiwei/brandkbs2/dao/EventDao.java
+12
-0
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
+34
-0
src/main/java/com/zhiwei/brandkbs2/es/EsQueryTools.java
+15
-0
src/main/java/com/zhiwei/brandkbs2/pojo/BaseMap.java
+4
-0
src/main/java/com/zhiwei/brandkbs2/pojo/external/BaseMapCompound.java
+24
-0
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsHotEventConfig.java
+44
-0
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsHotEventWarn.java
+18
-1
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsHotTopWarn.java
+56
-0
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsNewCaseWarn.java
+44
-0
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsWarnTemplate.java
+61
-8
src/main/java/com/zhiwei/brandkbs2/service/ProjectWarnService.java
+16
-0
src/main/java/com/zhiwei/brandkbs2/service/impl/ProjectWarnServiceImpl.java
+0
-0
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
+10
-0
src/test/java/com/zhiwei/brandkbs2/BrandkbsIndexCreateTest.java
+0
-0
src/test/java/com/zhiwei/brandkbs2/ChannelServiceTest.java
+3
-7
src/test/java/com/zhiwei/brandkbs2/MarkDataServiceTest.java
+8
-3
No files found.
src/main/java/com/zhiwei/brandkbs2/config/Constant.java
View file @
b37abbcd
...
@@ -16,11 +16,13 @@ public class Constant {
...
@@ -16,11 +16,13 @@ public class Constant {
public
static
final
Long
ONE_DAY
=
24
*
60
*
60
*
1000L
;
public
static
final
Long
ONE_DAY
=
24
*
60
*
60
*
1000L
;
public
static
final
Long
ONE_MONTH
=
30
*
24
*
60
*
60
*
1000L
;
public
static
final
Long
ONE_MONTH
=
30
*
24
*
60
*
60
*
1000L
;
public
static
final
String
SPEC_MINUTE_PATTERN
=
"yyyy.MM.dd HH:mm"
;
public
static
final
String
HOUR_PATTERN
=
"yyyy-MM-dd HH"
;
public
static
final
String
HOUR_PATTERN
=
"yyyy-MM-dd HH"
;
public
static
final
String
DAY_PATTERN
=
"yyyy-MM-dd"
;
public
static
final
String
DAY_PATTERN
=
"yyyy-MM-dd"
;
public
static
final
String
MONTH_PATTERN
=
"yyyy-MM"
;
public
static
final
String
MONTH_PATTERN
=
"yyyy-MM"
;
public
static
final
String
YEAR_PATTERN
=
"yyyy"
;
public
static
final
String
YEAR_PATTERN
=
"yyyy"
;
public
static
final
FastDateFormat
SPEC_MINUTE_FORMAT
=
FastDateFormat
.
getInstance
(
SPEC_MINUTE_PATTERN
);
public
static
final
FastDateFormat
HOUR_FORMAT
=
FastDateFormat
.
getInstance
(
HOUR_PATTERN
);
public
static
final
FastDateFormat
HOUR_FORMAT
=
FastDateFormat
.
getInstance
(
HOUR_PATTERN
);
public
static
final
FastDateFormat
DAY_FORMAT
=
FastDateFormat
.
getInstance
(
DAY_PATTERN
);
public
static
final
FastDateFormat
DAY_FORMAT
=
FastDateFormat
.
getInstance
(
DAY_PATTERN
);
public
static
final
FastDateFormat
SPEC_DAY_FORMAT
=
FastDateFormat
.
getInstance
(
"yyyy/MM/dd"
);
public
static
final
FastDateFormat
SPEC_DAY_FORMAT
=
FastDateFormat
.
getInstance
(
"yyyy/MM/dd"
);
...
...
src/main/java/com/zhiwei/brandkbs2/controller/InterfaceController.java
View file @
b37abbcd
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
...
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsChannelConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsChannelConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsHotEventConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsHotEventConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsHotTopConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsYuQingConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsYuQingConfig
;
import
com.zhiwei.brandkbs2.service.ProjectService
;
import
com.zhiwei.brandkbs2.service.ProjectService
;
import
com.zhiwei.brandkbs2.service.ProjectWarnService
;
import
com.zhiwei.brandkbs2.service.ProjectWarnService
;
...
@@ -36,6 +37,12 @@ public class InterfaceController {
...
@@ -36,6 +37,12 @@ public class InterfaceController {
return
projectWarnService
.
getProjectWarnCriteria
(
projectId
,
type
);
return
projectWarnService
.
getProjectWarnCriteria
(
projectId
,
type
);
}
}
@ApiOperation
(
"获取项目预警详细信息默认值"
)
@GetMapping
(
"/getProjectWarnCriteria/default"
)
public
ResponseResult
getProjectWarnCriteriaDefault
(
String
projectId
,
String
type
)
{
return
projectWarnService
.
getProjectWarnCriteriaDefault
(
projectId
,
type
);
}
@ApiOperation
(
"根据userId获取拥有权限项目"
)
@ApiOperation
(
"根据userId获取拥有权限项目"
)
@GetMapping
(
"/getUserAllProjectsByUserId"
)
@GetMapping
(
"/getUserAllProjectsByUserId"
)
public
ResponseResult
getUserAllProjectsByUserId
(
String
userId
)
{
public
ResponseResult
getUserAllProjectsByUserId
(
String
userId
)
{
...
@@ -66,4 +73,19 @@ public class InterfaceController {
...
@@ -66,4 +73,19 @@ public class InterfaceController {
return
projectWarnService
.
getHotEventWaring
(
projectId
,
config
);
return
projectWarnService
.
getHotEventWaring
(
projectId
,
config
);
}
}
@ApiOperation
(
"获取热点事件-预警结果"
)
@PostMapping
(
"/warn/hotTop"
)
public
ResponseResult
getHotTopWaring
(
@RequestBody
JSONObject
json
)
{
String
projectId
=
json
.
getString
(
"projectId"
);
BrandkbsHotTopConfig
config
=
json
.
getObject
(
"config"
,
BrandkbsHotTopConfig
.
class
);
return
projectWarnService
.
getHotTopWaring
(
projectId
,
config
);
}
@ApiOperation
(
"获取热点事件-预警结果"
)
@PostMapping
(
"/warn/newCase"
)
public
ResponseResult
getNewCaseWaring
(
@RequestBody
JSONObject
json
)
{
String
projectId
=
json
.
getString
(
"projectId"
);
return
projectWarnService
.
getNewCaseWaring
(
projectId
);
}
}
}
src/main/java/com/zhiwei/brandkbs2/dao/EventDao.java
View file @
b37abbcd
...
@@ -94,6 +94,18 @@ public interface EventDao extends BaseMongoDao<Event> {
...
@@ -94,6 +94,18 @@ public interface EventDao extends BaseMongoDao<Event> {
*/
*/
List
<
Event
>
getEventsByProjectIdAndContendId
(
Long
startTime
,
Long
endTime
,
String
emotion
,
String
projectId
,
String
contendId
,
int
limit
);
List
<
Event
>
getEventsByProjectIdAndContendId
(
Long
startTime
,
Long
endTime
,
String
emotion
,
String
projectId
,
String
contendId
,
int
limit
);
/**
* 根据特征值获取事件
*
* @param startTime
* @param endTime
* @param emotions
* @param projectId
* @param contendId
* @return
*/
List
<
Event
>
getEventsByProjectIdAndContendId
(
Long
startTime
,
Long
endTime
,
List
<
String
>
emotions
,
String
projectId
,
String
contendId
,
int
limit
);
List
<
Event
>
getEventsByTotalChannelVolumeTop
(
Long
startTime
,
Long
endTime
,
String
emotion
,
String
projectId
,
String
contendId
,
int
limit
);
List
<
Event
>
getEventsByTotalChannelVolumeTop
(
Long
startTime
,
Long
endTime
,
String
emotion
,
String
projectId
,
String
contendId
,
int
limit
);
...
...
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
View file @
b37abbcd
...
@@ -7,6 +7,7 @@ import com.zhiwei.brandkbs2.enmus.EmotionEnum;
...
@@ -7,6 +7,7 @@ import com.zhiwei.brandkbs2.enmus.EmotionEnum;
import
com.zhiwei.brandkbs2.pojo.ChannelIndex
;
import
com.zhiwei.brandkbs2.pojo.ChannelIndex
;
import
com.zhiwei.brandkbs2.pojo.Event
;
import
com.zhiwei.brandkbs2.pojo.Event
;
import
com.zhiwei.brandkbs2.util.Tools
;
import
com.zhiwei.brandkbs2.util.Tools
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.data.mongodb.core.aggregation.Aggregation
;
import
org.springframework.data.mongodb.core.aggregation.Aggregation
;
import
org.springframework.data.mongodb.core.aggregation.AggregationOperation
;
import
org.springframework.data.mongodb.core.aggregation.AggregationOperation
;
...
@@ -106,6 +107,17 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
...
@@ -106,6 +107,17 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
}
}
@Override
@Override
public
List
<
Event
>
getEventsByProjectIdAndContendId
(
Long
startTime
,
Long
endTime
,
List
<
String
>
emotions
,
String
projectId
,
String
contendId
,
int
limit
)
{
Query
query
=
new
Query
();
Criteria
criteria
=
eventCountCriteria
(
startTime
,
endTime
,
emotions
,
projectId
,
contendId
);
query
.
addCriteria
(
criteria
);
query
.
limit
(
limit
);
// 按影响力排序
addSort
(
query
,
"{\"influence\":\"descend\"}"
);
return
mongoTemplate
.
find
(
query
,
clazz
,
COLLECTION_NAME
);
}
@Override
public
List
<
Event
>
getEventsByTotalChannelVolumeTop
(
Long
startTime
,
Long
endTime
,
String
emotion
,
String
projectId
,
String
contendId
,
int
limit
)
{
public
List
<
Event
>
getEventsByTotalChannelVolumeTop
(
Long
startTime
,
Long
endTime
,
String
emotion
,
String
projectId
,
String
contendId
,
int
limit
)
{
Query
query
=
new
Query
();
Query
query
=
new
Query
();
Criteria
criteria
=
eventCountCriteria
(
startTime
,
endTime
,
emotion
,
projectId
,
contendId
);
Criteria
criteria
=
eventCountCriteria
(
startTime
,
endTime
,
emotion
,
projectId
,
contendId
);
...
@@ -132,6 +144,28 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
...
@@ -132,6 +144,28 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
return
criteria
;
return
criteria
;
}
}
private
Criteria
eventCountCriteria
(
Long
startTime
,
Long
endTime
,
List
<
String
>
emotions
,
String
projectId
,
String
contendId
)
{
Criteria
criteria
=
Criteria
.
where
(
"projectId"
).
is
(
projectId
);
criteria
.
and
(
"contendId"
).
is
(
contendId
);
Criteria
startTimeCriteria
=
criteria
.
and
(
"startTime"
);
if
(
null
!=
startTime
)
{
startTimeCriteria
.
gte
(
startTime
);
}
if
(
null
!=
endTime
)
{
startTimeCriteria
.
lt
(
endTime
);
}
List
<
Criteria
>
criteriaList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
emotions
)
&&
!
emotions
.
contains
(
EmotionEnum
.
ALL
.
getName
()))
{
for
(
String
emotion
:
emotions
)
{
criteriaList
.
add
(
Criteria
.
where
(
"emotion"
).
is
(
emotion
));
}
}
if
(!
criteriaList
.
isEmpty
())
{
criteria
.
orOperator
(
criteriaList
.
toArray
(
new
Criteria
[
0
]));
}
return
criteria
;
}
/**
/**
* mongo版本不支持toString/toObjectId 表达式
* mongo版本不支持toString/toObjectId 表达式
* 已被getEventCount 代替
* 已被getEventCount 代替
...
...
src/main/java/com/zhiwei/brandkbs2/es/EsQueryTools.java
View file @
b37abbcd
...
@@ -110,6 +110,21 @@ public class EsQueryTools {
...
@@ -110,6 +110,21 @@ public class EsQueryTools {
return
nestedBoolQueryBuilder
;
return
nestedBoolQueryBuilder
;
}
}
public
static
BoolQueryBuilder
assembleCacheMapsQueryWithProject
(
String
projectId
,
List
<
String
>
mediaTypes
)
{
BoolQueryBuilder
nestedBoolQueryBuilder
=
QueryBuilders
.
boolQuery
();
// must key
nestedBoolQueryBuilder
.
must
(
cacheMapsNestedQuery
(
QueryBuilders
.
termQuery
(
"brandkbs_cache_maps.project_id.keyword"
,
projectId
)));
// mediaType
if
(
CollectionUtils
.
isNotEmpty
(
mediaTypes
))
{
BoolQueryBuilder
mediaTypeQueryBuilder
=
QueryBuilders
.
boolQuery
();
mediaTypes
.
forEach
(
e
->
{
mediaTypeQueryBuilder
.
should
(
cacheMapsNestedQuery
(
QueryBuilders
.
termQuery
(
"brandkbs_cache_maps.channel_type.keyword"
,
e
)));
});
nestedBoolQueryBuilder
.
must
(
mediaTypeQueryBuilder
);
}
return
nestedBoolQueryBuilder
;
}
public
static
BoolQueryBuilder
assembleCacheMapsQueryExcludePrimaryId
(
String
projectId
){
public
static
BoolQueryBuilder
assembleCacheMapsQueryExcludePrimaryId
(
String
projectId
){
BoolQueryBuilder
query
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
query
=
QueryBuilders
.
boolQuery
();
query
.
must
(
cacheMapsNestedQuery
(
QueryBuilders
.
termQuery
(
"brandkbs_cache_maps.project_id.keyword"
,
projectId
)));
query
.
must
(
cacheMapsNestedQuery
(
QueryBuilders
.
termQuery
(
"brandkbs_cache_maps.project_id.keyword"
,
projectId
)));
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/BaseMap.java
View file @
b37abbcd
...
@@ -70,6 +70,10 @@ public class BaseMap {
...
@@ -70,6 +70,10 @@ public class BaseMap {
private
JSONObject
sourceJson
;
private
JSONObject
sourceJson
;
private
String
brandName
;
private
Double
channelEmotionIndex
;
/**
/**
* 当标题为空时用文本截取前20个字代替
* 当标题为空时用文本截取前20个字代替
*
*
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/external/BaseMapCompound.java
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
.
pojo
.
external
;
package
com
.
zhiwei
.
brandkbs2
.
pojo
.
external
;
import
com.zhiwei.base.category.ClassB
;
import
com.zhiwei.brandkbs2.common.GlobalPojo
;
import
com.zhiwei.brandkbs2.pojo.BaseMap
;
import
com.zhiwei.brandkbs2.pojo.BaseMap
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -25,4 +28,24 @@ public class BaseMapCompound {
...
@@ -25,4 +28,24 @@ public class BaseMapCompound {
*/
*/
private
List
<
String
>
tags
;
private
List
<
String
>
tags
;
public
static
BaseMapCompound
createFromBaseMap
(
BaseMap
baseMap
,
String
projectId
)
{
List
<
String
>
tagList
=
new
ArrayList
<>();
// 情感倾向
tagList
.
add
(
baseMap
.
getEmotion
());
// 媒体类型
String
mediaType
=
GlobalPojo
.
getMediaType
(
projectId
,
baseMap
.
getPlatform
(),
baseMap
.
getSource
());
if
(
null
!=
mediaType
)
{
tagList
.
add
(
mediaType
);
}
// 仅针对微博平台的 原创/转发 标签
if
(
ClassB
.
TypeB
.
INCOMPLETE
.
equals
(
baseMap
.
getTypeB
()))
{
tagList
.
add
(
baseMap
.
isForward
()
?
"转发"
:
"原创"
);
}
// 竞品品牌标签
if
(
null
!=
baseMap
.
getBrandName
())
{
tagList
.
add
(
baseMap
.
getBrandName
());
}
return
new
BaseMapCompound
(
baseMap
,
tagList
);
}
}
}
\ No newline at end of file
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsHotEventConfig.java
0 → 100644
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
.
pojo
.
external
;
import
lombok.Data
;
import
java.util.List
;
@Data
public
class
BrandkbsHotEventConfig
{
private
String
configName
;
/**
* 本品事件
*/
private
List
<
String
>
ownEvent
;
/**
* 竞品事件
*/
private
List
<
String
>
contendsEvent
;
/**
* zhiwei事件
*/
private
List
<
String
>
zhiWeiEvent
;
/**
* 事件top
*/
private
int
eventTop
;
/**
* 时间周期
*/
private
int
timeCycles
;
private
boolean
used
;
public
BrandkbsHotEventConfig
()
{
this
.
used
=
false
;
this
.
timeCycles
=
2
;
}
}
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsHotEventWarn.java
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
.
pojo
.
external
;
package
com
.
zhiwei
.
brandkbs2
.
pojo
.
external
;
import
com.zhiwei.brandkbs2.pojo.Event
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.List
;
import
java.util.stream.Collectors
;
/**
/**
* @ClassName: BrandkbsHotEventWarn
* @ClassName: BrandkbsHotEventWarn
...
@@ -18,7 +20,7 @@ public class BrandkbsHotEventWarn {
...
@@ -18,7 +20,7 @@ public class BrandkbsHotEventWarn {
private
List
<
HotEvent
>
hotEventList
;
private
List
<
HotEvent
>
hotEventList
;
@Data
@Data
public
static
class
HotEvent
{
public
static
class
HotEvent
{
/**
/**
* 类别名称
* 类别名称
...
@@ -59,6 +61,21 @@ public class BrandkbsHotEventWarn {
...
@@ -59,6 +61,21 @@ public class BrandkbsHotEventWarn {
*/
*/
private
List
<
String
>
tagList
;
private
List
<
String
>
tagList
;
public
static
HotEvent
createFromEvent
(
String
type
,
Event
event
)
{
HotEvent
hotEvent
=
new
HotEvent
();
hotEvent
.
setType
(
type
);
hotEvent
.
setTitle
(
event
.
getTitle
());
hotEvent
.
setEmotion
(
event
.
getEmotion
());
hotEvent
.
setTotalChannelVolume
(
event
.
getTotalChannelVolume
());
hotEvent
.
setTotalDisseminationVolume
(
event
.
getTotalDisseminationVolume
());
hotEvent
.
setStartTime
(
event
.
getStartTime
());
hotEvent
.
setInfluence
(
event
.
getInfluence
());
List
<
String
>
tagList
=
event
.
getEventTag
().
entrySet
().
stream
().
filter
(
entry
->
!
"情感倾向"
.
equals
(
entry
.
getKey
())).
map
(
entry
->
String
.
valueOf
(
entry
.
getValue
())).
collect
(
Collectors
.
toList
());
hotEvent
.
setTagList
(
tagList
);
return
hotEvent
;
}
}
}
}
}
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsHotTopWarn.java
0 → 100644
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
.
pojo
.
external
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.util.List
;
/**
* @ClassName: BrandkbsHotTopWarn
* @Description BrandkbsHotTopWarn
* @author: sjj
* @date: 2022-11-03 17:00
*/
@Data
@AllArgsConstructor
public
class
BrandkbsHotTopWarn
{
private
String
warnKeyword
;
private
String
filterKeyword
;
private
List
<
HotTop
>
list
;
@Data
public
static
class
HotTop
{
/**
* 热搜标题
*/
private
String
title
;
/**
* 上榜理由
*/
private
String
topReason
;
/**
* 上榜排名
*/
private
String
rank
;
/**
* 热度
*/
private
String
hot
;
/**
* 榜单名称
*/
private
String
topName
;
/**
* 上榜时间
*/
private
Long
time
;
}
}
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsNewCaseWarn.java
0 → 100644
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
.
pojo
.
external
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
java.util.List
;
/**
* @ClassName: BrandkbsNewCaseWarn
* @Description BrandkbsNewCaseWarn
* @author: sjj
* @date: 2022-11-03 17:11
*/
@Data
@AllArgsConstructor
public
class
BrandkbsNewCaseWarn
{
private
List
<
NewCase
>
list
;
@Data
public
static
class
NewCase
{
/**
* 标题
*/
private
String
title
;
/**
* 标签列表
*/
private
List
<
String
>
tagList
;
/**
* 正文本
*/
private
String
content
;
/**
* 公关传播效果指数
*/
private
Double
spreadIndex
;
/**
* 案例类别
*/
private
String
caseType
;
}
}
src/main/java/com/zhiwei/brandkbs2/pojo/external/BrandkbsWarnTemplate.java
View file @
b37abbcd
...
@@ -11,13 +11,66 @@ import lombok.Data;
...
@@ -11,13 +11,66 @@ import lombok.Data;
*/
*/
@Data
@Data
@AllArgsConstructor
@AllArgsConstructor
public
class
BrandkbsWarnTemplate
<
T
>
{
public
class
BrandkbsWarnTemplate
{
int
firstCount
;
private
String
id
;
String
keyword1
;
private
String
detailsUrl
;
String
keyword2
;
private
int
firstCount
;
String
keyword3
;
private
String
keyword1
;
String
keyword4
;
private
String
keyword2
;
T
warnDetails
;
private
String
keyword3
;
private
String
keyword4
;
private
BrandkbsYuQingWarn
warn1
;
private
BrandkbsChannelWarn
warn2
;
private
BrandkbsHotEventWarn
warn3
;
private
BrandkbsHotTopWarn
warn4
;
private
BrandkbsNewCaseWarn
warn5
;
private
String
warnType
;
private
Long
pushTime
;
public
BrandkbsWarnTemplate
(
int
firstCount
,
String
keyword1
,
String
keyword2
,
String
keyword3
,
String
keyword4
,
BrandkbsYuQingWarn
warn1
)
{
this
.
firstCount
=
firstCount
;
this
.
keyword1
=
keyword1
;
this
.
keyword2
=
keyword2
;
this
.
keyword3
=
keyword3
;
this
.
keyword4
=
keyword4
;
this
.
warn1
=
warn1
;
}
public
BrandkbsWarnTemplate
(
int
firstCount
,
String
keyword1
,
String
keyword2
,
String
keyword3
,
String
keyword4
,
BrandkbsChannelWarn
warn2
)
{
this
.
firstCount
=
firstCount
;
this
.
keyword1
=
keyword1
;
this
.
keyword2
=
keyword2
;
this
.
keyword3
=
keyword3
;
this
.
keyword4
=
keyword4
;
this
.
warn2
=
warn2
;
}
public
BrandkbsWarnTemplate
(
int
firstCount
,
String
keyword1
,
String
keyword2
,
String
keyword3
,
String
keyword4
,
BrandkbsHotEventWarn
warn3
)
{
this
.
firstCount
=
firstCount
;
this
.
keyword1
=
keyword1
;
this
.
keyword2
=
keyword2
;
this
.
keyword3
=
keyword3
;
this
.
keyword4
=
keyword4
;
this
.
warn3
=
warn3
;
}
public
BrandkbsWarnTemplate
(
int
firstCount
,
String
keyword1
,
String
keyword2
,
String
keyword3
,
String
keyword4
,
BrandkbsHotTopWarn
warn4
)
{
this
.
firstCount
=
firstCount
;
this
.
keyword1
=
keyword1
;
this
.
keyword2
=
keyword2
;
this
.
keyword3
=
keyword3
;
this
.
keyword4
=
keyword4
;
this
.
warn4
=
warn4
;
}
public
BrandkbsWarnTemplate
(
int
firstCount
,
String
keyword1
,
String
keyword2
,
String
keyword3
,
String
keyword4
,
BrandkbsNewCaseWarn
warn5
)
{
this
.
firstCount
=
firstCount
;
this
.
keyword1
=
keyword1
;
this
.
keyword2
=
keyword2
;
this
.
keyword3
=
keyword3
;
this
.
keyword4
=
keyword4
;
this
.
warn5
=
warn5
;
}
}
}
src/main/java/com/zhiwei/brandkbs2/service/ProjectWarnService.java
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
.
service
;
package
com
.
zhiwei
.
brandkbs2
.
service
;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsChannelConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsHotEventConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsHotTopConfig
;
import
com.zhiwei.brandkbs2.pojo.external.BrandkbsYuQingConfig
;
public
interface
ProjectWarnService
{
public
interface
ProjectWarnService
{
...
@@ -12,4 +16,16 @@ public interface ProjectWarnService {
...
@@ -12,4 +16,16 @@ public interface ProjectWarnService {
*/
*/
ResponseResult
getProjectWarnCriteria
(
String
projectId
,
String
type
);
ResponseResult
getProjectWarnCriteria
(
String
projectId
,
String
type
);
ResponseResult
getProjectWarnCriteriaDefault
(
String
projectId
,
String
type
);
ResponseResult
getYuqingWaring
(
String
projectId
,
BrandkbsYuQingConfig
brandkbsYuQingConfig
);
ResponseResult
getChannelWaring
(
String
projectId
,
BrandkbsChannelConfig
brandkbsChannelConfig
);
ResponseResult
getHotEventWaring
(
String
projectId
,
BrandkbsHotEventConfig
brandkbsHotEventConfig
);
ResponseResult
getHotTopWaring
(
String
projectId
,
BrandkbsHotTopConfig
config
);
ResponseResult
getNewCaseWaring
(
String
projectId
);
}
}
src/main/java/com/zhiwei/brandkbs2/service/impl/ProjectWarnServiceImpl.java
View file @
b37abbcd
This diff is collapsed.
Click to expand it.
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
View file @
b37abbcd
...
@@ -894,6 +894,16 @@ public class Tools {
...
@@ -894,6 +894,16 @@ public class Tools {
return
new
JSONObject
();
return
new
JSONObject
();
}
}
public
static
JSONObject
getBrandkbsHitMapWithProjectId
(
Map
<
String
,
Object
>
esMap
,
String
projectId
)
{
List
<
Map
<
String
,
Object
>>
cacheMaps
=
(
List
<
Map
<
String
,
Object
>>)
esMap
.
get
(
GenericAttribute
.
ES_BRANDKBS_CACHE_MAPS
);
for
(
Map
<
String
,
Object
>
cacheMap
:
cacheMaps
)
{
if
(
projectId
.
equals
(
cacheMap
.
get
(
"project_id"
)))
{
return
new
JSONObject
(
cacheMap
);
}
}
return
new
JSONObject
();
}
public
static
<
T
>
Map
<
String
,
T
>
sortTimeKeyMap
(
Map
<
String
,
T
>
map
,
FastDateFormat
timePattern
,
boolean
isDesc
)
{
public
static
<
T
>
Map
<
String
,
T
>
sortTimeKeyMap
(
Map
<
String
,
T
>
map
,
FastDateFormat
timePattern
,
boolean
isDesc
)
{
Map
<
String
,
T
>
res
=
new
LinkedHashMap
<>();
Map
<
String
,
T
>
res
=
new
LinkedHashMap
<>();
List
<
Map
.
Entry
<
String
,
T
>>
sortKey
=
map
.
entrySet
().
stream
().
sorted
((
x
,
y
)
->
{
List
<
Map
.
Entry
<
String
,
T
>>
sortKey
=
map
.
entrySet
().
stream
().
sorted
((
x
,
y
)
->
{
...
...
src/test/java/com/zhiwei/brandkbs2/BrandkbsIndexCreateTest.java
0 → 100644
View file @
b37abbcd
This diff is collapsed.
Click to expand it.
src/test/java/com/zhiwei/brandkbs2/ChannelServiceTest.java
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
;
package
com
.
zhiwei
.
brandkbs2
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.zhiwei.brandkbs2.auth.UserThreadLocal
;
import
com.zhiwei.brandkbs2.pojo.UserInfo
;
import
com.zhiwei.brandkbs2.pojo.vo.ChannelListVO
;
import
com.zhiwei.brandkbs2.pojo.vo.ChannelListVO
;
import
com.zhiwei.brandkbs2.pojo.vo.PageVO
;
import
com.zhiwei.brandkbs2.service.ChannelService
;
import
com.zhiwei.brandkbs2.service.ChannelService
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
...
@@ -12,7 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -12,7 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
org.springframework.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.security.PublicKey
;
import
java.util.List
;
import
java.util.List
;
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
...
@@ -25,7 +21,7 @@ public class ChannelServiceTest {
...
@@ -25,7 +21,7 @@ public class ChannelServiceTest {
@Test
@Test
public
void
getActiveChannelListTest
(){
public
void
getActiveChannelListTest
(){
List
<
ChannelListVO
>
activeChannelList
=
List
<
ChannelListVO
>
activeChannelList
=
channelService
.
getActiveChannelList
(
"0"
,
null
,
null
,
null
,
null
,
50
);
channelService
.
getActiveChannelList
(
"0"
,
null
,
null
,
null
,
null
,
50
,
true
);
for
(
ChannelListVO
channelListVO
:
activeChannelList
)
{
for
(
ChannelListVO
channelListVO
:
activeChannelList
)
{
System
.
out
.
println
(
channelListVO
);
System
.
out
.
println
(
channelListVO
);
}
}
...
@@ -34,7 +30,7 @@ public class ChannelServiceTest {
...
@@ -34,7 +30,7 @@ public class ChannelServiceTest {
@Test
@Test
public
void
getPositiveListTest
(){
public
void
getPositiveListTest
(){
List
<
ChannelListVO
>
positiveList
=
List
<
ChannelListVO
>
positiveList
=
channelService
.
getPositiveList
(
"0"
,
null
,
null
,
"{\"index\":\"descend\"}"
,
null
,
null
,
50
);
channelService
.
getPositiveList
(
"0"
,
null
,
null
,
"{\"index\":\"descend\"}"
,
null
,
null
,
50
,
true
);
for
(
ChannelListVO
channelListVO
:
positiveList
)
{
for
(
ChannelListVO
channelListVO
:
positiveList
)
{
System
.
out
.
println
(
channelListVO
);
System
.
out
.
println
(
channelListVO
);
}
}
...
@@ -43,7 +39,7 @@ public class ChannelServiceTest {
...
@@ -43,7 +39,7 @@ public class ChannelServiceTest {
@Test
@Test
public
void
getNegativeListTest
(){
public
void
getNegativeListTest
(){
List
<
ChannelListVO
>
negativeList
=
List
<
ChannelListVO
>
negativeList
=
channelService
.
getNegativeList
(
"0"
,
null
,
null
,
"{\"index\":\"descend\"}"
,
null
,
null
,
50
);
channelService
.
getNegativeList
(
"0"
,
null
,
null
,
"{\"index\":\"descend\"}"
,
null
,
null
,
50
,
true
);
for
(
ChannelListVO
channelListVO
:
negativeList
)
{
for
(
ChannelListVO
channelListVO
:
negativeList
)
{
System
.
out
.
println
(
channelListVO
);
System
.
out
.
println
(
channelListVO
);
}
}
...
...
src/test/java/com/zhiwei/brandkbs2/MarkDataServiceTest.java
View file @
b37abbcd
package
com
.
zhiwei
.
brandkbs2
;
package
com
.
zhiwei
.
brandkbs2
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.
sun.media.sound.SoftTuning
;
import
com.
zhiwei.brandkbs2.enmus.EmotionEnum
;
import
com.zhiwei.brandkbs2.pojo.BaseMap
;
import
com.zhiwei.brandkbs2.pojo.BaseMap
;
import
com.zhiwei.brandkbs2.pojo.Event
;
import
com.zhiwei.brandkbs2.pojo.Event
;
import
com.zhiwei.brandkbs2.pojo.MarkFlowEntity
;
import
com.zhiwei.brandkbs2.pojo.MarkFlowEntity
;
...
@@ -9,7 +9,6 @@ import com.zhiwei.brandkbs2.pojo.dto.MarkSearchDTO;
...
@@ -9,7 +9,6 @@ import com.zhiwei.brandkbs2.pojo.dto.MarkSearchDTO;
import
com.zhiwei.brandkbs2.pojo.dto.SearchFilterDTO
;
import
com.zhiwei.brandkbs2.pojo.dto.SearchFilterDTO
;
import
com.zhiwei.brandkbs2.pojo.vo.PageVO
;
import
com.zhiwei.brandkbs2.pojo.vo.PageVO
;
import
com.zhiwei.brandkbs2.service.MarkDataService
;
import
com.zhiwei.brandkbs2.service.MarkDataService
;
import
org.checkerframework.checker.units.qual.K
;
import
org.junit.Test
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -204,9 +203,15 @@ public class MarkDataServiceTest {
...
@@ -204,9 +203,15 @@ public class MarkDataServiceTest {
@Test
@Test
public
void
getEsTopSourceTest
()
throws
IOException
{
public
void
getEsTopSourceTest
()
throws
IOException
{
List
<
Map
<
String
,
Object
>>
esTopSource
=
markDataService
.
getEsTopSource
(
1658073600000L
,
1661727700000L
,
"62beadd1bbf8eb20f96d2f2e"
,
"136"
,
"0"
,
null
,
5
);
List
<
Map
<
String
,
Object
>>
esTopSource
=
markDataService
.
getEsTopSource
(
1663516800000L
,
1666108800000L
,
"62beadd1bbf8eb20f96d2f1a"
,
"25"
,
"0"
,
EmotionEnum
.
POSITIVE
.
getName
(),
3
);
for
(
Map
<
String
,
Object
>
stringObjectMap
:
esTopSource
)
{
for
(
Map
<
String
,
Object
>
stringObjectMap
:
esTopSource
)
{
System
.
out
.
println
(
stringObjectMap
.
entrySet
());
System
.
out
.
println
(
stringObjectMap
.
entrySet
());
}
}
List
<
Map
<
String
,
Object
>>
esTopSource2
=
markDataService
.
getEsTopSource
(
1663516800000L
,
1666108800000L
,
"62beadd1bbf8eb20f96d2f1a"
,
"25"
,
"0"
,
EmotionEnum
.
NEGATIVE
.
getName
(),
3
);
for
(
Map
<
String
,
Object
>
stringObjectMap
:
esTopSource2
)
{
System
.
out
.
println
(
stringObjectMap
.
entrySet
());
}
}
}
}
}
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