提交 9ede6a63 作者: obcy

【支持事件专题】

上级 64a6b71a
......@@ -619,8 +619,8 @@ public class EsService {
*/
public IPage<EventDataVO> collectPageList(InfoDataSearchCondition eventDataCondition) {
String index = Constants.COLLECT_INDEX;
Subject byId = subjectService.getSubjectOrEventById(eventDataCondition.getSubjectId());
if ("1".equals(eventDataCondition.getIsSubject())) {
Subject byId = subjectService.getSubjectOrEventById(eventDataCondition.getSubjectId());
//更新开始、结束时间
if (byId.getTimeEnable() != null) {
String timeEnable = DateUtil.format(byId.getTimeEnable(), "yyyy-MM-dd");
......@@ -699,8 +699,10 @@ public class EsService {
infoSourceIdList.addAll(wordsIdList);
}
//装配信息源的条件
if (CollectionUtils.isNotEmpty(infoSourceIdList)) {
if (!StrUtil.contains(byId.getDataScope(),"1") && CollectionUtils.isNotEmpty(infoSourceIdList)) {
boolQuery.must(QueryBuilders.termsQuery("sid", infoSourceIdList.stream().filter(StringUtils::isNotEmpty).collect(Collectors.toList())));
} else if (StrUtil.contains(byId.getDataScope(),"1")) {
} else {
return new Page<>();
}
......
......@@ -27,67 +27,193 @@
</update>
<select id="subjectRealBindInfoSourceList" resultType="String">
select distinct a.source_id from
(select distinct x.source_id from (
select m.source_id from subject_info_source_map n
inner join info_source_group_map m on n.source_id = m.group_id
where n.type in(2,5)
SELECT
distinct x.id
FROM
(
SELECT
iso.id
FROM
subject_info_source_map sm
INNER JOIN info_source iso ON sm.source_id = iso.id
WHERE
sm.type IN ( 1, 6 )
<if test="subjectIds != null and subjectIds.size() > 0">
and n.subject_id in
and sm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
union
select sm.source_id from subject_info_source_map sm where sm.type in(1,6)
</if> UNION
SELECT
iso.id
FROM
subject_info_source_map sm
INNER JOIN info_source_main im ON im.id = sm.source_id
INNER JOIN info_source iso ON im.id = iso.info_source_id
WHERE
sm.type IN ( 31, 36 )
<if test="subjectIds != null and subjectIds.size() > 0">
and sm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
union
select m.entity_code as source_id from subject_info_source_map n
inner join clb_label_info_source_map m on n.source_id = m.label_code and n.source_item_id = m.label_item_code
where n.type in(12,15)
</if> UNION
SELECT
iso.id
FROM
subject_info_source_map sim
INNER JOIN info_source_group_map m ON m.group_id = sim.source_id
INNER JOIN info_source iso ON m.source_id = iso.id
WHERE
sim.type IN ( 2, 5 )
<if test="subjectIds != null and subjectIds.size() > 0">
and sim.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if> UNION
SELECT
iso.id
FROM
subject_info_source_map sim
INNER JOIN info_source_main_group_map m ON m.group_id = sim.source_id
INNER JOIN info_source_main im ON im.id = m.source_id
INNER JOIN info_source iso ON im.id = iso.info_source_id
WHERE
sim.type IN ( 32, 35 )
<if test="subjectIds != null and subjectIds.size() > 0">
and n.subject_id in
and sim.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if> UNION
SELECT
isoo.id
FROM
subject_info_source_map smm
INNER JOIN clb_label_info_source_map lam ON smm.source_id = lam.label_code
AND smm.source_item_id = lam.label_item_code
INNER JOIN info_source isoo ON lam.entity_code = isoo.id
WHERE
smm.type IN ( 12, 15 )
<if test="subjectIds != null and subjectIds.size() > 0">
and smm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if> UNION
SELECT
isoo.id
FROM
subject_info_source_map smm
INNER JOIN clb_label_main_source_map lam ON smm.source_id = lam.label_code
AND smm.source_item_id = lam.label_item_code
INNER JOIN info_source_main im ON lam.entity_code = im.id
INNER JOIN info_source isoo ON im.id = isoo.info_source_id
WHERE
smm.type IN ( 312, 315 )
<if test="subjectIds != null and subjectIds.size() > 0">
and smm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
) x) a LEFT JOIN
(select distinct x.source_id from (
select m.source_id from subject_info_source_map n
inner join info_source_group_map m on n.source_id = m.group_id
where n.type = 4
) x
WHERE
1 = 1
AND x.id NOT IN (
SELECT DISTINCT
y.source_id
FROM
(
SELECT
m.source_id
FROM
info_source_group_map m
WHERE
m.group_id IN ( SELECT source_id FROM subject_info_source_map WHERE type = 4
<if test="subjectIds != null and subjectIds.size() > 0">
and n.subject_id in
and subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
union
select sm.source_id from subject_info_source_map sm where sm.type = 3
GROUP BY source_id ) UNION
SELECT
iso.id
FROM
subject_info_source_map sim
INNER JOIN info_source_main_group_map m ON m.group_id = sim.source_id
INNER JOIN info_source_main im ON im.id = m.source_id
INNER JOIN info_source iso ON im.id = iso.info_source_id
WHERE
sim.type = 34
<if test="subjectIds != null and subjectIds.size() > 0">
and sim.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if> UNION
SELECT
sm.source_id
FROM
subject_info_source_map sm
WHERE
type = 3
<if test="subjectIds != null and subjectIds.size() > 0">
and sm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
union
select m.entity_code as source_id from subject_info_source_map n
inner join clb_label_info_source_map m on n.source_id = m.label_code and n.source_item_id = m.label_item_code
where n.type = 14
</if> UNION
SELECT
iso.id
FROM
subject_info_source_map sm
INNER JOIN info_source_main im ON im.id = sm.source_id
INNER JOIN info_source iso ON im.id = iso.info_source_id
WHERE
sm.type = 33
<if test="subjectIds != null and subjectIds.size() > 0">
and n.subject_id in
and sm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if> UNION
SELECT
isoo.id
FROM
subject_info_source_map smm
INNER JOIN clb_label_info_source_map lam ON smm.source_id = lam.label_code
AND smm.source_item_id = lam.label_item_code
INNER JOIN info_source isoo ON lam.entity_code = isoo.id
WHERE
smm.type = 14
<if test="subjectIds != null and subjectIds.size() > 0">
and smm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if> UNION
SELECT
isoo.id
FROM
subject_info_source_map smm
INNER JOIN clb_label_main_source_map lam ON smm.source_id = lam.label_code
AND smm.source_item_id = lam.label_item_code
INNER JOIN info_source_main im ON lam.entity_code = im.id
INNER JOIN info_source isoo ON im.id = isoo.info_source_id
WHERE
smm.type = 314
<if test="subjectIds != null and subjectIds.size() > 0">
and smm.subject_id in
<foreach collection="subjectIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
) x) b
on (a.source_id = b.source_id)
where b.source_id is null
) y
)
</select>
<select id="subjectRealBindInfoSources" resultType="com.zzsn.event.vo.SubjectStatisticsVo">
......
......@@ -1526,6 +1526,8 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
subject.setTimeDisable(one.getEndTime());
subject.setDataScope(one.getDataScope());
subject.setFirstOpenTime(one.getFirstOpenTime());
subject.setStatus(one.getStatus());
}
}
if (ObjectUtil.isEmpty(subject)){
......@@ -1566,6 +1568,8 @@ public class SubjectServiceImpl extends ServiceImpl<SubjectMapper, Subject> impl
subject.setTimeDisable(one.getEndTime());
subject.setDataScope(one.getDataScope());
subject.setFirstOpenTime(one.getFirstOpenTime());
subject.setStatus(one.getStatus());
}
}
if (ObjectUtil.isEmpty(subject)){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论