Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@ List<Map<String, Object>> dimListNodeRelationsByKeyValueMap(
List<Map<String, Object>> getNodeRelationsByLabels(
@Param("labels") List<PersistenceLabel> labels);

List<Map<String, Object>> getNodeRelationsByLabelIds(@Param("labelIds") List<Integer> labelIds);

/**
* 通过instance信息,同时返回instance信息和label信息
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -298,11 +298,21 @@ public Map<PersistenceLabel, List<ServiceInstance>> getNodeRelationsByLabels(
if (PersistenceUtils.persistenceLabelListIsEmpty(persistenceLabels))
return Collections.emptyMap();
try {
/*Map<String, Map<String, String>> keyValueMap = PersistenceUtils.filterEmptyPersistenceLabelList(persistenceLabels).stream().collect(Collectors.toMap(PersistenceLabel::getLabelKey, PersistenceLabel::getValue));
String dimType = Label.ValueRelation.ALL.name();
List<Map<String, Object>> nodeRelationsByLabels = labelManagerMapper.dimListNodeRelationsByKeyValueMap(keyValueMap, dimType);*/
// Step 1: 逐个通过 label_key + label_value 查询 label ID(走唯一索引,每次1行)
List<Integer> labelIds = new ArrayList<>();
for (PersistenceLabel label : persistenceLabels) {
PersistenceLabel dbLabel =
labelManagerMapper.getLabelByKeyValue(label.getLabelKey(), label.getStringValue());
if (dbLabel != null) {
labelIds.add(dbLabel.getId());
}
}
if (labelIds.isEmpty()) {
return Collections.emptyMap();
}
// Step 2: 用 label ID 列表查询关联关系(走主键 + idx_lid_instance 索引)
List<Map<String, Object>> nodeRelationsByLabels =
labelManagerMapper.getNodeRelationsByLabels(persistenceLabels);
labelManagerMapper.getNodeRelationsByLabelIds(labelIds);
List<Tunple<PersistenceLabel, ServiceInstance>> arrays =
new ArrayList<Tunple<PersistenceLabel, ServiceInstance>>();
for (Map<String, Object> nodeRelationsByLabel : nodeRelationsByLabels) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,24 @@
</foreach>
</select>

<select id="getNodeRelationsByLabelIds" resultType="java.util.HashMap">
SELECT
l.id,
l.label_value_size AS 'labelValueSize',
l.label_key AS 'labelKey',
l.label_value AS 'stringValue',
si.instance,
si.name AS 'applicationName'
FROM
linkis_cg_manager_label l
INNER JOIN linkis_cg_manager_label_service_instance lsi ON l.id = lsi.label_id
INNER JOIN linkis_cg_manager_service_instance si ON si.instance = lsi.service_instance
WHERE l.id IN
<foreach collection="labelIds" item="labelId" open="(" close=")" separator=",">
#{labelId}
</foreach>
</select>

<select id="listResourceByLaBelId"
resultType="org.apache.linkis.manager.common.entity.persistence.PersistenceResource">
SELECT r.* FROM linkis_cg_manager_label_resource lr, linkis_cg_manager_linkis_resources r,
Expand Down
Loading