Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
event
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
陈世强
event
Commits
a4016ea5
提交
a4016ea5
authored
1月 09, 2025
作者:
925993793@qq.com
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
研究中心补充接口以及对接bug处理;平台接口逻辑调整
上级
56d167d5
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
187 行增加
和
221 行删除
+187
-221
SubjectManageController.java
...va/com/zzsn/event/controller/SubjectManageController.java
+2
-18
SubjectTypeController.java
...m/zzsn/event/controller/common/SubjectTypeController.java
+18
-14
SubjectTypeMapper.java
src/main/java/com/zzsn/event/mapper/SubjectTypeMapper.java
+11
-7
SubjectTypeMapper.xml
...main/java/com/zzsn/event/mapper/xml/SubjectTypeMapper.xml
+18
-34
ISubjectTypeService.java
...main/java/com/zzsn/event/service/ISubjectTypeService.java
+5
-3
SubjectInfoSourceMapServiceImpl.java
...n/event/service/impl/SubjectInfoSourceMapServiceImpl.java
+4
-4
SubjectServiceImpl.java
.../java/com/zzsn/event/service/impl/SubjectServiceImpl.java
+5
-89
SubjectTypeServiceImpl.java
...a/com/zzsn/event/service/impl/SubjectTypeServiceImpl.java
+80
-8
SubjectPage.java
src/main/java/com/zzsn/event/vo/SubjectPage.java
+21
-44
SubjectTypeTreeVO.java
src/main/java/com/zzsn/event/vo/SubjectTypeTreeVO.java
+23
-0
没有找到文件。
src/main/java/com/zzsn/event/controller/SubjectManageController.java
浏览文件 @
a4016ea5
...
...
@@ -142,7 +142,7 @@ public class SubjectManageController {
* @return
*/
@GetMapping
(
value
=
"/listByTypeId"
)
public
Result
<?>
queryPageListByTypeId
(
SubjectCondition
subjectCondition
,
public
Result
<?>
pageList
(
SubjectCondition
subjectCondition
,
@RequestParam
(
name
=
"pageNo"
,
defaultValue
=
"1"
)
Integer
pageNo
,
@RequestParam
(
name
=
"pageSize"
,
defaultValue
=
"10"
)
Integer
pageSize
)
{
IPage
<
SubjectPage
>
pageList
=
subjectService
.
pageList
(
subjectCondition
,
pageNo
,
pageSize
);
...
...
@@ -251,7 +251,7 @@ public class SubjectManageController {
Subject
subject
=
subjectService
.
saveMain
(
subjectPage
);
//插入xxlJob
xxlJobInfoService
.
subjectInsert
(
subject
);
return
Result
.
OK
();
return
Result
.
OK
(
subject
.
getId
()
);
}
/**
...
...
@@ -326,22 +326,6 @@ public class SubjectManageController {
return
Result
.
OK
();
}
/**
* 通过id查询
*
* @param id
* @return
*/
@GetMapping
(
value
=
"/queryById"
)
public
Result
<?>
queryById
(
@RequestParam
(
name
=
"id"
)
String
id
)
{
SubjectPage
subject
=
subjectService
.
getSubjectById
(
id
);
List
<
SubjectPage
>
pageList
=
new
ArrayList
<>();
pageList
.
add
(
subject
);
IPage
<
SubjectPage
>
pageData
=
new
Page
<>(
1
,
10
,
1
);
pageData
.
setRecords
(
pageList
);
return
Result
.
OK
(
pageData
);
}
/**
* 专题直接绑定信息源-批量(专题列表页)
...
...
src/main/java/com/zzsn/event/controller/common/SubjectTypeController.java
浏览文件 @
a4016ea5
...
...
@@ -11,6 +11,7 @@ import com.zzsn.event.util.tree.TreeUtil;
import
com.zzsn.event.util.user.AuthUtil
;
import
com.zzsn.event.util.user.UserVo
;
import
com.zzsn.event.vo.SubjectTreeVO
;
import
com.zzsn.event.vo.SubjectTypeTreeVO
;
import
com.zzsn.event.vo.SubjectTypeVo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -98,7 +99,7 @@ public class SubjectTypeController {
}
/**
* 通过父级id列表查询-专题页左侧异步树
* 通过父级id列表查询-专题页左侧异步树
-----旧
*
* @return
*/
...
...
@@ -109,19 +110,7 @@ public class SubjectTypeController {
}
/**
* 事件和分类树型结构
*
* @author lkg
* @date 2024/4/29
*/
@GetMapping
(
"/eventAndTypeTree"
)
public
Result
<?>
eventAndTypeTree
()
{
List
<
SubjectTreeVO
>
tree
=
subjectTypeService
.
eventAndTypeTree
();
return
Result
.
OK
(
tree
);
}
/**
* 通过父级id列表查询-事件页左侧异步树
* 通过父级id列表查询-事件页左侧异步树---旧
*
* @return
*/
...
...
@@ -131,6 +120,21 @@ public class SubjectTypeController {
return
Result
.
OK
(
allList
);
}
/**
* 专题/事件管理-左侧树----新
*
* @param category 类别(1-专题;2-事件)
* @author lkg
* @date 2025/1/8
*/
@GetMapping
(
"/typeAndBindCountTreeList"
)
public
Result
<?>
typeAndBindCountTreeList
(
Integer
category
){
List
<
SubjectTypeTreeVO
>
treeList
=
subjectTypeService
.
typeAndBindCountTreeList
(
category
);
return
Result
.
OK
(
treeList
);
}
/**
* 专题和分类树型结构-研究中心专题页左侧树
*
...
...
src/main/java/com/zzsn/event/mapper/SubjectTypeMapper.java
浏览文件 @
a4016ea5
...
...
@@ -5,10 +5,12 @@ import com.zzsn.event.entity.SubjectType;
import
com.zzsn.event.util.tree.Node
;
import
com.zzsn.event.vo.SubjectPage
;
import
com.zzsn.event.vo.SubjectTreeVO
;
import
com.zzsn.event.vo.SubjectTypeTreeVO
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Description: 专题类别
...
...
@@ -40,6 +42,15 @@ public interface SubjectTypeMapper extends BaseMapper<SubjectType> {
void
updateTreeNodeStatus
(
@Param
(
"id"
)
String
id
,
@Param
(
"hasChild"
)
String
hasChild
);
/**
* 按分类分组,获取绑定专题/事件数量
*
* @param category 类别(1-专题;2-事件)
* @author lkg
* @date 2025/1/8
*/
List
<
SubjectTypeTreeVO
>
typeBindCountTreeList
(
@Param
(
"category"
)
Integer
category
);
/**
* 根据是否公开获取专题列表
*
* @param facePublic 是否公开(1-是;0-否)
...
...
@@ -55,13 +66,6 @@ public interface SubjectTypeMapper extends BaseMapper<SubjectType> {
* @date 2024/4/29
*/
List
<
SubjectTreeVO
>
subjectAndTypeTree
(
@Param
(
"username"
)
String
createBy
);
/**
* 可用的事件和分类列表
*
* @author lkg
* @date 2024/4/29
*/
List
<
SubjectTreeVO
>
eventAndTypeTree
();
/**
* 获取分类下的专题列表
...
...
src/main/java/com/zzsn/event/mapper/xml/SubjectTypeMapper.xml
浏览文件 @
a4016ea5
...
...
@@ -6,7 +6,7 @@
select s.id, s.type_name as name, s.pid
from subject_type s
where s.category = #{category}
and s.status = 1
and s.status = 1
<if
test=
"username!=null and username != ''"
>
and s.create_by = #{username}
</if>
...
...
@@ -18,9 +18,24 @@
where id = #{id}
</update>
<select
id=
"typeBindCountTreeList"
resultType=
"com.zzsn.event.vo.SubjectTypeTreeVO"
>
SELECT t.id,t.type_name as name,t.pid,count(m.type_id) as subjectCount,t.create_time
FROM subject_type t
inner join `subject_type_map` m on t.id = m.type_id
<if
test=
"category != null and category == 1"
>
left join subject s on m.subject_id = s.id
</if>
<if
test=
"category != null and category == 2"
>
left join event s on m.subject_id = s.id
</if>
where t.category = #{category}
group by m.type_id
order by t.create_time
</select>
<select
id=
"subjectsByFacePublic"
resultType=
"com.zzsn.event.vo.SubjectTreeVO"
>
select s.id,
s.subject_name
as name,
s.subject_name as name,
'true' as ynSubject,
s.time_enable as start_time,
s.time_disable as end_time
...
...
@@ -75,37 +90,6 @@
order by x.create_time desc
</select>
<select
id=
"eventAndTypeTree"
resultType=
"com.zzsn.event.vo.SubjectTreeVO"
>
select x.*
from (
select s.id,
s.type_name as name,
s.pid,
'false' as ynSubject,
null as startTime,
null as endTime,
s.create_time
from subject_type s
where s.category = 2
and s.status = 1
union
select n.id, n.name, m.id as pid, 'true' as ynSubject, n.start_time, n.end_time, n.create_time
from (
select s.id, s.type_name as name, s.pid
from subject_type s
where s.category = 2
and s.status = 1
) m
inner join subject_type_map stm on m.id = stm.type_id
inner join
(
select s.id, s.event_name as name, s.start_time, s.end_time, s.create_time
from event s
where s.status = 1
) n on stm.subject_id = n.id
) x
order by x.create_time desc
</select>
<select
id=
"subjectListByType"
resultType=
"com.zzsn.event.vo.SubjectPage"
>
SELECT a.*
...
...
@@ -124,7 +108,7 @@
</select>
<select
id=
"eventListByType"
resultType=
"com.zzsn.event.vo.SubjectPage"
>
SELECT a.
*
SELECT a.
id, a.event_name as subject_name,
FROM event a
INNER JOIN subject_type_map b ON a.id = b.subject_id
WHERE b.type_id = #{subjectTypeId}
...
...
src/main/java/com/zzsn/event/service/ISubjectTypeService.java
浏览文件 @
a4016ea5
...
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import
com.zzsn.event.entity.SubjectType
;
import
com.zzsn.event.util.tree.Node
;
import
com.zzsn.event.vo.SubjectTreeVO
;
import
com.zzsn.event.vo.SubjectTypeTreeVO
;
import
com.zzsn.event.vo.SubjectTypeVo
;
import
java.util.List
;
...
...
@@ -103,10 +104,11 @@ public interface ISubjectTypeService extends IService<SubjectType> {
List
<
SubjectTypeVo
>
eventListByType
(
String
parentId
);
/**
*
可用的事件和分类列表
*
专题/事件 分类信息树型结构,包含绑定的专题/事件数量
*
* @param category 类别(1-专题;2-事件)
* @author lkg
* @date 202
4/4/29
* @date 202
5/1/8
*/
List
<
SubjectT
reeVO
>
eventAndTypeTree
(
);
List
<
SubjectT
ypeTreeVO
>
typeAndBindCountTreeList
(
Integer
category
);
}
src/main/java/com/zzsn/event/service/impl/SubjectInfoSourceMapServiceImpl.java
浏览文件 @
a4016ea5
...
...
@@ -77,7 +77,7 @@ public class SubjectInfoSourceMapServiceImpl extends ServiceImpl<SubjectInfoSour
List
<
String
>
excludeIdList
=
subjectPage
.
getExcludeInfoSourceIds
();
List
<
SubjectInfoSourceMap
>
mapList
=
new
ArrayList
<>();
/*定向组list*/
List
<
String
>
directionaIds
=
subjectPage
.
getDirection
a
Ids
();
List
<
String
>
directionaIds
=
subjectPage
.
getDirectionIds
();
//判断是否全部绑定
if
(
subjectPage
.
getYnAll
())
{
//获取所有的信息源组
...
...
@@ -206,7 +206,7 @@ public class SubjectInfoSourceMapServiceImpl extends ServiceImpl<SubjectInfoSour
List
<
String
>
deleteInfoSourceIds
=
subjectPage
.
getInfoSourceIds
();
List
<
String
>
deleteExcludeInfoSourceIds
=
subjectPage
.
getExcludeInfoSourceIds
();
//定向信息源组
List
<
String
>
direction
aIds
=
subjectPage
.
getDirectiona
Ids
();
List
<
String
>
direction
Ids
=
subjectPage
.
getDirection
Ids
();
if
(
deleteInfoSourceIds
!=
null
&&
!
deleteInfoSourceIds
.
isEmpty
())
{
baseMapper
.
deleteInfoSourceIds
(
subjectPage
.
getId
(),
deleteInfoSourceIds
,
BindTypeEnum
.
INFO_SOURCE_GROUP
.
getvalue
());
//获取该信息源组绑定的id
...
...
@@ -242,8 +242,8 @@ public class SubjectInfoSourceMapServiceImpl extends ServiceImpl<SubjectInfoSour
if
(
deleteExcludeInfoSourceIds
!=
null
&&
deleteExcludeInfoSourceIds
.
size
()
>
0
)
{
baseMapper
.
deleteInfoSourceIds
(
subjectPage
.
getId
(),
deleteExcludeInfoSourceIds
,
BindTypeEnum
.
EXCLUDE_INFO_SOURCE_GROUP
.
getvalue
());
}
if
(
direction
aIds
!=
null
&&
directiona
Ids
.
size
()
>
0
)
{
baseMapper
.
deleteInfoSourceIds
(
subjectPage
.
getId
(),
direction
a
Ids
,
BindTypeEnum
.
DIRECTIONA_INFO_SOURCE_GROUP
.
getvalue
());
if
(
direction
Ids
!=
null
&&
direction
Ids
.
size
()
>
0
)
{
baseMapper
.
deleteInfoSourceIds
(
subjectPage
.
getId
(),
directionIds
,
BindTypeEnum
.
DIRECTIONA_INFO_SOURCE_GROUP
.
getvalue
());
}
}
...
...
src/main/java/com/zzsn/event/service/impl/SubjectServiceImpl.java
浏览文件 @
a4016ea5
...
...
@@ -111,27 +111,21 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
List
<
SubjectPage
>
records
=
pageList
.
getRecords
();
if
(
CollUtil
.
isNotEmpty
(
records
))
{
List
<
String
>
idList
=
records
.
stream
().
map
(
SubjectPage:
:
getId
).
collect
(
Collectors
.
toList
());
Map
<
String
,
Integer
>
infoSourceNumMap
=
new
HashMap
<>();
//按专题分组,统计绑定关键词组的数量
Map
<
String
,
Integer
>
keyWordsNumMap
=
commonService
.
bindKeyWordsCountList
(
idList
).
stream
().
collect
(
Collectors
.
toMap
(
SubjectPage:
:
getId
,
SubjectPage:
:
getKeyWordsNum
));
//按专题分组,统计绑定信息源的数量
Map
<
String
,
List
<
SubjectSourceVO
>>
collect
=
commonService
.
bindSourceList
(
idList
).
stream
().
collect
(
Collectors
.
groupingBy
(
SubjectSourceVO:
:
getSubjectId
));
Map
<
String
,
Integer
>
infoSourceNumMap
=
new
HashMap
<>();
for
(
Map
.
Entry
<
String
,
List
<
SubjectSourceVO
>>
entry
:
collect
.
entrySet
())
{
String
subjectId
=
entry
.
getKey
();
List
<
SubjectSourceVO
>
value
=
entry
.
getValue
();
infoSourceNumMap
.
put
(
subjectId
,
value
.
size
());
}
List
<
Integer
>
checkStatus
=
new
ArrayList
<>();
checkStatus
.
add
(
0
);
Map
<
String
,
Integer
>
unCheckCountMap
=
subjectInfoCountMap
(
idList
,
checkStatus
);
Map
<
String
,
Integer
>
subjectInfoCountMap
=
subjectInfoCountMap
(
idList
,
null
);
//查询每个专题绑定的信息源数量及关键词数量
for
(
SubjectPage
subjectPage1
:
records
)
{
int
keyWordsNum
=
null
==
keyWordsNumMap
.
get
(
subjectPage1
.
getId
())
?
0
:
keyWordsNumMap
.
get
(
subjectPage1
.
getId
());
int
infoSourceNum
=
null
==
infoSourceNumMap
.
get
(
subjectPage1
.
getId
())
?
0
:
infoSourceNumMap
.
get
(
subjectPage1
.
getId
());
//查询每个专题现有的信息数量
int
subjectInfoCount
=
null
==
subjectInfoCountMap
.
get
(
subjectPage1
.
getId
())
?
0
:
subjectInfoCountMap
.
get
(
subjectPage1
.
getId
());
int
unCheckCount
=
null
==
unCheckCountMap
.
get
(
subjectPage1
.
getId
())
?
0
:
unCheckCountMap
.
get
(
subjectPage1
.
getId
());
subjectPage1
.
setUnCheckNum
(
unCheckCount
);
subjectPage1
.
setSubjectInfoNum
(
subjectInfoCount
);
subjectPage1
.
setInfoSourceNum
(
infoSourceNum
);
subjectPage1
.
setKeyWordsNum
(
keyWordsNum
);
}
...
...
@@ -195,7 +189,7 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
saveMapMain
(
subject
,
subjectPage
);
//判断专题状态是否启用(启用时控制xxljob调度启动,关闭时控制xxljob关闭),随着状态的改变发消息给python
if
(!
subject
.
getStatus
().
equals
(
oldSubject
.
getStatus
())
&&
1
==
subjectPage
.
getSubjectType
()
)
{
if
(!
subject
.
getStatus
().
equals
(
oldSubject
.
getStatus
()))
{
if
(
subject
.
getStatus
()
==
1
)
{
send
(
subject
.
getId
(),
"1"
);
}
else
if
(
subject
.
getStatus
()
==
0
)
{
...
...
@@ -248,16 +242,8 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
List
<
String
>
subjectIds
=
new
ArrayList
<>();
subjectIds
.
add
(
subjectPage
.
getId
());
int
infoSourceNum
=
infoSourceService
.
bindSourceCount
(
subjectIds
);
//查询每个专题现有的信息数量
int
subjectInfoCount
=
subjectInfoCount
(
subjectPage
.
getId
(),
null
);
//未审核资讯
List
<
Integer
>
checkStatus
=
new
ArrayList
<>();
checkStatus
.
add
(
0
);
int
unCheckCount
=
subjectInfoCount
(
subjectId
,
checkStatus
);
subjectPage
.
setSubjectInfoNum
(
subjectInfoCount
);
subjectPage
.
setInfoSourceNum
(
infoSourceNum
);
subjectPage
.
setKeyWordsNum
(
keyWordsNum
);
subjectPage
.
setUnCheckNum
(
unCheckCount
);
return
subjectPage
;
}
...
...
@@ -634,75 +620,5 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
}
}
//查询每个专题的数量
private
Map
<
String
,
Integer
>
subjectInfoCountMap
(
List
<
String
>
subjectIdList
,
List
<
Integer
>
checkStatusList
)
{
String
[]
indexs
=
EsIndexUtil
.
getIndexLatelyTwoYear
(
Constants
.
SUBJECT_INDEX
);
SearchRequest
searchRequest
=
new
SearchRequest
(
indexs
);
SearchSourceBuilder
searchSourceBuilder
=
new
SearchSourceBuilder
();
//默认最大数量是10000,设置为true后,显示准确数量
searchSourceBuilder
.
trackTotalHits
(
true
);
//创建查询对象
BoolQueryBuilder
boolQuery
=
QueryBuilders
.
boolQuery
();
boolQuery
.
must
(
QueryBuilders
.
termsQuery
(
"subjectId.keyword"
,
subjectIdList
));
//默认查询没删除的
boolQuery
.
must
(
QueryBuilders
.
matchQuery
(
"deleteFlag"
,
0
));
if
(
checkStatusList
!=
null
&&
!
checkStatusList
.
isEmpty
())
{
boolQuery
.
must
(
QueryBuilders
.
termsQuery
(
"checkStatus"
,
checkStatusList
));
}
searchSourceBuilder
.
query
(
boolQuery
);
//分组
TermsAggregationBuilder
aggregationBuilder
=
AggregationBuilders
.
terms
(
"group_subjectId"
).
field
(
"subjectId.keyword"
);
searchSourceBuilder
.
aggregation
(
aggregationBuilder
);
//不返回文本内容
searchSourceBuilder
.
fetchSource
(
false
);
searchRequest
.
source
(
searchSourceBuilder
);
Map
<
String
,
Integer
>
map
=
new
HashMap
<>(
subjectIdList
.
size
());
try
{
SearchResponse
searchResponse
=
client
.
search
(
searchRequest
,
RequestOptions
.
DEFAULT
);
//获取分组桶
Aggregations
aggregations
=
searchResponse
.
getAggregations
();
//获取id分组集合
Terms
parsedStringTerms
=
aggregations
.
get
(
"group_subjectId"
);
List
<?
extends
Terms
.
Bucket
>
buckets
=
parsedStringTerms
.
getBuckets
();
for
(
Terms
.
Bucket
bucket
:
buckets
)
{
String
subjectId
=
bucket
.
getKeyAsString
();
long
collectCount
=
bucket
.
getDocCount
();
map
.
put
(
subjectId
,
(
int
)
collectCount
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
map
;
}
//查询每个专题的数量
private
Integer
subjectInfoCount
(
String
subjectId
,
List
<
Integer
>
checkStatusList
)
{
int
count
=
0
;
String
[]
indexs
=
EsIndexUtil
.
getIndexLatelyTwoYear
(
Constants
.
SUBJECT_INDEX
);
SearchRequest
searchRequest
=
new
SearchRequest
(
indexs
);
SearchSourceBuilder
searchSourceBuilder
=
new
SearchSourceBuilder
();
//默认最大数量是10000,设置为true后,显示准确数量
searchSourceBuilder
.
trackTotalHits
(
true
);
searchSourceBuilder
.
size
(
0
);
//创建查询对象
BoolQueryBuilder
boolQuery
=
QueryBuilders
.
boolQuery
();
boolQuery
.
must
(
QueryBuilders
.
termQuery
(
"subjectId.keyword"
,
subjectId
));
//默认查询没删除的
boolQuery
.
must
(
QueryBuilders
.
matchQuery
(
"deleteFlag"
,
0
));
if
(
checkStatusList
!=
null
&&
!
checkStatusList
.
isEmpty
())
{
boolQuery
.
must
(
QueryBuilders
.
termsQuery
(
"checkStatus"
,
checkStatusList
));
}
searchSourceBuilder
.
query
(
boolQuery
);
searchRequest
.
source
(
searchSourceBuilder
);
try
{
SearchResponse
searchResponse
=
client
.
search
(
searchRequest
,
RequestOptions
.
DEFAULT
);
TotalHits
totalHits
=
searchResponse
.
getHits
().
getTotalHits
();
count
=
(
int
)
totalHits
.
value
;
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
return
count
;
}
}
src/main/java/com/zzsn/event/service/impl/SubjectTypeServiceImpl.java
浏览文件 @
a4016ea5
...
...
@@ -13,6 +13,7 @@ import com.zzsn.event.util.tree.TreeUtil;
import
com.zzsn.event.util.user.AuthUtil
;
import
com.zzsn.event.vo.SubjectPage
;
import
com.zzsn.event.vo.SubjectTreeVO
;
import
com.zzsn.event.vo.SubjectTypeTreeVO
;
import
com.zzsn.event.vo.SubjectTypeVo
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -118,13 +119,86 @@ public class SubjectTypeServiceImpl extends ServiceImpl<SubjectTypeMapper, Subje
}
@Override
public
List
<
SubjectTreeVO
>
eventAndTypeTree
()
{
List
<
SubjectTreeVO
>
tree
=
new
ArrayList
<>();
List
<
SubjectTreeVO
>
subjectTreeVOS
=
baseMapper
.
eventAndTypeTree
();
if
(
CollectionUtils
.
isNotEmpty
(
subjectTreeVOS
))
{
tree
=
TreeUtil
.
tree
(
subjectTreeVOS
,
"0"
);
public
List
<
SubjectTypeTreeVO
>
typeAndBindCountTreeList
(
Integer
category
)
{
List
<
SubjectTypeTreeVO
>
resultList
=
new
ArrayList
<>();
LambdaQueryWrapper
<
SubjectType
>
queryWrapper
=
Wrappers
.
lambdaQuery
();
queryWrapper
.
eq
(
SubjectType:
:
getCategory
,
category
).
orderByAsc
(
SubjectType:
:
getCreateTime
);
List
<
SubjectType
>
allList
=
list
(
queryWrapper
);
if
(
CollectionUtils
.
isNotEmpty
(
allList
))
{
//绑定专题/事件的分类
List
<
SubjectTypeTreeVO
>
subjectTypeTreeVOS
=
baseMapper
.
typeBindCountTreeList
(
category
);
if
(
CollectionUtils
.
isNotEmpty
(
subjectTypeTreeVOS
))
{
List
<
String
>
collect
=
subjectTypeTreeVOS
.
stream
().
map
(
SubjectTypeTreeVO:
:
getId
).
collect
(
Collectors
.
toList
());
//补充未绑定专题的分类
for
(
SubjectType
subjectType
:
allList
)
{
if
(!
collect
.
contains
(
subjectType
.
getId
()))
{
SubjectTypeTreeVO
subjectTypeTreeVO
=
new
SubjectTypeTreeVO
();
subjectTypeTreeVO
.
setId
(
subjectType
.
getId
());
subjectTypeTreeVO
.
setName
(
subjectType
.
getTypeName
());
subjectTypeTreeVO
.
setPid
(
subjectType
.
getPid
());
subjectTypeTreeVO
.
setSubjectCount
(
0
);
subjectTypeTreeVO
.
setCreateTime
(
subjectType
.
getCreateTime
());
subjectTypeTreeVOS
.
add
(
subjectTypeTreeVO
);
}
}
//构造树型结构
resultList
=
TreeUtil
.
tree
(
subjectTypeTreeVOS
,
"0"
);
//递归统计绑定专题的数量
for
(
SubjectTypeTreeVO
treeVO
:
resultList
)
{
recursionSum
(
treeVO
);
}
}
else
{
List
<
SubjectTypeTreeVO
>
list
=
new
ArrayList
<>();
allList
.
forEach
(
e
->{
SubjectTypeTreeVO
subjectTypeTreeVO
=
new
SubjectTypeTreeVO
();
subjectTypeTreeVO
.
setId
(
e
.
getId
());
subjectTypeTreeVO
.
setName
(
e
.
getTypeName
());
subjectTypeTreeVO
.
setPid
(
e
.
getPid
());
subjectTypeTreeVO
.
setSubjectCount
(
0
);
subjectTypeTreeVO
.
setCreateTime
(
e
.
getCreateTime
());
list
.
add
(
subjectTypeTreeVO
);
});
resultList
=
TreeUtil
.
tree
(
list
,
"0"
);
}
resultList
.
sort
(
Comparator
.
comparing
(
SubjectTypeTreeVO:
:
getCreateTime
));
}
return
tree
;
return
resultList
;
}
/**
* 递归获取所有子节点绑定专题数量总和,并赋值给当前节点
*
* @param treeVO 当前节点
* @author lkg
* @date 2025/1/8
*/
void
recursionSum
(
SubjectTypeTreeVO
treeVO
)
{
Integer
subjectCount
=
treeVO
.
getSubjectCount
();
int
sum
=
getBelowSubjectCount
(
treeVO
);
treeVO
.
setSubjectCount
(
subjectCount
+
sum
);
if
(
treeVO
.
getChildren
()
!=
null
&&
!
treeVO
.
getChildren
().
isEmpty
())
{
for
(
SubjectTypeTreeVO
child
:
(
List
<
SubjectTypeTreeVO
>)
treeVO
.
getChildren
())
{
recursionSum
(
child
);
}
}
}
/**
* 递归获取所有子节点绑定专题数量总和
*
* @param treeVO 当前节点
* @author lkg
* @date 2025/1/8
*/
private
int
getBelowSubjectCount
(
SubjectTypeTreeVO
treeVO
){
int
sum
=
0
;
if
(
treeVO
.
getChildren
()
!=
null
&&
!
treeVO
.
getChildren
().
isEmpty
())
{
for
(
SubjectTypeTreeVO
child
:
(
List
<
SubjectTypeTreeVO
>)
treeVO
.
getChildren
())
{
sum
+=
child
.
getSubjectCount
();
sum
+=
getBelowSubjectCount
(
child
);
}
}
return
sum
;
}
@Override
...
...
@@ -142,7 +216,6 @@ public class SubjectTypeServiceImpl extends ServiceImpl<SubjectTypeMapper, Subje
subjectTypeVo2
.
setTypeName
(
subjectPage
.
getSubjectName
());
subjectTypeVo2
.
setPid
(
subjectTypeVo1
.
getId
());
subjectTypeVo2
.
setIsSubject
(
true
);
subjectTypeVo2
.
setSubjectType
(
subjectPage
.
getSubjectType
());
list
.
add
(
subjectTypeVo2
);
}
}
...
...
@@ -206,7 +279,6 @@ public class SubjectTypeServiceImpl extends ServiceImpl<SubjectTypeMapper, Subje
subjectTypeVo2
.
setTypeName
(
subjectPage
.
getSubjectName
());
subjectTypeVo2
.
setPid
(
subjectTypeVo1
.
getId
());
subjectTypeVo2
.
setIsSubject
(
true
);
subjectTypeVo2
.
setSubjectType
(
subjectPage
.
getSubjectType
());
list
.
add
(
subjectTypeVo2
);
}
}
...
...
src/main/java/com/zzsn/event/vo/SubjectPage.java
浏览文件 @
a4016ea5
...
...
@@ -7,6 +7,7 @@ import lombok.Data;
import
org.jeecgframework.poi.excel.annotation.Excel
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -42,14 +43,6 @@ public class SubjectPage {
@Excel
(
name
=
"父级节点"
,
width
=
15
)
@ApiModelProperty
(
value
=
"父级节点"
)
private
String
pid
;
/**图片策略*/
@Excel
(
name
=
"图片策略"
,
width
=
15
,
dicCode
=
"clb_save_policy"
)
@ApiModelProperty
(
value
=
"图片策略"
)
private
String
picturePolicy
;
/**网页策略*/
@Excel
(
name
=
"网页策略"
,
width
=
15
,
dicCode
=
"clb_save_policy"
)
@ApiModelProperty
(
value
=
"网页策略"
)
private
String
pagePolicy
;
/**状态*/
@Excel
(
name
=
"状态"
,
width
=
15
,
dicCode
=
"clb_subject_status"
)
@ApiModelProperty
(
value
=
"状态"
)
...
...
@@ -63,13 +56,13 @@ public class SubjectPage {
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@ApiModelProperty
(
value
=
"启用时间"
)
private
java
.
util
.
Date
timeEnable
;
private
Date
timeEnable
;
/**停用时间*/
@Excel
(
name
=
"停用时间"
,
width
=
15
,
format
=
"yyyy-MM-dd"
)
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@ApiModelProperty
(
value
=
"停用时间"
)
private
java
.
util
.
Date
timeDisable
;
private
Date
timeDisable
;
/**划分专题库*/
@Excel
(
name
=
"划分专题库"
,
width
=
15
,
dicCode
=
"Thematic_Library"
)
@ApiModelProperty
(
value
=
"划分专题库"
)
...
...
@@ -94,6 +87,15 @@ public class SubjectPage {
@Excel
(
name
=
"是否有子节点"
,
width
=
15
,
dicCode
=
"yn"
)
@ApiModelProperty
(
value
=
"是否有子节点"
)
private
String
hasChild
;
/**所属客户*/
private
String
customerId
;
/**专题信息所在es库名称*/
private
String
esIndex
;
/**排序号*/
private
Integer
sortOrder
;
/**备注
*/
private
String
remark
;
/**创建人*/
@ApiModelProperty
(
value
=
"创建人"
)
private
String
createBy
;
...
...
@@ -118,16 +120,16 @@ public class SubjectPage {
private
Integer
infoSourceNum
;
/**关键词数量*/
private
Integer
keyWordsNum
;
/**专题信息数量*/
private
Integer
subjectInfoNum
;
/**未审核专题信息数量*/
private
Integer
unCheckNum
;
/**绑定的信息源组list*/
@ApiModelProperty
(
value
=
"信息源组list"
)
private
List
<
String
>
infoSourceIds
;
/**排除的信息源组list*/
@ApiModelProperty
(
value
=
"信息源组list"
)
private
List
<
String
>
excludeInfoSourceIds
;
/**定向组list*/
private
List
<
String
>
directionIds
;
/**关键词组list*/
@ApiModelProperty
(
value
=
"关键词组id list"
)
private
List
<
String
>
keyWordsIds
;
...
...
@@ -149,34 +151,9 @@ public class SubjectPage {
@ApiModelProperty
(
value
=
"绑定的模型种类(1:去重模型 2:筛选模型 3:标签模型)"
)
private
String
type
;
private
String
address
;
/**所属客户*/
private
String
customerId
;
private
List
<
Map
<
String
,
Object
>>
warningTag
;
/**专题类别(1:通用专题 2:事件专题)*/
private
Integer
subjectType
;
/**专题信息所在es库名称*/
private
String
esIndex
;
/**定向组list*/
private
List
<
String
>
directionaIds
;
/**排序号*/
private
Integer
sortOrder
;
/**企业数据类型[0-研报;1-年报;2-动态;3-公告]*/
private
String
additionDataType
;
private
String
enterpriseCheck
;
/**备注
*/
private
String
remark
;
/**任务id
*/
private
String
taskId
;
/**任务code
*/
/**任务code*/
private
String
taskCode
;
/**
类型(1:专题 2:事件)
*/
/**
分类(1-专题;2-事件)
*/
private
Integer
category
;
}
src/main/java/com/zzsn/event/vo/SubjectTypeTreeVO.java
0 → 100644
浏览文件 @
a4016ea5
package
com
.
zzsn
.
event
.
vo
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.zzsn.event.util.tree.Node
;
import
lombok.Data
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
/**
* 专题/事件分类树对象
*
* @author lkg
* @date 2025/1/8
*/
@Data
public
class
SubjectTypeTreeVO
extends
Node
{
/**绑定专题/事件数量*/
private
Integer
subjectCount
;
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
private
Date
createTime
;
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论