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
65dc384b
Commit
65dc384b
authored
Apr 19, 2024
by
陈健智
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
查舆情-数据分析
parent
fa2a2247
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
149 additions
and
45 deletions
+149
-45
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
+0
-0
src/main/java/com/zhiwei/brandkbs2/controller/app/AppEventController.java
+44
-0
src/main/java/com/zhiwei/brandkbs2/dao/MarkSearchAnalyzeTaskDao.java
+7
-0
src/main/java/com/zhiwei/brandkbs2/dao/impl/MarkSearchAnalyzeTaskDaoImpl.java
+14
-0
src/main/java/com/zhiwei/brandkbs2/pojo/MarkSearchAnalyzeTask.java
+37
-0
src/main/java/com/zhiwei/brandkbs2/pojo/dto/MarkSearchDTO.java
+5
-0
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
+38
-41
src/main/java/com/zhiwei/brandkbs2/service/impl/EventServiceImpl.java
+1
-1
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
+0
-0
src/main/java/com/zhiwei/brandkbs2/service/impl/TaskServiceImpl.java
+2
-2
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
+1
-1
No files found.
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
View file @
65dc384b
This diff is collapsed.
Click to expand it.
src/main/java/com/zhiwei/brandkbs2/controller/app/AppEventController.java
View file @
65dc384b
...
...
@@ -9,6 +9,7 @@ import com.zhiwei.brandkbs2.enmus.RoleEnum;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
com.zhiwei.brandkbs2.pojo.dto.EventSearchDTO
;
import
com.zhiwei.brandkbs2.service.EventService
;
import
com.zhiwei.brandkbs2.service.MarkDataService
;
import
com.zhiwei.middleware.event.pojo.dto.BrandkbsEventSearchDTO
;
import
com.zhiwei.middleware.event.pojo.dto.EventDTO
;
import
io.swagger.annotations.Api
;
...
...
@@ -20,6 +21,7 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
...
...
@@ -64,6 +66,9 @@ public class AppEventController extends BaseController {
private
final
EventService
eventService
;
@Resource
(
name
=
"markDataServiceImpl"
)
MarkDataService
markDataService
;
public
AppEventController
(
EventService
eventService
)
{
this
.
eventService
=
eventService
;
}
...
...
@@ -355,4 +360,43 @@ public class AppEventController extends BaseController {
public
ResponseResult
aggTitleAnalyze
(
@RequestBody
EventDTO
dto
){
return
eventService
.
aggTitleAnalyze
(
dto
);
}
@ApiOperation
(
"新-舆情分析-高频标题-基础信息"
)
@GetMapping
(
"/analyze/frequent-title/info"
)
public
ResponseResult
getAggTitleBaseInfo
(
@RequestParam
(
value
=
"startTime"
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
)
Long
endTime
,
@RequestParam
(
value
=
"aggTitle"
)
String
aggTitle
,
@RequestParam
(
value
=
"planId"
,
required
=
false
)
String
planId
)
{
return
ResponseResult
.
success
(
markDataService
.
getAggTitleBaseInfo
(
aggTitle
,
startTime
,
endTime
,
planId
));
}
@ApiOperation
(
"新-舆情分析-高频标题-发布节点"
)
@GetMapping
(
"/analyze/frequent-title/article-point"
)
public
ResponseResult
getArticlePoints
(
@RequestParam
(
value
=
"startTime"
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
)
Long
endTime
,
@RequestParam
(
value
=
"aggTitle"
)
String
aggTitle
,
@RequestParam
(
value
=
"planId"
,
required
=
false
)
String
planId
)
{
return
ResponseResult
.
success
(
markDataService
.
getAggTitleArticlePoints
(
aggTitle
,
startTime
,
endTime
,
planId
));
}
@ApiOperation
(
"新-舆情分析-高频标题-平台分布"
)
@GetMapping
(
"/analyze/frequent-title/platform-percent"
)
public
ResponseResult
getAggTitlePlatformPercentage
(
@RequestParam
(
value
=
"startTime"
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
)
Long
endTime
,
@RequestParam
(
value
=
"aggTitle"
)
String
aggTitle
,
@RequestParam
(
value
=
"planId"
,
required
=
false
)
String
planId
)
{
return
ResponseResult
.
success
(
markDataService
.
getAggTitlePlatformPercentage
(
aggTitle
,
startTime
,
endTime
,
planId
));
}
@ApiOperation
(
"新-舆情分析-高频标题-发文列表"
)
@GetMapping
(
"/analyze/frequent-title/articles"
)
public
ResponseResult
getArticleList
(
@RequestParam
(
value
=
"startTime"
)
Long
startTime
,
@RequestParam
(
value
=
"endTime"
)
Long
endTime
,
@RequestParam
(
value
=
"aggTitle"
)
String
aggTitle
,
@RequestParam
(
value
=
"platform"
)
String
platform
,
@RequestParam
(
value
=
"planId"
,
required
=
false
)
String
planId
,
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
return
ResponseResult
.
success
(
markDataService
.
getArticleList
(
aggTitle
,
startTime
,
endTime
,
planId
,
platform
,
page
,
pageSize
));
}
}
src/main/java/com/zhiwei/brandkbs2/dao/MarkSearchAnalyzeTaskDao.java
0 → 100644
View file @
65dc384b
package
com
.
zhiwei
.
brandkbs2
.
dao
;
import
com.zhiwei.brandkbs2.pojo.MarkSearchAnalyzeTask
;
public
interface
MarkSearchAnalyzeTaskDao
extends
BaseMongoDao
<
MarkSearchAnalyzeTask
>{
}
src/main/java/com/zhiwei/brandkbs2/dao/impl/MarkSearchAnalyzeTaskDaoImpl.java
0 → 100644
View file @
65dc384b
package
com
.
zhiwei
.
brandkbs2
.
dao
.
impl
;
import
com.zhiwei.brandkbs2.dao.MarkSearchAnalyzeTaskDao
;
import
com.zhiwei.brandkbs2.pojo.MarkSearchAnalyzeTask
;
import
org.springframework.stereotype.Component
;
@Component
(
"markSearchAnalyzeTaskDao"
)
public
class
MarkSearchAnalyzeTaskDaoImpl
extends
BaseMongoDaoImpl
<
MarkSearchAnalyzeTask
>
implements
MarkSearchAnalyzeTaskDao
{
private
static
final
String
COLLECTION_NAME
=
"brandkbs_search_analyze_task"
;
public
MarkSearchAnalyzeTaskDaoImpl
()
{
super
(
COLLECTION_NAME
);
}
}
src/main/java/com/zhiwei/brandkbs2/pojo/MarkSearchAnalyzeTask.java
0 → 100644
View file @
65dc384b
package
com
.
zhiwei
.
brandkbs2
.
pojo
;
import
com.alibaba.fastjson.JSONObject
;
import
com.zhiwei.brandkbs2.pojo.dto.MarkSearchDTO
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
/**
* @ClassName: YuqingSearchAnalyzeTask
* @Description 查舆情数据分析任务
* @author: cjz
* @date: 2024-04-16 14:21
*/
@Getter
@Setter
@AllArgsConstructor
public
class
MarkSearchAnalyzeTask
extends
AbstractBaseMongo
{
/**
* 查舆情搜索条件
*/
private
MarkSearchDTO
markSearchDTO
;
/**
* 数据分析结果-词云
*/
List
<
JSONObject
>
highWord
;
/**
* 词云计算是否已完成
*/
private
Boolean
finish
;
/**
* 创建时间
*/
private
Long
cTime
;
}
src/main/java/com/zhiwei/brandkbs2/pojo/dto/MarkSearchDTO.java
View file @
65dc384b
...
...
@@ -195,4 +195,9 @@ public class MarkSearchDTO {
*/
@ApiModelProperty
(
value
=
"gid限制"
)
private
Long
pageGid
;
/**
* 聚合标题
*/
@ApiModelProperty
(
value
=
"聚合标题"
)
private
String
aggTitle
;
}
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
View file @
65dc384b
...
...
@@ -5,11 +5,7 @@ import com.zhiwei.brandkbs2.model.ResponseResult;
import
com.zhiwei.brandkbs2.pojo.BaseMap
;
import
com.zhiwei.brandkbs2.pojo.Event
;
import
com.zhiwei.brandkbs2.pojo.MarkFlowEntity
;
import
com.zhiwei.brandkbs2.pojo.dto.ExportAppYuqingDTO
;
import
com.zhiwei.brandkbs2.pojo.dto.ExportSearchWholeDTO
;
import
com.zhiwei.brandkbs2.pojo.dto.MarkSearchDTO
;
import
com.zhiwei.brandkbs2.pojo.dto.SearchFilterDTO
;
import
com.zhiwei.brandkbs2.pojo.dto.NonManualProjectPlanDTO
;
import
com.zhiwei.brandkbs2.pojo.dto.*
;
import
com.zhiwei.brandkbs2.pojo.vo.LineVO
;
import
com.zhiwei.brandkbs2.pojo.vo.PageVO
;
import
org.apache.commons.lang3.tuple.Pair
;
...
...
@@ -545,95 +541,88 @@ public interface MarkDataService {
/**
* 新-舆情分析-舆情总量
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
* @throws IOException
*/
JSONObject
getYuqingAmount
(
Long
startTime
,
Long
endTime
,
String
planId
);
JSONObject
getYuqingAmount
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-情感分布
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
* @throws IOException
*/
JSONObject
getYuqingEmotionDistribution
(
Long
startTime
,
Long
endTime
,
String
planId
);
JSONObject
getYuqingEmotionDistribution
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-重点平台
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
*/
JSONObject
getImportantPlatformPercentage
(
Long
startTime
,
Long
endTime
,
String
planId
);
JSONObject
getImportantPlatformPercentage
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-平台占比
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
*/
List
<
JSONObject
>
ge
tPlatformPercentage
(
Long
startTime
,
Long
endTime
,
String
planId
);
List
<
JSONObject
>
ge
AnalyzePlatformPercentage
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-舆情走势图
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
*/
JSONObject
getSpreadTendency
(
Long
startTime
,
Long
endTime
,
String
planId
);
JSONObject
getSpreadTendency
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-活跃渠道
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
*/
List
<
JSONObject
>
getActiveChannels
(
Long
startTime
,
Long
endTime
,
String
planId
);
List
<
JSONObject
>
getActiveChannels
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-ip分布
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
*/
List
<
JSONObject
>
getArticleIpLocated
(
Long
startTime
,
Long
endTime
,
String
planId
,
int
size
);
List
<
JSONObject
>
getArticleIpLocated
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-活跃渠道、ip分布、词云详情页面
* @param dto
* @param dto
标注数据搜索传输类
* @return
*/
PageVO
<
MarkFlowEntity
>
getYuqingAnalyzeDetail
(
MarkSearchDTO
dto
);
void
cacheHighWord
(
Long
startTime
,
Long
endTime
,
String
planId
,
boolean
cache
);
/**
* 新-舆情分析-词云
* @param startTime
* @param endTime
* @param planId
* @param dto 标注数据搜索传输类
* @return
*/
List
<
JSONObject
>
getHighWord
(
Long
startTime
,
Long
endTime
,
String
planId
,
boolean
cache
);
List
<
JSONObject
>
getAnalyzeHighWord
(
MarkSearchDTO
dto
,
boolean
cache
);
/**
* 查舆情-数据分析-生成词云
* @param dto
* @return
*/
List
<
JSONObject
>
getSearchAnalyzeHighWord
(
MarkSearchDTO
dto
);
/**
* 新-舆情分析-高频标题
* @param startTime
* @param endTime
* @param planId
* @param size
* @param include
* @return
*/
List
<
JSONObject
>
getLastNews
(
Long
startTime
,
Long
endTime
,
String
planId
,
int
size
,
boolean
include
);
List
<
JSONObject
>
getLastNews
(
Long
startTime
,
Long
endTime
,
int
size
);
List
<
JSONObject
>
getLastNews
(
MarkSearchDTO
dto
,
int
size
);
/**
* 舆情分析-高频标题详情页-基础信息
...
...
@@ -645,6 +634,8 @@ public interface MarkDataService {
*/
JSONObject
getAggTitleBaseInfo
(
String
aggTitle
,
Long
startTime
,
Long
endTime
,
String
planId
);
JSONObject
getAggTitleBaseInfo
(
MarkSearchDTO
dto
);
/**
* 舆情分析-高频标题详情页-发布节点
* @param aggTitle
...
...
@@ -655,6 +646,8 @@ public interface MarkDataService {
*/
List
<
JSONObject
>
getAggTitleArticlePoints
(
String
aggTitle
,
Long
startTime
,
Long
endTime
,
String
planId
);
List
<
JSONObject
>
getAggTitleArticlePoints
(
MarkSearchDTO
dto
);
/**
* 舆情分析-高频标题详情页-平台分布
* @param aggTitle
...
...
@@ -665,6 +658,8 @@ public interface MarkDataService {
*/
List
<
JSONObject
>
getAggTitlePlatformPercentage
(
String
aggTitle
,
Long
startTime
,
Long
endTime
,
String
planId
);
List
<
JSONObject
>
getAggTitlePlatformPercentage
(
MarkSearchDTO
dto
);
/**
* 舆情分析-高频标题详情页-发文列表
* @param aggTitle
...
...
@@ -676,4 +671,6 @@ public interface MarkDataService {
* @return
*/
PageVO
<
JSONObject
>
getArticleList
(
String
aggTitle
,
Long
startTime
,
Long
endTime
,
String
planId
,
String
platform
,
int
page
,
int
pageSize
);
PageVO
<
JSONObject
>
getArticleList
(
MarkSearchDTO
dto
);
}
src/main/java/com/zhiwei/brandkbs2/service/impl/EventServiceImpl.java
View file @
65dc384b
...
...
@@ -903,7 +903,7 @@ public class EventServiceImpl implements EventService {
if
(
cache
&&
StringUtils
.
isNotEmpty
(
resultStr
))
{
return
JSON
.
parseArray
(
resultStr
,
JSONObject
.
class
);
}
List
<
JSONObject
>
resultList
=
markDataService
.
getLastNews
(
startTime
,
endTime
,
null
,
50
,
true
);
List
<
JSONObject
>
resultList
=
markDataService
.
getLastNews
(
startTime
,
endTime
,
50
);
redisUtil
.
setExpire
(
redisKey
,
JSON
.
toJSONString
(
resultList
));
return
resultList
;
}
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
View file @
65dc384b
This diff is collapsed.
Click to expand it.
src/main/java/com/zhiwei/brandkbs2/service/impl/TaskServiceImpl.java
View file @
65dc384b
...
...
@@ -384,14 +384,14 @@ public class TaskServiceImpl implements TaskService {
Long
[]
time
=
commonService
.
getTimeRangeMonth
();
List
<
CompletableFuture
<
Object
>>
projectFutures
=
GlobalPojo
.
PROJECT_MAP
.
values
().
stream
().
map
(
project
->
CompletableFuture
.
supplyAsync
(()
->
{
UserThreadLocal
.
set
(
new
UserInfo
().
setProjectId
(
project
.
getId
()));
markDataService
.
get
HighWord
(
time
[
0
],
time
[
1
],
null
,
false
);
markDataService
.
cache
HighWord
(
time
[
0
],
time
[
1
],
null
,
false
);
log
.
info
(
"项目:{}-{}-词云缓存已完成:{}个"
,
project
.
getProjectName
(),
project
.
getId
(),
total
.
incrementAndGet
());
return
null
;
},
cacheServiceExecutor
)).
collect
(
Collectors
.
toList
());
AtomicInteger
total2
=
new
AtomicInteger
();
List
<
CompletableFuture
<
Object
>>
planFutures
=
nonManualProjectPlanDao
.
findList
(
new
Query
()).
stream
().
map
(
plan
->
CompletableFuture
.
supplyAsync
(()
->
{
UserThreadLocal
.
set
(
new
UserInfo
().
setProjectId
(
plan
.
getProjectId
()));
markDataService
.
get
HighWord
(
time
[
0
],
time
[
1
],
plan
.
getId
(),
false
);
markDataService
.
cache
HighWord
(
time
[
0
],
time
[
1
],
plan
.
getId
(),
false
);
log
.
info
(
"方案:{}-{}-词云缓存已完成:{}个"
,
plan
.
getName
(),
plan
.
getId
(),
total2
.
incrementAndGet
());
return
null
;
},
cacheServiceExecutor
)).
collect
(
Collectors
.
toList
());
...
...
src/main/java/com/zhiwei/brandkbs2/util/Tools.java
View file @
65dc384b
...
...
@@ -78,7 +78,7 @@ public class Tools {
/**
* 须过滤的标题
*/
public
static
final
List
<
String
>
FILTER_TITLE
=
Arrays
.
asList
(
"Notitle"
,
"分享一篇文章"
,
"暂无标题"
);
public
static
final
List
<
String
>
FILTER_TITLE
=
Arrays
.
asList
(
"Notitle"
,
"分享一篇文章"
,
"
分享一篇文章。"
,
"
暂无标题"
);
/**
* 须过滤的渠道
...
...
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