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
b8dea545
Commit
b8dea545
authored
Apr 25, 2024
by
shenjunjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature' into 'dev'
Feature See merge request
!491
parents
6fe16ea2
a40bb649
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
181 additions
and
8 deletions
+181
-8
src/main/java/com/zhiwei/brandkbs2/aop/AopLogRecord.java
+5
-4
src/main/java/com/zhiwei/brandkbs2/config/Constant.java
+2
-0
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
+15
-1
src/main/java/com/zhiwei/brandkbs2/controller/app/AppHotController.java
+2
-0
src/main/java/com/zhiwei/brandkbs2/controller/app/AppUserCenterController.java
+1
-2
src/main/java/com/zhiwei/brandkbs2/dao/DailyReportDao.java
+12
-0
src/main/java/com/zhiwei/brandkbs2/dao/impl/DailyReportDaoImpl.java
+20
-0
src/main/java/com/zhiwei/brandkbs2/pojo/DailyReport.java
+65
-0
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
+22
-1
src/main/java/com/zhiwei/brandkbs2/service/TaskService.java
+5
-0
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
+0
-0
src/main/java/com/zhiwei/brandkbs2/service/impl/TaskServiceImpl.java
+19
-0
src/main/java/com/zhiwei/brandkbs2/task/ControlCenter.java
+13
-0
No files found.
src/main/java/com/zhiwei/brandkbs2/aop/AopLogRecord.java
View file @
b8dea545
...
...
@@ -61,7 +61,7 @@ public class AopLogRecord {
private
static
final
List
<
String
>
URL_PATTERNS
=
Arrays
.
asList
(
"/getNewAll"
,
"/getNew"
,
"/schedule"
);
@AfterReturning
(
value
=
"execution(public * com..controller..admin..*Controller.*(..)) || execution(* com..controller..app..*Controller.*(..)) || execution(* com..controller..LoginController.checkBind())"
,
returning
=
"ResponseResult"
)
private
void
beforeLog
(
JoinPoint
joinPoint
,
ResponseResul
t
ResponseResult
)
{
private
void
beforeLog
(
JoinPoint
joinPoint
,
Objec
t
ResponseResult
)
{
try
{
long
now
=
System
.
currentTimeMillis
();
// RequestContextHolder 顾名思义 持有 request 上下文的容器
...
...
@@ -128,7 +128,7 @@ public class AopLogRecord {
}
}
private
UserLogRecord
userLogRecord
(
String
projectId
,
UserInfo
userInfo
,
JoinPoint
joinPoint
,
MethodSignature
methodSignature
,
ResponseResul
t
responseResult
)
{
private
UserLogRecord
userLogRecord
(
String
projectId
,
UserInfo
userInfo
,
JoinPoint
joinPoint
,
MethodSignature
methodSignature
,
Objec
t
responseResult
)
{
long
now
=
System
.
currentTimeMillis
();
Object
[]
args
=
joinPoint
.
getArgs
();
Method
method
=
methodSignature
.
getMethod
();
...
...
@@ -193,10 +193,11 @@ public class AopLogRecord {
return
new
UserLogRecord
(
projectId
,
userInfo
.
getUserId
(),
userInfo
.
getNickname
(),
prefix
+
suffix
,
userInfo
.
getRoleId
(),
now
,
now
);
}
// 获取接口返回值(value为获取返回值的具体字段)并与操作描述description拼接返回,返回值为实体
if
(!
method
.
getAnnotation
(
LogRecord
.
class
).
arguments
()
&&
method
.
getAnnotation
(
LogRecord
.
class
).
entity
())
{
if
(!
method
.
getAnnotation
(
LogRecord
.
class
).
arguments
()
&&
method
.
getAnnotation
(
LogRecord
.
class
).
entity
()
&&
Objects
.
nonNull
(
responseResult
)
)
{
List
<
Object
>
res
=
new
ArrayList
<>(
value
.
length
);
for
(
String
v
:
value
)
{
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
responseResult
.
getData
());
ResponseResult
result
=
(
ResponseResult
)
responseResult
;
JSONObject
jsonObject
=
(
JSONObject
)
JSONObject
.
toJSON
(
result
.
getData
());
String
s
=
String
.
valueOf
(
jsonObject
.
get
(
v
));
if
(
Objects
.
nonNull
(
s
))
{
res
.
add
(
s
);
...
...
src/main/java/com/zhiwei/brandkbs2/config/Constant.java
View file @
b8dea545
...
...
@@ -20,12 +20,14 @@ public class Constant {
public
static
final
Long
ONE_YEAR
=
ONE_MONTH
*
12
;
public
static
final
String
SPEC_MINUTE_PATTERN
=
"yyyy.MM.dd HH:mm"
;
public
static
final
String
SPEC_DAY_PATTERN
=
"yyyy.MM.dd"
;
public
static
final
String
HOUR_PATTERN
=
"yyyy-MM-dd HH"
;
public
static
final
String
DAY_PATTERN
=
"yyyy-MM-dd"
;
public
static
final
String
MONTH_PATTERN
=
"yyyy-MM"
;
public
static
final
String
YEAR_PATTERN
=
"yyyy"
;
public
static
final
FastDateFormat
SPEC_MINUTE_FORMAT
=
FastDateFormat
.
getInstance
(
SPEC_MINUTE_PATTERN
);
public
static
final
FastDateFormat
SPEC_DAY_POINT_FORMAT
=
FastDateFormat
.
getInstance
(
SPEC_DAY_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
SPEC_DAY_FORMAT
=
FastDateFormat
.
getInstance
(
"yyyy/MM/dd"
);
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
View file @
b8dea545
...
...
@@ -481,7 +481,7 @@ public class AppArticleController extends BaseController {
@ApiOperation
(
"新-舆情分析-活跃渠道"
)
@PostMapping
(
"/analyze/active-channel"
)
public
ResponseResult
getActiveChannels
(
@RequestBody
MarkSearchDTO
markSearchDTO
)
{
return
ResponseResult
.
success
(
markDataService
.
getActiveChannels
(
markSearchDTO
));
return
ResponseResult
.
success
(
markDataService
.
getActiveChannels
(
markSearchDTO
,
20
));
}
@ApiOperation
(
"新-舆情分析-ip分布"
)
...
...
@@ -538,6 +538,20 @@ public class AppArticleController extends BaseController {
return
ResponseResult
.
success
(
markDataService
.
getSearchAnalyzeHighWord
(
markSearchDTO
));
}
@ApiOperation
(
"舆情简报-每日一报列表"
)
@GetMapping
(
"/daily-report/list"
)
public
ResponseResult
getDailyReportList
(
@RequestParam
(
value
=
"page"
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
return
ResponseResult
.
success
(
markDataService
.
getDailyReportList
(
page
,
pageSize
));
}
@ApiOperation
(
"舆情简报-每日一报详情"
)
@GetMapping
(
"/daily-report/detail/{id}"
)
@Auth
(
role
=
RoleEnum
.
NO_AUTHORISE
)
public
ResponseResult
getDailyReportDetail
(
@PathVariable
String
id
)
{
return
ResponseResult
.
success
(
markDataService
.
getDailyReportDetail
(
id
));
}
private
boolean
checkMTagIllegal
(
StringBuilder
mtag
)
{
List
<
MarkerTag
>
hitTags
=
projectService
.
getProjectById
(
UserThreadLocal
.
getProjectId
()).
getHitTags
();
if
(!
Tools
.
isEmpty
(
hitTags
))
{
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppHotController.java
View file @
b8dea545
...
...
@@ -174,6 +174,7 @@ public class AppHotController extends BaseController {
@ApiOperation
(
"热点库-品牌热点-关键词调整"
)
@PutMapping
(
"/keyword/update"
)
@LogRecord
(
description
=
"热点库-关键词调整"
,
values
=
"list"
,
entity
=
true
,
arguments
=
true
)
public
ResponseResult
updateKeyword
(
@ApiParam
(
name
=
"json:{list:关键词数组,contendId:竞品id}"
)
@RequestBody
JSONObject
json
)
{
JSONArray
list
=
json
.
getJSONArray
(
"list"
);
String
contendId
=
json
.
getString
(
"contendId"
);
...
...
@@ -183,6 +184,7 @@ public class AppHotController extends BaseController {
@ApiOperation
(
"热点库-品牌热点-噪音词调整"
)
@PutMapping
(
"/filter-word/update"
)
@LogRecord
(
description
=
"热点库-噪音词调整"
,
values
=
"list"
,
entity
=
true
,
arguments
=
true
)
public
ResponseResult
updateFilterWord
(
@ApiParam
(
name
=
"json:{list:噪音词数组,contendId:竞品id}"
)
@RequestBody
JSONObject
json
)
{
JSONArray
list
=
json
.
getJSONArray
(
"list"
);
String
contendId
=
json
.
getString
(
"contendId"
);
...
...
src/main/java/com/zhiwei/brandkbs2/controller/app/AppUserCenterController.java
View file @
b8dea545
...
...
@@ -77,9 +77,8 @@ public class AppUserCenterController extends BaseController {
@ApiOperation
(
"任务中心-下载"
)
@ApiImplicitParam
(
name
=
"id"
,
value
=
"任务id"
,
required
=
true
,
paramType
=
"path"
,
dataType
=
"string"
)
@GetMapping
(
"/download-task/download/{id}"
)
public
ResponseResult
download
(
@PathVariable
String
id
)
{
public
void
download
(
@PathVariable
String
id
)
{
DownloadTask
task
=
downloadTaskService
.
findTask
(
id
);
Tools
.
downloadFile
(
task
.
getFileAddress
(),
response
);
return
ResponseResult
.
success
();
}
}
src/main/java/com/zhiwei/brandkbs2/dao/DailyReportDao.java
0 → 100644
View file @
b8dea545
package
com
.
zhiwei
.
brandkbs2
.
dao
;
import
com.zhiwei.brandkbs2.pojo.DailyReport
;
/**
* @ClassName: DailyReportDao
* @Description DailyReportDao
* @author: cjz
* @date: 2024-04-22 11:46
*/
public
interface
DailyReportDao
extends
BaseMongoDao
<
DailyReport
>{
}
src/main/java/com/zhiwei/brandkbs2/dao/impl/DailyReportDaoImpl.java
0 → 100644
View file @
b8dea545
package
com
.
zhiwei
.
brandkbs2
.
dao
.
impl
;
import
com.zhiwei.brandkbs2.dao.DailyReportDao
;
import
com.zhiwei.brandkbs2.pojo.DailyReport
;
import
org.springframework.stereotype.Component
;
/**
* @ClassName: DailyReportDaoImpl
* @Description DailyReportDaoImpl
* @author: cjz
* @date: 2024-04-22 11:46
*/
@Component
(
"dailyReportDao"
)
public
class
DailyReportDaoImpl
extends
BaseMongoDaoImpl
<
DailyReport
>
implements
DailyReportDao
{
private
static
final
String
COLLECTION_NAME
=
"brandkbs_daily_report"
;
public
DailyReportDaoImpl
()
{
super
(
COLLECTION_NAME
);
}
}
src/main/java/com/zhiwei/brandkbs2/pojo/DailyReport.java
0 → 100644
View file @
b8dea545
package
com
.
zhiwei
.
brandkbs2
.
pojo
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
/**
* @author cjz
* @version 1.0
* @description 每日简报实体类
* @date 2024年4月22日10:06:46
*/
@Getter
@Setter
@AllArgsConstructor
public
class
DailyReport
extends
AbstractBaseMongo
{
private
String
name
;
/**
* 舆情概览
*/
private
JSONObject
summary
;
/**
* 舆情总量
*/
private
JSONObject
yuqingAmount
;
/**
* 情感分布
*/
private
JSONObject
yuqingEmotion
;
/**
* 重点平台
*/
private
JSONObject
platformPercentage
;
/**
* 高频标题
*/
private
List
<
JSONObject
>
topTitle
;
/**
* 发文渠道
*/
private
List
<
JSONObject
>
topSource
;
/**
* 项目id
*/
private
String
projectId
;
/**
* 项目
*/
private
String
project
;
/**
* 时间周期-开始时间
*/
private
Long
startTime
;
/**
* 时间周期-结束时间
*/
private
Long
endTime
;
/**
* 创建时间
*/
private
Long
cTime
;
}
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
View file @
b8dea545
...
...
@@ -3,6 +3,7 @@ package com.zhiwei.brandkbs2.service;
import
com.alibaba.fastjson.JSONObject
;
import
com.zhiwei.brandkbs2.model.ResponseResult
;
import
com.zhiwei.brandkbs2.pojo.BaseMap
;
import
com.zhiwei.brandkbs2.pojo.DailyReport
;
import
com.zhiwei.brandkbs2.pojo.Event
;
import
com.zhiwei.brandkbs2.pojo.MarkFlowEntity
;
import
com.zhiwei.brandkbs2.pojo.dto.*
;
...
...
@@ -581,7 +582,7 @@ public interface MarkDataService {
* @param dto 标注数据搜索传输类
* @return
*/
List
<
JSONObject
>
getActiveChannels
(
MarkSearchDTO
dto
);
List
<
JSONObject
>
getActiveChannels
(
MarkSearchDTO
dto
,
int
size
);
/**
* 新-舆情分析-ip分布
...
...
@@ -673,4 +674,24 @@ public interface MarkDataService {
PageVO
<
JSONObject
>
getArticleList
(
String
aggTitle
,
Long
startTime
,
Long
endTime
,
String
planId
,
String
platform
,
int
page
,
int
pageSize
);
PageVO
<
JSONObject
>
getArticleList
(
MarkSearchDTO
dto
);
/**
* 生成每日一报
*/
void
generateDailyReport
(
Long
startTime
,
Long
endTime
);
/**
* 每日一报列表
* @param page
* @param pageSize
* @return
*/
PageVO
<
JSONObject
>
getDailyReportList
(
int
page
,
int
pageSize
);
/**
* 获取每日一报详情
* @param id id
* @return
*/
DailyReport
getDailyReportDetail
(
String
id
);
}
src/main/java/com/zhiwei/brandkbs2/service/TaskService.java
View file @
b8dea545
...
...
@@ -57,4 +57,9 @@ public interface TaskService{
* 生成舆情分析词云缓存
*/
void
yuqingAnalyzeHighWordCache
();
/**
* 生成每日一报
*/
void
generateDailyReport
();
}
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
View file @
b8dea545
This diff is collapsed.
Click to expand it.
src/main/java/com/zhiwei/brandkbs2/service/impl/TaskServiceImpl.java
View file @
b8dea545
...
...
@@ -399,6 +399,25 @@ public class TaskServiceImpl implements TaskService {
CompletableFuture
.
allOf
(
projectFutures
.
toArray
(
new
CompletableFuture
[
0
])).
join
();
}
@Override
public
void
generateDailyReport
()
{
// 时间范围:当天早上八点-前一天早上八点
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
8
);
calendar
.
set
(
Calendar
.
MINUTE
,
0
);
calendar
.
set
(
Calendar
.
SECOND
,
0
);
calendar
.
set
(
Calendar
.
MILLISECOND
,
0
);
long
endTime
=
calendar
.
getTimeInMillis
();
long
startTime
=
endTime
-
Constant
.
ONE_DAY
;
AtomicInteger
total
=
new
AtomicInteger
();
CompletableFuture
.
allOf
(
GlobalPojo
.
PROJECT_MAP
.
values
().
stream
().
map
(
project
->
CompletableFuture
.
supplyAsync
(()
->
{
UserThreadLocal
.
set
(
new
UserInfo
().
setProjectId
(
project
.
getId
()));
markDataService
.
generateDailyReport
(
startTime
,
endTime
);
log
.
info
(
"项目:{}-{}-每日一报生成已完成:{}个"
,
project
.
getProjectName
(),
project
.
getId
(),
total
.
incrementAndGet
());
return
null
;
},
cacheServiceExecutor
)).
toArray
(
CompletableFuture
[]::
new
)).
join
();
}
private
boolean
reportSendByProject
(
Project
project
)
{
boolean
flag
=
false
;
// 扫描setting信息并生成对应报告
...
...
src/main/java/com/zhiwei/brandkbs2/task/ControlCenter.java
View file @
b8dea545
...
...
@@ -105,4 +105,17 @@ public class ControlCenter {
log
.
info
(
"定时按周计算项目均值-结束"
);
}
}
@Async
(
"scheduledExecutor"
)
@Scheduled
(
cron
=
"0 0 8 * * ?"
)
public
void
generateDailyReport
()
{
log
.
info
(
"定时生成每日一报-启动"
);
try
{
taskService
.
generateDailyReport
();
}
catch
(
Exception
e
)
{
log
.
error
(
"定时生成每日一报-出错"
,
e
);
}
finally
{
log
.
info
(
"定时生成每日一报-结束"
);
}
}
}
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