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
fddf6786
Commit
fddf6786
authored
Aug 16, 2022
by
shenjunjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature' into 'dev'
Feature See merge request
!22
parents
80d39e08
4e60b856
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
299 additions
and
104 deletions
+299
-104
src/main/java/com/zhiwei/brandkbs2/common/RedisKeyPrefix.java
+15
-1
src/main/java/com/zhiwei/brandkbs2/config/Constant.java
+5
-0
src/main/java/com/zhiwei/brandkbs2/config/TaskPoolConfig.java
+2
-2
src/main/java/com/zhiwei/brandkbs2/controller/app/AppContendController.java
+59
-0
src/main/java/com/zhiwei/brandkbs2/controller/app/AppCrisisController.java
+0
-12
src/main/java/com/zhiwei/brandkbs2/controller/app/AppEventController.java
+7
-7
src/main/java/com/zhiwei/brandkbs2/controller/app/AppHotController.java
+4
-21
src/main/java/com/zhiwei/brandkbs2/controller/app/AppSearchController.java
+79
-0
src/main/java/com/zhiwei/brandkbs2/dao/BaseMongoDao.java
+6
-0
src/main/java/com/zhiwei/brandkbs2/dao/EventDataDao.java
+8
-0
src/main/java/com/zhiwei/brandkbs2/dao/impl/BaseMongoDaoImpl.java
+4
-0
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
+2
-1
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDataDaoImpl.java
+6
-0
src/main/java/com/zhiwei/brandkbs2/pojo/vo/EventListInfoVO.java
+1
-3
src/main/java/com/zhiwei/brandkbs2/service/EventService.java
+2
-2
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
+35
-1
src/main/java/com/zhiwei/brandkbs2/service/MarkFlowService.java
+2
-1
src/main/java/com/zhiwei/brandkbs2/service/impl/ChannelServiceImpl.java
+1
-0
src/main/java/com/zhiwei/brandkbs2/service/impl/CustomEventServiceImpl.java
+11
-4
src/main/java/com/zhiwei/brandkbs2/service/impl/EventServiceImpl.java
+22
-24
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
+0
-0
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkFlowServiceImpl.java
+24
-21
src/main/java/com/zhiwei/brandkbs2/service/impl/TaskServiceImpl.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
+3
-3
No files found.
src/main/java/com/zhiwei/brandkbs2/common/RedisKeyPrefix.java
View file @
fddf6786
...
...
@@ -31,7 +31,7 @@ public class RedisKeyPrefix {
* 自定义事件相关缓存
*/
public
static
final
String
CUSTOM_EVENT_LIST
=
"BRANDKBS:CUSTOM_EVENT:LIST:"
;
public
static
final
String
CUSTOM_EVENT_ANALYZE_SHARE
=
"BRANDKBS:CUSTOM_EVENT:SHARE"
;
public
static
final
String
CUSTOM_EVENT_ANALYZE_SHARE
=
"BRANDKBS:CUSTOM_EVENT:SHARE
:
"
;
public
static
final
String
CUSTOM_EVENT_ANALYZE
=
"BRANDKBS:CUSTOM_EVENT:ANALYZE:"
;
/**
...
...
@@ -60,10 +60,24 @@ public class RedisKeyPrefix {
*/
private
static
final
String
EVENT_ANALYZE_PROGRESS
=
"BRANDKBS:EVENT:ANALYZE:PROGRESS:"
;
/**
* 竞品库-获取竞品对比舆情解读数据(PC
*/
public
static
final
String
INDEX_COMPARE_SUMMARY_PC
=
"BRANDKBS:CONTEND:COMPARESUMMARY:PC:"
;
/**
* 竞品库-获取竞品对比传播分析数据
*/
public
static
final
String
INDEX_COMPARE_ANALYZE
=
"BRANDKBS:CONTEND:COMPAREANALYZE:"
;
public
static
String
eventAnalysisProgress
(
String
eventId
,
String
projectId
)
{
return
RedisKeyPrefix
.
generateRedisKey
(
RedisKeyPrefix
.
EVENT_ANALYZE_PROGRESS
,
projectId
,
eventId
);
}
public
static
String
eventAnalysisProgress
(
String
eventId
)
{
return
RedisKeyPrefix
.
generateRedisKey
(
RedisKeyPrefix
.
EVENT_ANALYZE_PROGRESS
,
UserThreadLocal
.
getProjectId
(),
eventId
);
}
public
static
String
yuqingProgressKey
(
String
linkedGroupId
)
{
return
yuqingProgressKey
(
UserThreadLocal
.
getProjectId
(),
linkedGroupId
);
}
...
...
src/main/java/com/zhiwei/brandkbs2/config/Constant.java
View file @
fddf6786
...
...
@@ -51,4 +51,9 @@ public class Constant {
return
-
1L
;
}
/**
* 主品牌默认竞品ID
*/
public
static
final
String
PRIMARY_CONTENDID
=
"0"
;
}
src/main/java/com/zhiwei/brandkbs2/config/TaskPoolConfig.java
View file @
fddf6786
...
...
@@ -84,9 +84,9 @@ public class TaskPoolConfig {
log
.
info
(
"start taskServiceExecutor"
);
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
// 配置核心线程数
executor
.
setCorePoolSize
(
8
);
executor
.
setCorePoolSize
(
16
);
// 配置最大线程数
executor
.
setMaxPoolSize
(
16
);
executor
.
setMaxPoolSize
(
32
);
// 配置线程池中的线程的名称前缀
executor
.
setThreadNamePrefix
(
"taskServiceExecutor-"
);
// rejection-policy:当pool已经达到max size的时候,如何处理新任务
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppContendController.java
0 → 100644
View file @
fddf6786
package
com
.
zhiwei
.
brandkbs2
.
controller
.
app
;
import
com.zhiwei.brandkbs2.auth.Auth
;
import
com.zhiwei.brandkbs2.controller.BaseController
;
import
com.zhiwei.brandkbs2.enmus.RoleEnum
;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
com.zhiwei.brandkbs2.pojo.dto.MarkSearchDTO
;
import
com.zhiwei.brandkbs2.service.MarkDataService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.text.ParseException
;
import
java.util.List
;
/**
* @ClassName AppContendController
* @Description 提供前台竞品库相关信息展示
* @author cjz
* @date 2022-08-09 10:22
*/
@RestController
@RequestMapping
(
"/app/contend"
)
@Api
(
tags
=
"前台竞品库展示接口"
,
description
=
"提供前台竞品库相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppContendController
extends
BaseController
{
@Resource
(
name
=
"markDataServiceImpl"
)
MarkDataService
markDataService
;
@ApiOperation
(
"竞品库-竞品舆情-搜索条件"
)
@GetMapping
(
"/searchCriteria"
)
public
ResponseResult
getContendSearchCriteria
(
@RequestParam
(
required
=
false
)
String
linkedGroupId
)
{
return
ResponseResult
.
success
(
markDataService
.
getContendSearchCriteria
(
linkedGroupId
));
}
@ApiOperation
(
"竞品库-竞品舆情-搜索结果列表"
)
@GetMapping
(
"/list"
)
public
ResponseResult
getContendSearchList
(
@RequestBody
MarkSearchDTO
markSearchDTO
)
throws
IOException
{
return
ResponseResult
.
success
(
markDataService
.
getContendSearchList
(
markSearchDTO
));
}
@ApiOperation
(
"竞品库-竞品分析-舆情总结页面"
)
@GetMapping
(
"/summary"
)
public
ResponseResult
getSummary
(
@RequestBody
MarkSearchDTO
markSearchDTO
)
throws
IOException
{
return
ResponseResult
.
success
(
markDataService
.
getContendSummary
(
markSearchDTO
,
true
));
}
@ApiOperation
(
"竞品库-竞品对比-传播分析页面"
)
@GetMapping
(
"/spread/analyze"
)
public
ResponseResult
getSpreadAnalyze
(
@RequestBody
MarkSearchDTO
markSearchDTO
)
throws
IOException
{
return
ResponseResult
.
success
(
markDataService
.
getContendSpreadAnalyze
(
markSearchDTO
,
5
,
true
));
}
}
src/main/java/com/zhiwei/brandkbs2/controller/app/AppCrisisController.java
View file @
fddf6786
...
...
@@ -26,8 +26,6 @@ import org.springframework.web.client.RestTemplate;
@Api
(
tags
=
"前台危机展示接口"
,
description
=
"提供前台危机相关信息展示"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppCrisisController
extends
BaseController
{
@Value
(
"${crisis.search.url}"
)
private
String
crisisSearchUrl
;
@Value
(
"${crisis.searchTags.url}"
)
private
String
crisisTagsUrl
;
...
...
@@ -47,16 +45,6 @@ public class AppCrisisController extends BaseController {
@Autowired
private
RestTemplate
restTemplate
;
@ApiOperation
(
"危机库-查危机"
)
@GetMapping
(
"/crisisSearch"
)
public
ResponseResult
crisisSearch
(
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"3"
)
Integer
pageSize
,
@RequestParam
(
"keyword"
)
String
keyword
){
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
crisisSearchUrl
,
String
.
class
,
page
,
pageSize
,
keyword
);
Object
data
=
JSON
.
parseObject
(
responseEntity
.
getBody
()).
get
(
"data"
);
return
ResponseResult
.
success
(
data
);
}
@ApiOperation
(
"危机库-通过标签查危机"
)
@GetMapping
(
"/crisisTags"
)
public
ResponseResult
crisisTags
(
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppEventController.java
View file @
fddf6786
...
...
@@ -57,14 +57,14 @@ public class AppEventController extends BaseController {
@ApiOperation
(
"前台事件库-品牌事件库"
)
@GetMapping
(
"/list"
)
public
ResponseResult
getEventList
(
@RequestParam
(
value
=
"
brandLinkedGroupId"
,
required
=
false
)
String
linkedGroup
Id
,
public
ResponseResult
getEventList
(
@RequestParam
(
value
=
"
contendId"
,
defaultValue
=
"0"
)
String
contend
Id
,
@RequestParam
(
value
=
"emotion"
,
defaultValue
=
"全部"
)
String
emotion
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
Long
endTime
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
int
page
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"50"
)
int
pageSize
,
@RequestParam
(
value
=
"sorter"
,
required
=
false
)
String
sorter
)
{
return
ResponseResult
.
success
(
eventService
.
getEventList
(
linkedGroup
Id
,
emotion
,
startTime
,
endTime
,
page
,
pageSize
,
sorter
));
return
ResponseResult
.
success
(
eventService
.
getEventList
(
contend
Id
,
emotion
,
startTime
,
endTime
,
page
,
pageSize
,
sorter
));
}
@ApiOperation
(
"前台事件库-事件详情-基础信息"
)
...
...
@@ -101,7 +101,7 @@ public class AppEventController extends BaseController {
@ApiOperation
(
"前台事件库-全网事件库-搜索"
)
@GetMapping
(
"/getWholeNetworkEvents"
)
public
ResponseResult
getWholeNetworkEvents
(
@RequestParam
(
"keyword"
)
String
keyword
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
)
{
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
)
{
String
name
=
keyword
.
trim
();
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
getEfSearchUrl
,
String
.
class
,
name
,
page
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
responseEntity
.
getBody
());
...
...
@@ -110,7 +110,7 @@ public class AppEventController extends BaseController {
@ApiOperation
(
"前台事件库-全网事件库-搜索条件"
)
@GetMapping
(
"/getWholeNetworkSearchCriteria"
)
public
ResponseResult
getWholeNetworkSearchCriteria
(){
public
ResponseResult
getWholeNetworkSearchCriteria
()
{
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
getEfSearchCriteriaUrl
,
String
.
class
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
responseEntity
.
getBody
());
return
ResponseResult
.
success
(
jsonObject
);
...
...
@@ -121,7 +121,7 @@ public class AppEventController extends BaseController {
public
ResponseResult
getWholeNetworkEventsList
(
@RequestParam
(
value
=
"firstType"
,
required
=
false
,
defaultValue
=
""
)
String
firstType
,
@RequestParam
(
value
=
"start"
,
required
=
false
,
defaultValue
=
"0"
)
long
start
,
@RequestParam
(
value
=
"end"
,
required
=
false
,
defaultValue
=
"0"
)
long
end
,
@RequestParam
(
value
=
"page"
,
required
=
false
,
defaultValue
=
"1"
)
int
page
){
@RequestParam
(
value
=
"page"
,
required
=
false
,
defaultValue
=
"1"
)
int
page
)
{
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
getFilterNewUrl
,
String
.
class
,
firstType
,
start
,
end
,
page
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
responseEntity
.
getBody
());
return
ResponseResult
.
success
(
jsonObject
);
...
...
@@ -129,7 +129,7 @@ public class AppEventController extends BaseController {
@ApiOperation
(
"前台事件库-全网事件库-得到验证码"
)
@GetMapping
(
"/getWholeNetworkCaptcha"
)
public
ResponseResult
getWholeNetworkCaptcha
(){
public
ResponseResult
getWholeNetworkCaptcha
()
{
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
efCaptchaUrl
,
String
.
class
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
responseEntity
.
getBody
());
return
ResponseResult
.
success
(
jsonObject
);
...
...
@@ -138,7 +138,7 @@ public class AppEventController extends BaseController {
@ApiOperation
(
"前台事件库-全网事件库-校验验证码"
)
@GetMapping
(
"/checkWholeNetworkCaptcha"
)
public
ResponseResult
checkWholeNetworkCaptcha
(
@RequestParam
(
value
=
"id"
,
required
=
false
,
defaultValue
=
""
)
String
id
,
@RequestParam
(
value
=
"captcha"
,
required
=
false
,
defaultValue
=
""
)
String
captcha
){
@RequestParam
(
value
=
"captcha"
,
required
=
false
,
defaultValue
=
""
)
String
captcha
)
{
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
efCheckCaptchaUrl
,
String
.
class
,
id
,
captcha
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
responseEntity
.
getBody
());
return
ResponseResult
.
success
(
jsonObject
);
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppHotController.java
View file @
fddf6786
...
...
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.zhiwei.brandkbs2.auth.Auth
;
import
com.zhiwei.brandkbs2.auth.UserThreadLocal
;
import
com.zhiwei.brandkbs2.common.RedisKeyPrefix
;
import
com.zhiwei.brandkbs2.config.Constant
;
import
com.zhiwei.brandkbs2.controller.BaseController
;
import
com.zhiwei.brandkbs2.enmus.RoleEnum
;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
...
...
@@ -48,9 +49,6 @@ public class AppHotController extends BaseController {
@Value
(
"${trends.longTimeInListSearchByInner.url}"
)
private
String
trendsListUrl
;
@Value
(
"${trends.findHotSearchESDataInTimeByInner.url}"
)
private
String
trendsSearchUrl
;
@Value
(
"${trends.longTimeInListSearch.url}"
)
private
String
longTimeInListSearchUrl
;
...
...
@@ -74,7 +72,7 @@ public class AppHotController extends BaseController {
* douyin 抖音
* bilibili-ranking B站
*/
@ApiOperation
(
"热点库"
)
@ApiOperation
(
"热点库
-列表
"
)
@GetMapping
(
"/getHotList"
)
public
ResponseResult
getHotList
(
@RequestParam
(
value
=
"sortType"
,
defaultValue
=
"realTime"
)
String
sortType
,
@RequestParam
(
value
=
"type"
,
defaultValue
=
"weibo"
)
String
type
){
...
...
@@ -96,21 +94,6 @@ public class AppHotController extends BaseController {
}
}
@ApiOperation
(
"热点库-查热点"
)
@GetMapping
(
"/searchHotList"
)
public
ResponseResult
searchHotList
(
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
limit
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"type"
,
defaultValue
=
"weibo"
)
String
type
,
@RequestParam
(
value
=
"word"
)
String
word
){
ResponseEntity
<
JSONObject
>
jsonObjectResponseEntity
=
restTemplate
.
getForEntity
(
trendsSearchUrl
,
JSONObject
.
class
,
limit
,
page
,
type
,
word
);
JSONObject
body
=
jsonObjectResponseEntity
.
getBody
();
if
(
Objects
.
nonNull
(
body
)){
return
ResponseResult
.
success
(
body
);
}
else
{
return
ResponseResult
.
failure
(
"响应超时"
);
}
}
@ApiOperation
(
"热点库-热点榜单"
)
@GetMapping
(
"/hot"
)
public
ResponseResult
hot
(){
...
...
@@ -142,14 +125,14 @@ public class AppHotController extends BaseController {
Date
startDate
=
DateUtils
.
addHours
(
endDate
,
-
24
);
List
<
Map
.
Entry
<
String
,
Integer
>>
markTopTitleList
=
markDataService
.
getMarkTopTitle
(
startDate
.
getTime
(),
endDate
.
getTime
(),
null
,
projectId
,
linkedGroupId
,
"0"
,
size
);
markDataService
.
getMarkTopTitle
(
startDate
.
getTime
(),
endDate
.
getTime
(),
null
,
projectId
,
linkedGroupId
,
Constant
.
PRIMARY_CONTENDID
,
size
);
List
<
JSONObject
>
resultList
=
markTopTitleList
.
stream
().
map
(
map
->
{
JSONObject
resultJsonObject
=
new
JSONObject
();
resultJsonObject
.
put
(
"title"
,
map
.
getKey
());
resultJsonObject
.
put
(
"num"
,
map
.
getValue
());
try
{
BaseMap
firstArticle
=
markDataService
.
getFirstArticle
(
startDate
.
getTime
(),
endDate
.
getTime
(),
map
.
getKey
(),
projectId
,
linkedGroupId
);
BaseMap
firstArticle
=
markDataService
.
getFirstArticle
(
startDate
.
getTime
(),
endDate
.
getTime
(),
map
.
getKey
(),
projectId
,
linkedGroupId
,
Constant
.
PRIMARY_CONTENDID
);
resultJsonObject
.
put
(
"content"
,
firstArticle
.
getContent
());
resultJsonObject
.
put
(
"url"
,
firstArticle
.
getUrl
());
resultJsonObject
.
put
(
"realSource"
,
firstArticle
.
getRealSource
());
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppSearchController.java
0 → 100644
View file @
fddf6786
package
com
.
zhiwei
.
brandkbs2
.
controller
.
app
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.zhiwei.brandkbs2.auth.Auth
;
import
com.zhiwei.brandkbs2.enmus.RoleEnum
;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.Objects
;
/**
* @ClassName AppSearchController
* @Description 提供前台搜索相关功能
* @author cjz
* @date 2022-08-15 16:17
*/
@RestController
@RequestMapping
(
"/app/search"
)
@Api
(
tags
=
"前台搜索相关接口"
,
description
=
"提供搜索相关功能"
)
@Auth
(
role
=
RoleEnum
.
CUSTOMER
)
public
class
AppSearchController
{
@Autowired
private
RestTemplate
restTemplate
;
@Value
(
"${trends.findHotSearchESDataInTimeByInner.url}"
)
private
String
trendsSearchUrl
;
@Value
(
"${crisis.search.url}"
)
private
String
crisisSearchUrl
;
@Value
(
"${ef.search.url}"
)
private
String
getEfSearchUrl
;
@ApiOperation
(
"搜索-查热点"
)
@GetMapping
(
"/hot/list"
)
public
ResponseResult
searchHotList
(
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
limit
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"type"
,
defaultValue
=
"weibo"
)
String
type
,
@RequestParam
(
value
=
"word"
)
String
word
){
ResponseEntity
<
JSONObject
>
jsonObjectResponseEntity
=
restTemplate
.
getForEntity
(
trendsSearchUrl
,
JSONObject
.
class
,
limit
,
page
,
type
,
word
);
JSONObject
body
=
jsonObjectResponseEntity
.
getBody
();
if
(
Objects
.
nonNull
(
body
)){
return
ResponseResult
.
success
(
body
);
}
else
{
return
ResponseResult
.
failure
(
"响应超时"
);
}
}
@ApiOperation
(
"搜索-查危机"
)
@GetMapping
(
"/crisisSearch"
)
public
ResponseResult
crisisSearch
(
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"3"
)
Integer
pageSize
,
@RequestParam
(
"keyword"
)
String
keyword
){
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
crisisSearchUrl
,
String
.
class
,
page
,
pageSize
,
keyword
);
Object
data
=
JSON
.
parseObject
(
responseEntity
.
getBody
()).
get
(
"data"
);
return
ResponseResult
.
success
(
data
);
}
@ApiOperation
(
"搜索-全网事件库-查事件"
)
@GetMapping
(
"/getWholeNetworkEvents"
)
public
ResponseResult
getWholeNetworkEvents
(
@RequestParam
(
"keyword"
)
String
keyword
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
){
String
name
=
keyword
.
trim
();
ResponseEntity
<
String
>
responseEntity
=
restTemplate
.
getForEntity
(
getEfSearchUrl
,
String
.
class
,
name
,
page
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
responseEntity
.
getBody
());
return
ResponseResult
.
success
(
jsonObject
);
}
}
src/main/java/com/zhiwei/brandkbs2/dao/BaseMongoDao.java
View file @
fddf6786
...
...
@@ -155,4 +155,10 @@ public interface BaseMongoDao<T extends AbstractBaseMongo> {
criteria
.
and
(
"channelFid"
).
is
(
channelIndex
.
getFid
());
return
criteria
;
}
@FunctionalInterface
interface
VoidSetFunction
{
<
T
>
void
set
(
T
t
);
}
}
src/main/java/com/zhiwei/brandkbs2/dao/EventDataDao.java
View file @
fddf6786
...
...
@@ -6,6 +6,7 @@ import com.zhiwei.brandkbs2.pojo.EventData;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
/**
* @ClassName: EventDataDao
...
...
@@ -23,6 +24,13 @@ public interface EventDataDao extends BaseMongoDao<EventData>, ShardingMongo {
EventData
findFirstData
(
String
eventId
,
String
collectionName
);
/**
* 异步获取首发稿件并设置相关操作
*
* @return EventData
*/
CompletableFuture
<
EventData
>
findFirstDataAsync
(
String
eventId
,
String
collectionName
);
/**
* 获取传播量
*
* @param event 事件
...
...
src/main/java/com/zhiwei/brandkbs2/dao/impl/BaseMongoDaoImpl.java
View file @
fddf6786
...
...
@@ -10,6 +10,7 @@ import org.springframework.data.mongodb.core.MongoTemplate;
import
org.springframework.data.mongodb.core.query.Criteria
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.data.mongodb.core.query.Update
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
javax.annotation.Resource
;
import
java.lang.reflect.ParameterizedType
;
...
...
@@ -33,6 +34,9 @@ public class BaseMongoDaoImpl<T extends AbstractBaseMongo> implements BaseMongoD
@Resource
(
name
=
"primaryMongoTemplate"
)
protected
MongoTemplate
mongoTemplate
;
@Resource
(
name
=
"mongoQueryExecutor"
)
protected
ThreadPoolTaskExecutor
taskExecutor
;
public
BaseMongoDaoImpl
(
String
collectionName
)
{
this
.
collectionName
=
collectionName
;
this
.
clazz
=
(
Class
<
T
>)
((
ParameterizedType
)
getClass
().
getGenericSuperclass
()).
getActualTypeArguments
()[
0
];
...
...
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDaoImpl.java
View file @
fddf6786
...
...
@@ -76,7 +76,8 @@ public class EventDaoImpl extends BaseMongoDaoImpl<Event> implements EventDao {
String
aliasName
=
"events"
;
Criteria
lookUpCriteria
=
Criteria
.
where
(
aliasName
+
".emotion"
).
in
(
eventEmotions
);
List
<
AggregationOperation
>
operations
=
Arrays
.
asList
(
Aggregation
.
match
(
criteria
),
Aggregation
.
lookup
(
COLLECTION_NAME
,
"eventId"
,
"_id"
,
aliasName
),
Aggregation
.
match
(
lookUpCriteria
),
Aggregation
.
lookup
(
COLLECTION_NAME
,
"eventId"
,
"_id"
,
aliasName
),
Aggregation
.
match
(
lookUpCriteria
),
Aggregation
.
project
(
"events._id"
));
Aggregation
aggregation
=
Aggregation
.
newAggregation
(
operations
);
AggregationResults
<
JSONObject
>
aggregate
=
mongoTemplate
.
aggregate
(
aggregation
,
primaryCollection
,
JSONObject
.
class
);
...
...
src/main/java/com/zhiwei/brandkbs2/dao/impl/EventDataDaoImpl.java
View file @
fddf6786
...
...
@@ -11,6 +11,7 @@ import org.springframework.stereotype.Component;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.CompletableFuture
;
/**
* @ClassName: EventDataDaoImpl
...
...
@@ -48,6 +49,11 @@ public class EventDataDaoImpl extends BaseMongoDaoImpl<EventData> implements Eve
}
@Override
public
CompletableFuture
<
EventData
>
findFirstDataAsync
(
String
eventId
,
String
collectionName
)
{
return
CompletableFuture
.
supplyAsync
(()
->
findFirstData
(
eventId
,
collectionName
),
taskExecutor
);
}
@Override
public
long
getEventArticleCount
(
Event
event
)
{
return
count
(
Query
.
query
(
Criteria
.
where
(
"eventId"
).
is
(
event
.
getId
())),
event
.
getCollectionName
());
}
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/vo/EventListInfoVO.java
View file @
fddf6786
...
...
@@ -89,9 +89,7 @@ public class EventListInfoVO {
this
.
totalDisseminationVolume
=
event
.
getTotalDisseminationVolume
();
this
.
totalChannelVolume
=
event
.
getTotalChannelVolume
();
this
.
emotion
=
event
.
getEmotion
();
this
.
eventTag
=
event
.
getEventTag
().
entrySet
().
stream
()
.
map
(
entry
->
String
.
valueOf
(
entry
.
getValue
()))
.
collect
(
Collectors
.
joining
(
"|"
));
this
.
eventTag
=
event
.
getEventTag
().
values
().
stream
().
map
(
String:
:
valueOf
).
collect
(
Collectors
.
joining
(
"|"
));
this
.
negativeArticleVolume
=
event
.
getNegativeArticleVolume
();
this
.
articleEmotionProportions
=
event
.
getArticleEmotionProportions
();
this
.
articlePlatformProportions
=
event
.
getArticlePlatformProportions
();
...
...
src/main/java/com/zhiwei/brandkbs2/service/EventService.java
View file @
fddf6786
...
...
@@ -222,7 +222,7 @@ public interface EventService {
/**
* 获取品牌事件列表信息
* @param
linkedGroup
Id
* @param
contend
Id
* @param emotion
* @param startTime
* @param endTime
...
...
@@ -231,7 +231,7 @@ public interface EventService {
* @param sorter
* @return
*/
PageVO
<
EventListInfoVO
>
getEventList
(
String
linkedGroup
Id
,
String
emotion
,
Long
startTime
,
Long
endTime
,
int
page
,
int
pageSize
,
String
sorter
);
PageVO
<
EventListInfoVO
>
getEventList
(
String
contend
Id
,
String
emotion
,
Long
startTime
,
Long
endTime
,
int
page
,
int
pageSize
,
String
sorter
);
/**
* 事件详情-基础静态信息
...
...
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
View file @
fddf6786
...
...
@@ -8,8 +8,10 @@ import com.zhiwei.brandkbs2.pojo.dto.ExportAppYuqingDTO;
import
com.zhiwei.brandkbs2.pojo.dto.MarkSearchDTO
;
import
com.zhiwei.brandkbs2.pojo.vo.PageVO
;
import
org.apache.commons.lang3.tuple.Pair
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
java.io.IOException
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -141,7 +143,7 @@ public interface MarkDataService {
* @param linkedGroupId 关联组id
* @return 首发稿件
*/
BaseMap
getFirstArticle
(
Long
startTime
,
Long
endTime
,
String
aggTitle
,
String
projectId
,
String
linkedGroupId
)
throws
IOException
;
BaseMap
getFirstArticle
(
Long
startTime
,
Long
endTime
,
String
aggTitle
,
String
projectId
,
String
linkedGroupId
,
String
contendId
)
throws
IOException
;
/**
* 搜索标注数据通过事件
...
...
@@ -163,4 +165,36 @@ public interface MarkDataService {
*/
List
<
JSONObject
>
searchMarkDataByTime
(
String
projectId
,
String
linkedGroupId
,
String
contendId
,
Long
startTime
,
Long
endTime
,
String
...
fetchSource
);
/**
* 竞品库-获取搜索条件
* @param linkedGroupId 关联组Id
* @return 搜索条件
*/
JSONObject
getContendSearchCriteria
(
String
linkedGroupId
);
/**
* 竞品库-获取搜索结果列表
* @param markSearchDTO 标注数据搜索传输类
* @return 搜索结果列表
*/
PageVO
<
MarkFlowEntity
>
getContendSearchList
(
MarkSearchDTO
markSearchDTO
)
throws
IOException
;
/**
* 竞品库-获取竞品对比舆情解读数据
*
* @param markSearchDTO 标注数据搜索传输类
* @param cache 是否启用缓存
* @return 竞品对比舆情解读数据
*/
JSONObject
getContendSummary
(
MarkSearchDTO
markSearchDTO
,
boolean
cache
)
throws
IOException
;
/**
* 竞品库-获取竞品对比传播分析数据
* @param markSearchDTO 标注数据搜索传输类
* @param hotArticleSize 热门稿件数量
* @param cache 是否启用缓存
* @return
*/
JSONObject
getContendSpreadAnalyze
(
MarkSearchDTO
markSearchDTO
,
int
hotArticleSize
,
boolean
cache
)
throws
IOException
;
}
src/main/java/com/zhiwei/brandkbs2/service/MarkFlowService.java
View file @
fddf6786
...
...
@@ -17,9 +17,10 @@ public interface MarkFlowService {
* @param json
* @param projectId
* @param linkedGroupId
* @param contendId
* @return
*/
JSONObject
createMarkFlowInfo
(
JSONObject
json
,
String
projectId
,
String
linkedGroup
Id
);
JSONObject
createMarkFlowInfo
(
JSONObject
json
,
String
projectId
,
String
linkedGroupId
,
String
contend
Id
);
/**
* 快照页信息组装
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/ChannelServiceImpl.java
View file @
fddf6786
...
...
@@ -808,6 +808,7 @@ public class ChannelServiceImpl implements ChannelService {
}
channel
.
setEmotionIndex
(
index
);
channel
.
setEmotion
(
emotion
);
channel
.
setEventCount
(
eventDao
.
getEventCount
(
new
ChannelIndex
(
channel
)).
size
());
}
/**
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/CustomEventServiceImpl.java
View file @
fddf6786
...
...
@@ -99,7 +99,7 @@ public class CustomEventServiceImpl implements CustomEventService {
JSONObject
result
=
new
JSONObject
();
String
aggTitle
=
map
.
getKey
();
try
{
BaseMap
firstArticle
=
markDataService
.
getFirstArticle
(
startTime
,
endTime
,
aggTitle
,
projectId
,
linkedGroupId
);
BaseMap
firstArticle
=
markDataService
.
getFirstArticle
(
startTime
,
endTime
,
aggTitle
,
projectId
,
linkedGroupId
,
Constant
.
PRIMARY_CONTENDID
);
result
.
put
(
"title"
,
firstArticle
.
getTitle
());
result
.
put
(
"time"
,
firstArticle
.
getTime
());
result
.
put
(
"url"
,
firstArticle
.
getUrl
());
...
...
@@ -142,7 +142,7 @@ public class CustomEventServiceImpl implements CustomEventService {
set
(
"endTime"
,
customEventDTO
.
getEndTime
()).
set
(
"keywords"
,
customEventDTO
.
getKeywords
());
customEventDao
.
updateOneByIdWithField
(
customEvent
.
getId
(),
update
);
customEventDataDao
.
deleteOneByQuery
(
Query
.
query
(
Criteria
.
where
(
"customEventId"
).
is
(
customEventDTO
.
getId
())));
// this.saveCustomEvent(
customEventDTO);
analyzeCustomEventDataByCustomEventDTO
(
customEvent
,
customEventDTO
);
}
@Override
...
...
@@ -278,6 +278,13 @@ public class CustomEventServiceImpl implements CustomEventService {
return
result
;
}
private
void
analyzeCustomEventDataByCustomEventDTO
(
CustomEvent
customEvent
,
CustomEventDTO
customEventDTO
)
{
customEvent
.
setStartTime
(
customEventDTO
.
getStartTime
());
customEvent
.
setEndTime
(
customEventDTO
.
getEndTime
());
customEvent
.
setKeywords
(
customEventDTO
.
getKeywords
());
analyzeCustomEventData
(
customEvent
);
}
/**
* 自定义事件更新
*
...
...
@@ -285,10 +292,10 @@ public class CustomEventServiceImpl implements CustomEventService {
*/
private
void
analyzeCustomEventData
(
CustomEvent
customEvent
)
{
String
eventId
=
customEvent
.
getId
();
ApplicationProjectListener
.
getThreadPool
().
execute
(()
->
{
try
{
log
.
info
(
"自定义事件:{} 更新开始"
,
eventId
);
customEventDao
.
updateOneByIdWithField
(
eventId
,
Update
.
update
(
"status"
,
false
));
ApplicationProjectListener
.
getThreadPool
().
execute
(()
->
{
try
{
//查询符合该事件时间段的所有稿件信息
List
<
JSONObject
>
articles
=
markDataService
.
searchMarkDataByTime
(
customEvent
.
getProjectId
(),
customEvent
.
getLinkedGroupId
(),
"0"
,
customEvent
.
getStartTime
(),
customEvent
.
getEndTime
());
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/EventServiceImpl.java
View file @
fddf6786
...
...
@@ -513,7 +513,7 @@ public class EventServiceImpl implements EventService {
String
projectId
=
UserThreadLocal
.
getProjectId
();
JSONObject
result
=
new
JSONObject
();
// 品牌
result
.
put
(
"brands"
,
getBrands
(
projectId
));
result
.
put
(
"brands"
,
projectService
.
getBrands
(
projectId
,
true
));
// 事件调性
result
.
put
(
"emotions"
,
getEventEmotions
());
// 事件类型 todo 后续用筛选器配置,和品牌关联
...
...
@@ -525,42 +525,39 @@ public class EventServiceImpl implements EventService {
}
@Override
public
PageVO
<
EventListInfoVO
>
getEventList
(
String
linkedGroup
Id
,
String
emotion
,
Long
startTime
,
Long
endTime
,
int
page
,
int
pageSize
,
String
sorter
)
{
public
PageVO
<
EventListInfoVO
>
getEventList
(
String
contend
Id
,
String
emotion
,
Long
startTime
,
Long
endTime
,
int
page
,
int
pageSize
,
String
sorter
)
{
String
projectId
=
UserThreadLocal
.
getProjectId
();
// 查询条件
Query
query
=
Query
.
query
(
Criteria
.
where
(
"projectId"
).
is
(
projectId
).
and
(
"
linkedGroupId"
).
is
(
linkedGroup
Id
));
Query
query
=
Query
.
query
(
Criteria
.
where
(
"projectId"
).
is
(
projectId
).
and
(
"
contendId"
).
is
(
contend
Id
));
if
(
Objects
.
nonNull
(
emotion
)
&&
!
"全部"
.
equals
(
emotion
))
{
query
.
addCriteria
(
Criteria
.
where
(
"emotion"
).
is
(
emotion
));
}
if
(
Objects
.
nonNull
(
startTime
)
&&
Objects
.
nonNull
(
endTime
))
{
query
.
addCriteria
(
Criteria
.
where
(
"startTime"
).
gte
(
new
Date
(
startTime
)).
lt
(
new
Date
(
endTime
)
));
query
.
addCriteria
(
Criteria
.
where
(
"startTime"
).
gte
(
startTime
).
lt
(
endTime
));
}
// 排序
JSONObject
sortJson
=
JSONObject
.
parseObject
(
sorter
);
sortJson
.
entrySet
().
forEach
(
sortEntry
->
{
String
sort
=
String
.
valueOf
(
sortEntry
.
getValue
()).
replace
(
"end"
,
""
);
String
sortField
=
sortEntry
.
getKey
();
if
(
Sort
.
Direction
.
ASC
.
name
().
equalsIgnoreCase
(
sort
))
{
query
.
with
(
Sort
.
by
(
Sort
.
Direction
.
ASC
,
sortField
));
}
else
{
query
.
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
sortField
));
}
});
// 总数
long
total
=
eventDao
.
count
(
query
);
int
start
=
pageSize
*
(
page
-
1
);
query
.
limit
(
pageSize
).
skip
(
start
);
// 排序
eventDao
.
addSort
(
query
,
sorter
);
mongoUtil
.
start
(
page
,
pageSize
,
query
);
// 数据
List
<
Event
>
eventList
=
eventDao
.
findList
(
query
);
// vo封装
List
<
EventListInfoVO
>
eventListInfoVOList
=
eventList
.
stream
().
map
(
event
->
{
EventListInfoVO
vo
=
new
EventListInfoVO
(
event
);
// List<EventListInfoVO> eventListInfoVOList = eventList.stream().map(event -> {
// EventListInfoVO vo = new EventListInfoVO(event);
// // 放入首发稿件
// vo.setFirstEventData(eventDataDao.findFirstData(event.getId(), event.getCollectionName()));
// return vo;
// }).collect(Collectors.toList());
// 未保证排序
Map
<
String
,
EventListInfoVO
>
sortMap
=
eventList
.
stream
().
collect
(
Collectors
.
toConcurrentMap
(
Event:
:
getId
,
EventListInfoVO:
:
new
));
CompletableFuture
.
allOf
(
eventList
.
stream
().
map
(
event
->
eventDataDao
.
findFirstDataAsync
(
event
.
getId
(),
event
.
getCollectionName
()).
thenApply
((
r
)
->
{
// 放入首发稿件
vo
.
setFirstEventData
(
eventDataDao
.
findFirstData
(
event
.
getId
(),
event
.
getCollectionName
())
);
return
vo
;
}).
collect
(
Collectors
.
toList
())
;
PageVO
<
EventListInfoVO
>
pageVo
=
PageVO
.
createPageVo
(
total
,
page
,
pageSize
,
eventListInfoVOList
);
return
pageVo
;
EventListInfoVO
vo
=
new
EventListInfoVO
(
event
);
sortMap
.
get
(
event
.
getId
()).
setFirstEventData
(
r
)
;
return
null
;
})).
toArray
(
CompletableFuture
[]::
new
)).
join
(
);
return
PageVO
.
createPageVo
(
total
,
page
,
pageSize
,
eventList
.
stream
().
map
(
event
->
sortMap
.
get
(
event
.
getId
())).
collect
(
Collectors
.
toList
()))
;
}
@Override
...
...
@@ -683,6 +680,7 @@ public class EventServiceImpl implements EventService {
* @param projectId
* @return
*/
@Deprecated
private
List
<
JSONObject
>
getBrands
(
String
projectId
)
{
ProjectVO
projectVO
=
projectService
.
getProjectVOById
(
projectId
);
JSONObject
priBrandResult
=
new
JSONObject
();
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
View file @
fddf6786
This diff is collapsed.
Click to expand it.
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkFlowServiceImpl.java
View file @
fddf6786
...
...
@@ -11,8 +11,6 @@ import com.zhiwei.brandkbs2.dao.ChannelTagDao;
import
com.zhiwei.brandkbs2.enmus.ChannelEmotion
;
import
com.zhiwei.brandkbs2.exception.ExceptionCast
;
import
com.zhiwei.brandkbs2.model.CommonCodeEnum
;
import
com.zhiwei.brandkbs2.pojo.Channel
;
import
com.zhiwei.brandkbs2.pojo.ChannelIndex
;
import
com.zhiwei.brandkbs2.pojo.MarkFlowEntity
;
import
com.zhiwei.brandkbs2.service.MarkFlowService
;
import
com.zhiwei.brandkbs2.util.RedisUtil
;
...
...
@@ -22,9 +20,6 @@ import org.springframework.stereotype.Service;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
/**
* @ClassName: MarkFlowServiceImpl
...
...
@@ -45,9 +40,9 @@ public class MarkFlowServiceImpl implements MarkFlowService {
RedisUtil
redisUtil
;
@Override
public
JSONObject
createMarkFlowInfo
(
JSONObject
json
,
String
projectId
,
String
contendId
)
{
public
JSONObject
createMarkFlowInfo
(
JSONObject
json
,
String
projectId
,
String
linkedGroupId
,
String
contendId
)
{
JSONObject
resultInfo
=
createInfoWithEmotion
(
json
);
resultInfo
.
put
(
"sourceDetails"
,
getSourceDetails
(
json
,
projectId
,
contendId
));
resultInfo
.
put
(
"sourceDetails"
,
getSourceDetails
(
json
,
projectId
,
linkedGroupId
,
contendId
));
return
resultInfo
;
}
...
...
@@ -106,7 +101,7 @@ public class MarkFlowServiceImpl implements MarkFlowService {
return
info
;
}
private
JSONObject
getSourceDetails
(
JSONObject
tJson
,
String
projectId
,
String
contendId
)
{
private
JSONObject
getSourceDetails
(
JSONObject
tJson
,
String
projectId
,
String
linkedGroupId
,
String
contendId
)
{
JSONObject
sourceDetails
=
new
JSONObject
();
String
source
=
tJson
.
getString
(
GenericAttribute
.
ES_SOURCE
);
// 是否原创
...
...
@@ -123,20 +118,28 @@ public class MarkFlowServiceImpl implements MarkFlowService {
sourceDetails
.
put
(
"followersNum"
,
followersNum
);
}
// 渠道标签
sourceDetails
.
put
(
"channelTag"
,
channelTagDao
.
getTagByChannelName
(
source
));
// 渠道倾向及id
Channel
channel
=
channelDao
.
queryUnique
(
ChannelIndex
.
createChannelIndex
(
tJson
,
projectId
,
contendId
));
if
(
null
!=
channel
)
{
sourceDetails
.
put
(
"channelId"
,
channel
.
getId
());
sourceDetails
.
put
(
"channelEmotion"
,
ChannelEmotion
.
getNameFromState
(
channel
.
getEmotion
()));
}
else
{
List
<
Map
<
String
,
Object
>>
cacheMaps
=
(
List
<
Map
<
String
,
Object
>>)
tJson
.
get
(
GenericAttribute
.
ES_BRANDKBS_CACHE_MAPS
);
if
(
null
!=
cacheMaps
)
{
Map
<
String
,
Object
>
hitMap
=
cacheMaps
.
stream
().
filter
(
map
->
projectId
.
equals
(
map
.
get
(
"project_id"
))
&&
contendId
.
equals
(
map
.
get
(
"contend_id"
))).
findAny
().
orElse
(
Collections
.
emptyMap
());
sourceDetails
.
put
(
"channelId"
,
hitMap
.
get
(
"channel_id"
));
sourceDetails
.
put
(
"channelEmotion"
,
ChannelEmotion
.
getNameFromState
(
hitMap
.
get
(
"channel_emotion"
)));
String
channelTag
=
tJson
.
getString
(
"channel_tag"
);
if
(
null
!=
channelTag
)
{
sourceDetails
.
put
(
"channelTag"
,
channelTag
.
replaceAll
(
","
,
"|"
));
}
// 渠道倾向及id(调整为快照属性)
// Channel channel = channelDao.queryUnique(ChannelIndex.createChannelIndex(tJson, projectId, contendId));
// if (null != channel) {
// sourceDetails.put("channelId", channel.getId());
// sourceDetails.put("channelEmotion", ChannelEmotion.getNameFromState(channel.getEmotion()));
// } else {
// List<Map<String, Object>> cacheMaps = (List<Map<String, Object>>) tJson.get(GenericAttribute.ES_BRANDKBS_CACHE_MAPS);
// if (null != cacheMaps) {
// Map<String, Object> hitMap =
// cacheMaps.stream().filter(map -> projectId.equals(map.get("project_id")) && contendId.equals(map.get("contend_id"))).findAny().orElse(Collections.emptyMap());
// sourceDetails.put("channelId", hitMap.get("channel_id"));
// sourceDetails.put("channelEmotion", ChannelEmotion.getNameFromState(hitMap.get("channel_emotion")));
// }
// }
JSONObject
brandkbsHitJson
=
Tools
.
getBrandkbsHitMap
(
tJson
,
Tools
.
concat
(
projectId
,
linkedGroupId
,
contendId
));
if
(
null
!=
brandkbsHitJson
.
get
(
"channel_emotion"
))
{
sourceDetails
.
put
(
"channelEmotion"
,
ChannelEmotion
.
getNameFromState
(
brandkbsHitJson
.
getIntValue
(
"channel_emotion"
)));
}
double
channelValue
=
tJson
.
getDoubleValue
(
GenericAttribute
.
ES_CHANNEL_INDEX
);
if
(
channelValue
>
0
)
{
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/TaskServiceImpl.java
View file @
fddf6786
...
...
@@ -93,7 +93,7 @@ public class TaskServiceImpl implements TaskService {
insertList
.
addAll
(
batchHandle
(
batchList
,
newRecordMap
));
batchList
=
new
ArrayList
<>();
}
if
(
handleSize
%
100
==
0
)
{
if
(
handleSize
%
100
00
==
0
)
{
log
.
info
(
"渠道统计-渠道总计-查询更新已完成{}/{}"
,
handleSize
,
channelIndexRecordMap
.
size
());
}
}
...
...
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
View file @
fddf6786
...
...
@@ -779,14 +779,14 @@ public class Tools {
return
contains
;
}
public
static
Map
<
String
,
Object
>
getBrandkbsHitMap
(
Map
<
String
,
Object
>
esMap
,
String
hitKey
)
{
public
static
JSONObject
getBrandkbsHitMap
(
Map
<
String
,
Object
>
esMap
,
String
hitKey
)
{
List
<
Map
<
String
,
Object
>>
cacheMaps
=
(
List
<
Map
<
String
,
Object
>>)
esMap
.
get
(
"brandkbs_cache_maps"
);
for
(
Map
<
String
,
Object
>
cacheMap
:
cacheMaps
)
{
if
(
hitKey
.
equals
(
cacheMap
.
get
(
"key"
)))
{
return
cacheMap
;
return
new
JSONObject
(
cacheMap
)
;
}
}
return
Collections
.
emptyMap
();
return
new
JSONObject
();
}
public
static
<
T
>
Map
<
Long
,
T
>
sortTimeKeyMap
(
Map
<
Long
,
T
>
map
,
boolean
isDesc
)
{
...
...
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