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
cc336ddc
Commit
cc336ddc
authored
Dec 17, 2024
by
shenjunjie
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release' into 'master'
Release See merge request
!604
parents
859db12c
9c04e04c
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
105 additions
and
21 deletions
+105
-21
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
+7
-0
src/main/java/com/zhiwei/brandkbs2/pojo/NonManualProjectPlan.java
+0
-1
src/main/java/com/zhiwei/brandkbs2/pojo/Project.java
+6
-0
src/main/java/com/zhiwei/brandkbs2/pojo/vo/ProjectVO.java
+11
-3
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
+6
-0
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
+12
-8
src/main/java/com/zhiwei/brandkbs2/service/impl/ProjectServiceImpl.java
+55
-7
src/main/resources/application-dev.properties
+2
-0
src/main/resources/application-local.properties
+4
-2
src/main/resources/application-prod.properties
+2
-0
No files found.
src/main/java/com/zhiwei/brandkbs2/controller/app/AppArticleController.java
View file @
cc336ddc
...
...
@@ -340,6 +340,13 @@ public class AppArticleController extends BaseController {
return
markDataService
.
updateNonManualProjectPlan
(
dto
);
}
@ApiOperation
(
"非人工项目-方案设置-编辑方案情感模型个性化配置"
)
@PostMapping
(
"/non-manual/plan/config/update"
)
public
ResponseResult
updateNonManualModelCustomConfig
(
@ApiParam
(
name
=
"json:{id:方案id, modelCustomConfig:{coreWordType:核心词类型,coreWord:核心词,negativeWord:负面词,negativePoints:[负面观点,...],positiveWord:正面词,positivePoints:[正面观点,...]} }"
)
@RequestBody
JSONObject
json
){
markDataService
.
updateNonManualModelCustomConfig
(
json
);
return
ResponseResult
.
success
();
}
@ApiOperation
(
"非人工项目-方案设置-数据量预估"
)
@PutMapping
(
"/non-manual/plan/prediction"
)
public
ResponseResult
getPlanDataPrediction
(
@ApiParam
(
name
=
"json:{keyword:关键词, filterWord:去噪词)"
)
@RequestBody
JSONObject
json
){
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/NonManualProjectPlan.java
View file @
cc336ddc
...
...
@@ -82,7 +82,6 @@ public class NonManualProjectPlan extends AbstractBaseMongo {
this
.
cTime
=
System
.
currentTimeMillis
();
this
.
uTime
=
System
.
currentTimeMillis
();
this
.
submitter
=
UserThreadLocal
.
getNickname
();
this
.
modelCustomConfig
=
dto
.
getModelCustomConfig
();
}
@Getter
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/Project.java
View file @
cc336ddc
...
...
@@ -124,6 +124,11 @@ public class Project extends AbstractProject {
private
int
markModel
;
/**
* 数据库来源(仅非人工项目);1:舆情同步新建项目 2:舆情现有项目,默认1
*/
private
Integer
creationMode
;
/**
* 项目主品牌配置信息转换
*
* @return 项目对象
...
...
@@ -155,6 +160,7 @@ public class Project extends AbstractProject {
projectVO
.
setBlackChannelGroup
(
this
.
getBlackChannelGroup
());
projectVO
.
setMergeSensitive
(
true
);
projectVO
.
setMarkModel
(
this
.
getMarkModel
());
projectVO
.
setCreationMode
(
this
.
getCreationMode
());
return
projectVO
;
}
...
...
src/main/java/com/zhiwei/brandkbs2/pojo/vo/ProjectVO.java
View file @
cc336ddc
...
...
@@ -135,7 +135,14 @@ public class ProjectVO {
/**
* 标注模型(默认为0:nlp语料库,1:豆包模型)
*/
private
int
markModel
;
@ApiModelProperty
(
"标注模型(默认为0:nlp语料库,1:豆包模型)"
)
private
Integer
markModel
;
/**
* 数据库来源(仅非人工项目);1:舆情同步新建项目 2:使用舆情现有项目,默认1
*/
@ApiModelProperty
(
"数据库来源(仅非人工项目);1:舆情同步新建项目 2:使用舆情现有项目,默认1"
)
private
Integer
creationMode
;
/**
* 项目主品牌配置信息转换
...
...
@@ -146,7 +153,7 @@ public class ProjectVO {
Project
project
=
new
Project
();
project
.
setId
(
this
.
getId
());
project
.
setProjectName
(
this
.
getProjectName
());
project
.
setExtraProjectName
(
this
.
getExtraProjectName
());
project
.
setExtraProjectName
(
Objects
.
isNull
(
this
.
getExtraProjectName
())
?
this
.
getProjectName
()
:
this
.
getExtraProjectName
());
project
.
setBrandName
(
this
.
getBrandName
());
project
.
setBrandLinkedGroup
(
this
.
getBrandLinkedGroup
());
project
.
setBrandLinkedGroupId
(
this
.
getBrandLinkedGroupId
());
...
...
@@ -202,7 +209,7 @@ public class ProjectVO {
Project
project
=
new
Project
();
project
.
setId
(
vo
.
getId
());
project
.
setProjectName
(
vo
.
getProjectName
());
project
.
setExtraProjectName
(
vo
.
getExtraProjectName
());
project
.
setExtraProjectName
(
Objects
.
isNull
(
vo
.
getExtraProjectName
())
?
vo
.
getProjectName
()
:
vo
.
getExtraProjectName
());
project
.
setBrandName
(
vo
.
getBrandName
());
project
.
setBrandLinkedGroup
(
vo
.
getBrandLinkedGroup
());
project
.
setBrandLinkedGroupId
(
vo
.
getBrandLinkedGroupId
());
...
...
@@ -220,6 +227,7 @@ public class ProjectVO {
project
.
setShow
(
true
);
project
.
setStart
(
true
);
project
.
setMarkModel
(
vo
.
getMarkModel
());
project
.
setCreationMode
(
vo
.
getCreationMode
());
project
.
setCTime
(
System
.
currentTimeMillis
());
project
.
setUTime
(
System
.
currentTimeMillis
());
return
project
;
...
...
src/main/java/com/zhiwei/brandkbs2/service/MarkDataService.java
View file @
cc336ddc
...
...
@@ -443,6 +443,12 @@ public interface MarkDataService {
ResponseResult
updateNonManualProjectPlan
(
NonManualProjectPlanDTO
dto
);
/**
* 更新非人工项目方案情感模型个性化配置
* @param jsonObject
*/
void
updateNonManualModelCustomConfig
(
JSONObject
jsonObject
);
/**
* 非人工项目方案-预估数据量
* @param keyword 关键词
* @param filterWord 去噪词
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/MarkDataServiceImpl.java
View file @
cc336ddc
...
...
@@ -1992,10 +1992,6 @@ public class MarkDataServiceImpl implements MarkDataService {
NonManualProjectPlan
plan
=
new
NonManualProjectPlan
(
dto
);
Project
project
=
projectService
.
getProjectById
(
projectId
);
if
(
project
.
getExternalDataSource
())
{
// 未填默认选全部
if
(
CollectionUtils
.
isEmpty
(
dto
.
getType
())){
dto
.
setType
(
new
ArrayList
<>(
Arrays
.
asList
(
"原创"
,
"转发"
,
"OCR"
)));
}
// 同时添加快搜订阅任务
String
iStarShineSubjectTaskId
=
addIStarShineSubjectTask
(
dto
);
if
(
Objects
.
isNull
(
iStarShineSubjectTaskId
))
{
...
...
@@ -2048,13 +2044,10 @@ public class MarkDataServiceImpl implements MarkDataService {
NonManualProjectPlan
plan
=
new
NonManualProjectPlan
(
dto
);
plan
.
setCTime
(
existPlan
.
getCTime
());
plan
.
setIStarShineSubjectTaskId
(
existPlan
.
getIStarShineSubjectTaskId
());
plan
.
setModelCustomConfig
(
existPlan
.
getModelCustomConfig
());
Project
project
=
projectService
.
getProjectById
(
UserThreadLocal
.
getProjectId
());
// 商业数据源同时修改快搜订阅任务
if
(
project
.
getExternalDataSource
()){
// 未填默认选全部
if
(
CollectionUtils
.
isEmpty
(
dto
.
getType
())){
dto
.
setType
(
new
ArrayList
<>(
Arrays
.
asList
(
"原创"
,
"转发"
,
"OCR"
)));
}
ResponseResult
responseResult
=
updateIStarShineSubjectTask
(
dto
);
if
(!
responseResult
.
isStatus
()){
return
responseResult
;
...
...
@@ -2064,6 +2057,16 @@ public class MarkDataServiceImpl implements MarkDataService {
return
ResponseResult
.
success
();
}
@Override
public
void
updateNonManualModelCustomConfig
(
JSONObject
jsonObject
)
{
String
planId
=
jsonObject
.
getString
(
"id"
);
NonManualProjectPlan
.
ModelCustomConfig
modelCustomConfig
=
jsonObject
.
getJSONObject
(
"modelCustomConfig"
).
toJavaObject
(
NonManualProjectPlan
.
ModelCustomConfig
.
class
);
NonManualProjectPlan
existPlan
=
nonManualProjectPlanDao
.
findOneById
(
planId
);
existPlan
.
setModelCustomConfig
(
modelCustomConfig
);
nonManualProjectPlanDao
.
updateOne
(
existPlan
);
}
/**
* 添加快搜订阅任务,非人工项目方案的创建、删除、修改的同时,也要同时对该任务进行操作
* 详见知微tapd-【istatshine-service(外部数据api)】-【外部数据-快搜-订阅-服务接口文档】
...
...
@@ -2219,6 +2222,7 @@ public class MarkDataServiceImpl implements MarkDataService {
jsonObject
.
put
(
"lasting"
,
plan
.
getLasting
());
jsonObject
.
put
(
"endTime"
,
plan
.
getEndTime
());
jsonObject
.
put
(
"isEnd"
,
!
plan
.
getLasting
()
&&
Objects
.
nonNull
(
plan
.
getEndTime
())
&&
System
.
currentTimeMillis
()
>
plan
.
getEndTime
());
jsonObject
.
put
(
"modelCustomConfig"
,
plan
.
getModelCustomConfig
());
return
jsonObject
;
}).
collect
(
Collectors
.
toList
());
return
PageVO
.
createPageVo
(
total
,
1
,
5
,
collect
);
...
...
src/main/java/com/zhiwei/brandkbs2/service/impl/ProjectServiceImpl.java
View file @
cc336ddc
...
...
@@ -34,6 +34,9 @@ import org.springframework.beans.factory.annotation.Value;
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.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.context.request.RequestContextHolder
;
...
...
@@ -103,6 +106,12 @@ public class ProjectServiceImpl implements ProjectService {
@Value
(
"${brandkbs.image.url}"
)
private
String
brandkbsImageUrl
;
@Value
(
"${qbjc.monitorProject.create.url}"
)
private
String
monitorProjectCreateUrl
;
@Value
(
"${qbjc.monitorProject.create.token}"
)
private
String
monitorProjectCreateToken
;
@Resource
(
name
=
"restTemplate"
)
private
RestTemplate
restTemplate
;
...
...
@@ -551,9 +560,16 @@ public class ProjectServiceImpl implements ProjectService {
//抛出项目名称已存在异常
return
ResponseResult
.
failure
(
ProjectCodeEnum
.
PROJECT_EXISTSNAME_ERROR
.
message
());
}
// 舆情系统同步创建项目
if
(
Objects
.
nonNull
(
projectVO
.
getCreationMode
())
&&
1
==
projectVO
.
getCreationMode
()){
ResponseResult
responseResult
=
createYuqingProject
(
projectVO
);
if
(!
responseResult
.
isStatus
()){
return
responseResult
;
}
}
Project
project
=
ProjectVO
.
createNonManualProject
(
projectVO
);
// 添加时默认商业数据源
project
.
setExternalDataSource
(
tru
e
);
// 添加时默认
关闭
商业数据源
project
.
setExternalDataSource
(
fals
e
);
projectDao
.
insertOneWithoutId
(
project
);
// 绑定事件标签,默认已绑定情感标签
eventMiddlewareDao
.
bindBrandkbs
(
project
.
getBrandLinkedGroup
(),
project
.
getBrandLinkedGroupId
(),
Collections
.
emptyList
(),
...
...
@@ -574,6 +590,13 @@ public class ProjectServiceImpl implements ProjectService {
//抛出项目名已存在异常
ExceptionCast
.
cast
(
ProjectCodeEnum
.
PROJECT_EXISTSNAME_ERROR
);
}
// 切换创建流程
if
(
Objects
.
nonNull
(
projectVO
.
getCreationMode
())
&&
1
==
projectVO
.
getCreationMode
()
&&
2
==
existsProject
.
getCreationMode
()){
ResponseResult
responseResult
=
createYuqingProject
(
projectVO
);
if
(!
responseResult
.
isStatus
()){
return
responseResult
;
}
}
Project
project
=
ProjectVO
.
createNonManualProject
(
projectVO
);
project
.
setCTime
(
existsProject
.
getCTime
());
project
.
setShow
(
existsProject
.
isShow
());
...
...
@@ -584,6 +607,25 @@ public class ProjectServiceImpl implements ProjectService {
return
ResponseResult
.
success
();
}
private
ResponseResult
createYuqingProject
(
ProjectVO
projectVO
){
HttpHeaders
httpHeaders
=
new
HttpHeaders
();
httpHeaders
.
add
(
"Monitor-Token"
,
monitorProjectCreateToken
);
httpHeaders
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"name"
,
projectVO
.
getProjectName
());
HttpEntity
<
String
>
request
=
new
HttpEntity
<>(
jsonObject
.
toJSONString
(),
httpHeaders
);
JSONObject
body
=
restTemplate
.
postForEntity
(
monitorProjectCreateUrl
,
request
,
JSONObject
.
class
).
getBody
();
if
(
Objects
.
isNull
(
body
)){
return
ResponseResult
.
failure
(
"舆情系统创建项目失败"
);
}
if
(!
body
.
getBooleanValue
(
"status"
)){
return
ResponseResult
.
failure
(
"舆情系统:"
+
body
.
getString
(
"message"
));
}
projectVO
.
setBrandLinkedGroup
(
projectVO
.
getProjectName
());
projectVO
.
setBrandLinkedGroupId
(
body
.
getString
(
"data"
));
return
ResponseResult
.
success
();
}
@Override
public
PageVO
<
JSONObject
>
findNonManualProjectList
(
int
page
,
int
size
,
String
sorter
,
String
keyword
,
Boolean
isStart
)
{
Query
query
=
new
Query
();
...
...
@@ -618,6 +660,8 @@ public class ProjectServiceImpl implements ProjectService {
result
.
put
(
"isShow"
,
project
.
isShow
());
result
.
put
(
"dataBalance"
,
project
.
getDataBalance
());
result
.
put
(
"externalDataSource"
,
project
.
getExternalDataSource
());
result
.
put
(
"creationMode"
,
project
.
getCreationMode
());
result
.
put
(
"markModel"
,
project
.
getMarkModel
());
return
result
;
}).
collect
(
Collectors
.
toList
());
MongoUtil
.
PageHelper
<
JSONObject
>
pageHelper
=
mongoUtil
.
pageHelper
(
count
,
resList
);
...
...
@@ -723,13 +767,13 @@ public class ProjectServiceImpl implements ProjectService {
return
ResponseResult
.
failure
(
"项目不存在"
);
}
List
<
NonManualProjectPlan
>
planList
=
nonManualProjectPlanDao
.
findList
(
new
Query
(
Criteria
.
where
(
"projectId"
).
is
(
project
.
getId
())));
// 若商业数据切换为内部数据,此时同时
删除
数据订阅任务
// 若商业数据切换为内部数据,此时同时
暂停
数据订阅任务
if
(
project
.
getExternalDataSource
()){
for
(
NonManualProjectPlan
plan
:
planList
)
{
markDataService
.
deleteIStarShineSubjectTask
(
plan
.
get
Id
());
updateStarShineSubjectTaskStatus
(
plan
.
getIStarShineSubjectTask
Id
());
}
}
// 若内部数据切换为商业数据,此时进行数据预估同时创建商业数据订阅任务
// 若内部数据切换为商业数据,此时
开启数据订阅任务or
进行数据预估同时创建商业数据订阅任务
if
(!
project
.
getExternalDataSource
()){
// 数据预估
for
(
NonManualProjectPlan
plan
:
planList
)
{
...
...
@@ -739,8 +783,10 @@ public class ProjectServiceImpl implements ProjectService {
}
}
List
<
NonManualProjectPlan
>
successList
=
new
ArrayList
<>(
planList
.
size
());
// 添加商业数据订阅任务
for
(
NonManualProjectPlan
plan
:
planList
)
{
// 不存在订阅任务id 新建任务
List
<
NonManualProjectPlan
>
createTaskPlans
=
planList
.
stream
().
filter
(
plan
->
Objects
.
isNull
(
plan
.
getIStarShineSubjectTaskId
())).
collect
(
Collectors
.
toList
());
List
<
NonManualProjectPlan
>
updateTaskPlans
=
planList
.
stream
().
filter
(
plan
->
Objects
.
nonNull
(
plan
.
getIStarShineSubjectTaskId
())).
collect
(
Collectors
.
toList
());
for
(
NonManualProjectPlan
plan
:
createTaskPlans
)
{
if
(
CollectionUtils
.
isEmpty
(
plan
.
getType
())){
plan
.
setType
(
new
ArrayList
<>(
Arrays
.
asList
(
"原创"
,
"转发"
,
"OCR"
)));
}
...
...
@@ -759,6 +805,8 @@ public class ProjectServiceImpl implements ProjectService {
nonManualProjectPlanDao
.
updateOne
(
plan
);
successList
.
add
(
plan
);
}
// 若存在订阅任务id 开启任务
updateTaskPlans
.
forEach
(
plan
->
updateStarShineSubjectTaskStatus
(
plan
.
getIStarShineSubjectTaskId
()));
}
Update
update
=
new
Update
();
update
.
set
(
"uTime"
,
System
.
currentTimeMillis
());
...
...
src/main/resources/application-dev.properties
View file @
cc336ddc
...
...
@@ -78,6 +78,8 @@ qbjc.userCenter.url=https://login.zhiweidata.com/plogin/center
qbjc.userCenter.token
=
AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr
qbjc.channel.application.url
=
https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-application
qbjc.channel.influence
=
https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-influence?platform={1}&channel={2}
qbjc.monitorProject.create.url
=
https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/monitor-project/create
qbjc.monitorProject.create.token
=
JveuI3RNNn6vUnqUfqbiYbYr
#\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3
crisis.search.url
=
https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3}
crisis.searchTags.url
=
https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4}
...
...
src/main/resources/application-local.properties
View file @
cc336ddc
...
...
@@ -36,9 +36,9 @@ mongo.autoConnectRetry=true
mongo.socketKeepAlive
=
true
mongo.socketTimeout
=
120000
mongo.slaveOk
=
true
#
测试
#
\u6D4B\u8BD5
primary.uri
=
mongodb://rsync:rsync1q2w3e4r@115.236.59.88:30001/brandkbs2?authSource=admin
#
线上
#
\u7EBF\u4E0A
#primary.uri=mongodb://brandkbs2:3vh65l$i6qQA@202.107.192.94:17152/brandkbs2?authSource=admin
secondary.uri
=
mongodb://qbjcuser:qbjc1q2w3e4r@202.107.192.94:17152/qbjc?authSource=admin
...
...
@@ -87,6 +87,8 @@ qbjc.userCenter.url=http://login.zhiweidata.top/plogin/center
qbjc.userCenter.token
=
AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr
qbjc.channel.application.url
=
http://192.168.0.79:11000/qbjcbackPhoenix/interface/middleware/channel-application
qbjc.channel.influence
=
https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-influence?platform={1}&channel={2}
qbjc.monitorProject.create.url
=
http://localhost:11000/qbjcbackPhoenix/interface/monitor-project/create
qbjc.monitorProject.create.token
=
JveuI3RNNn6vUnqUfqbiYbYr
#\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3
crisis.search.url
=
https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3}
crisis.searchTags.url
=
https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4}
...
...
src/main/resources/application-prod.properties
View file @
cc336ddc
...
...
@@ -78,6 +78,8 @@ qbjc.userCenter.url=https://login.zhiweidata.com/plogin/center
qbjc.userCenter.token
=
AoJ0ooy3HV1EElWnvQw9YTS9b5Y+fmtkbM6DdpPgDO6D/OhNqH4qrJKarzMr
qbjc.channel.application.url
=
https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-application
qbjc.channel.influence
=
https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/middleware/channel-influence?platform={1}&channel={2}
qbjc.monitorProject.create.url
=
https://yuqing.zhiweidata.com/qbjcbackPhoenix/interface/monitor-project/create
qbjc.monitorProject.create.token
=
JveuI3RNNn6vUnqUfqbiYbYr
#\u5371\u673A\u5E93\u5916\u90E8\u63A5\u53E3
crisis.search.url
=
https://crisis.zhiweidata.com/app/brandkbs/crisisSearch?page={1}&size={2}&keyword={3}
crisis.searchTags.url
=
https://crisis.zhiweidata.com/app/brandkbs/searchCrisisByTags?page={1}&size={2}&brand={3}&category={4}
...
...
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