mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 19:51:00 +00:00
Compare commits
1 Commits
9857256488
...
71feb6c4eb
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71feb6c4eb |
@@ -1,27 +1,25 @@
|
||||
package com.tencent.supersonic.common.pojo;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.enums.EventType;
|
||||
import lombok.Getter;
|
||||
import org.springframework.context.ApplicationEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Getter
|
||||
public class DataEvent extends ApplicationEvent {
|
||||
|
||||
private List<DataItem> dataItems;
|
||||
private final List<DataItem> dataItems;
|
||||
|
||||
private EventType eventType;
|
||||
private final EventType eventType;
|
||||
|
||||
public DataEvent(Object source, List<DataItem> dataItems, EventType eventType) {
|
||||
private final String userName;
|
||||
|
||||
public DataEvent(Object source, List<DataItem> dataItems, EventType eventType, String userName) {
|
||||
super(source);
|
||||
this.dataItems = dataItems;
|
||||
this.eventType = eventType;
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public List<DataItem> getDataItems() {
|
||||
return dataItems;
|
||||
}
|
||||
|
||||
public EventType getEventType() {
|
||||
return eventType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ public interface DimensionService {
|
||||
|
||||
List<DimValueMap> mockDimensionValueAlias(DimensionReq dimensionReq, User user);
|
||||
|
||||
void sendDimensionEventBatch(List<Long> modelIds, EventType eventType);
|
||||
void sendDimensionEventBatch(List<Long> modelIds, EventType eventType, User user);
|
||||
|
||||
DataEvent getAllDataEvents();
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ public interface MetricService {
|
||||
|
||||
MetricQueryDefaultConfig getMetricQueryDefaultConfig(Long metricId, User user);
|
||||
|
||||
void sendMetricEventBatch(List<Long> modelIds, EventType eventType);
|
||||
void sendMetricEventBatch(List<Long> modelIds, EventType eventType, User user);
|
||||
|
||||
List<MetricResp> queryMetrics(MetricsFilter metricsFilter);
|
||||
|
||||
|
||||
@@ -8,7 +8,10 @@ import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tencent.supersonic.common.pojo.*;
|
||||
import com.tencent.supersonic.common.pojo.DataEvent;
|
||||
import com.tencent.supersonic.common.pojo.DataItem;
|
||||
import com.tencent.supersonic.common.pojo.ModelRela;
|
||||
import com.tencent.supersonic.common.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.EventType;
|
||||
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
|
||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||
@@ -22,14 +25,22 @@ import com.tencent.supersonic.headless.api.pojo.request.DimValueAliasReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DimensionReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.*;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.DimensionDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.mapper.DimensionDOMapper;
|
||||
import com.tencent.supersonic.headless.server.persistence.repository.DimensionRepository;
|
||||
import com.tencent.supersonic.headless.server.pojo.DimensionFilter;
|
||||
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
||||
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
||||
import com.tencent.supersonic.headless.server.service.*;
|
||||
import com.tencent.supersonic.headless.server.service.DataSetService;
|
||||
import com.tencent.supersonic.headless.server.service.DatabaseService;
|
||||
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||
import com.tencent.supersonic.headless.server.service.ModelRelaService;
|
||||
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||
import com.tencent.supersonic.headless.server.utils.AliasGenerateHelper;
|
||||
import com.tencent.supersonic.headless.server.utils.DimensionConverter;
|
||||
import com.tencent.supersonic.headless.server.utils.NameCheckUtils;
|
||||
@@ -37,12 +48,16 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.builder.EqualsBuilder;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationEventPublisher;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@@ -50,31 +65,30 @@ import java.util.stream.Collectors;
|
||||
public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, DimensionDO>
|
||||
implements DimensionService {
|
||||
|
||||
private DimensionRepository dimensionRepository;
|
||||
private final DimensionRepository dimensionRepository;
|
||||
|
||||
private ModelService modelService;
|
||||
private final ModelService modelService;
|
||||
|
||||
private AliasGenerateHelper aliasGenerateHelper;
|
||||
private final AliasGenerateHelper aliasGenerateHelper;
|
||||
|
||||
private DatabaseService databaseService;
|
||||
private final DatabaseService databaseService;
|
||||
|
||||
private ModelRelaService modelRelaService;
|
||||
private final ModelRelaService modelRelaService;
|
||||
|
||||
private DataSetService dataSetService;
|
||||
private final DataSetService dataSetService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ApplicationEventPublisher eventPublisher;
|
||||
private final ApplicationEventPublisher eventPublisher;
|
||||
|
||||
public DimensionServiceImpl(DimensionRepository dimensionRepository, ModelService modelService,
|
||||
AliasGenerateHelper aliasGenerateHelper, DatabaseService databaseService,
|
||||
ModelRelaService modelRelaService, DataSetService dataSetService) {
|
||||
ModelRelaService modelRelaService, DataSetService dataSetService, ApplicationEventPublisher eventPublisher) {
|
||||
this.modelService = modelService;
|
||||
this.dimensionRepository = dimensionRepository;
|
||||
this.aliasGenerateHelper = aliasGenerateHelper;
|
||||
this.databaseService = databaseService;
|
||||
this.modelRelaService = modelRelaService;
|
||||
this.dataSetService = dataSetService;
|
||||
this.eventPublisher = eventPublisher;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,7 +97,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
dimensionReq.createdBy(user.getName());
|
||||
DimensionDO dimensionDO = DimensionConverter.convert2DimensionDO(dimensionReq);
|
||||
dimensionRepository.createDimension(dimensionDO);
|
||||
sendEventBatch(Lists.newArrayList(dimensionDO), EventType.ADD);
|
||||
sendEventBatch(Lists.newArrayList(dimensionDO), EventType.ADD, user);
|
||||
|
||||
// should update modelDetail
|
||||
modelService.updateModelByDimAndMetric(dimensionReq.getModelId(),
|
||||
@@ -154,7 +168,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
modelService.updateModelByDimAndMetric(dimensionReqs.get(0).getModelId(), dimensionReqs,
|
||||
null, user);
|
||||
|
||||
sendEventBatch(dimensionDOS, EventType.ADD);
|
||||
sendEventBatch(dimensionDOS, EventType.ADD, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -170,7 +184,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
Lists.newArrayList(dimensionReq), null, user);
|
||||
|
||||
if (!oldName.equals(dimensionDO.getName())) {
|
||||
sendEvent(getDataItem(dimensionDO), EventType.UPDATE);
|
||||
sendEvent(getDataItem(dimensionDO), EventType.UPDATE, user.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,7 +197,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(dimensionReqList.get(0).getModelId(),
|
||||
dimensionReqList, null, user);
|
||||
sendEventBatch(dimensionDOS, EventType.UPDATE);
|
||||
sendEventBatch(dimensionDOS, EventType.UPDATE, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -205,9 +219,9 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
dimensionRepository.batchUpdateStatus(dimensionDOS);
|
||||
if (StatusEnum.OFFLINE.getCode().equals(metaBatchReq.getStatus())
|
||||
|| StatusEnum.DELETED.getCode().equals(metaBatchReq.getStatus())) {
|
||||
sendEventBatch(dimensionDOS, EventType.DELETE);
|
||||
sendEventBatch(dimensionDOS, EventType.DELETE, user);
|
||||
} else if (StatusEnum.ONLINE.getCode().equals(metaBatchReq.getStatus())) {
|
||||
sendEventBatch(dimensionDOS, EventType.ADD);
|
||||
sendEventBatch(dimensionDOS, EventType.ADD, user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -240,7 +254,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(dimensionDO.getModelId(),
|
||||
Lists.newArrayList(dimensionDO), null);
|
||||
sendEventBatch(Lists.newArrayList(dimensionDO), EventType.DELETE);
|
||||
sendEventBatch(Lists.newArrayList(dimensionDO), EventType.DELETE, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -261,7 +275,7 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(dimensionDOList.get(0).getModelId(),
|
||||
dimensionDOList, null);
|
||||
sendEventBatch(dimensionDOList, EventType.DELETE);
|
||||
sendEventBatch(dimensionDOList, EventType.DELETE, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -462,22 +476,22 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendDimensionEventBatch(List<Long> modelIds, EventType eventType) {
|
||||
public void sendDimensionEventBatch(List<Long> modelIds, EventType eventType, User user) {
|
||||
DimensionFilter dimensionFilter = new DimensionFilter();
|
||||
dimensionFilter.setModelIds(modelIds);
|
||||
List<DimensionDO> dimensionDOS = queryDimension(dimensionFilter);
|
||||
sendEventBatch(dimensionDOS, eventType);
|
||||
sendEventBatch(dimensionDOS, eventType, user);
|
||||
}
|
||||
|
||||
private void sendEventBatch(List<DimensionDO> dimensionDOS, EventType eventType) {
|
||||
DataEvent dataEvent = getDataEvent(dimensionDOS, eventType);
|
||||
private void sendEventBatch(List<DimensionDO> dimensionDOS, EventType eventType, User user) {
|
||||
DataEvent dataEvent = getDataEvent(dimensionDOS, eventType, user.getName());
|
||||
eventPublisher.publishEvent(dataEvent);
|
||||
}
|
||||
|
||||
public DataEvent getAllDataEvents() {
|
||||
DimensionFilter dimensionFilter = new DimensionFilter();
|
||||
List<DimensionDO> dimensionDOS = queryDimension(dimensionFilter);
|
||||
return getDataEvent(dimensionDOS, EventType.ADD);
|
||||
return getDataEvent(dimensionDOS, EventType.ADD, "");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -529,14 +543,14 @@ public class DimensionServiceImpl extends ServiceImpl<DimensionDOMapper, Dimensi
|
||||
.domainId(dimensionResp.getDomainId().toString()).type(TypeEnums.DIMENSION).build();
|
||||
}
|
||||
|
||||
private DataEvent getDataEvent(List<DimensionDO> dimensionDOS, EventType eventType) {
|
||||
private DataEvent getDataEvent(List<DimensionDO> dimensionDOS, EventType eventType, String userName) {
|
||||
List<DataItem> dataItems = dimensionDOS.stream().map(this::getDataItem)
|
||||
.filter(Objects::nonNull).collect(Collectors.toList());
|
||||
return new DataEvent(this, dataItems, eventType);
|
||||
return new DataEvent(this, dataItems, eventType, userName);
|
||||
}
|
||||
|
||||
private void sendEvent(DataItem dataItem, EventType eventType) {
|
||||
eventPublisher.publishEvent(new DataEvent(this, Lists.newArrayList(dataItem), eventType));
|
||||
private void sendEvent(DataItem dataItem, EventType eventType, String userName) {
|
||||
eventPublisher.publishEvent(new DataEvent(this, Lists.newArrayList(dataItem), eventType, userName));
|
||||
}
|
||||
|
||||
private boolean isChange(DimensionReq dimensionReq, DimensionResp dimensionResp) {
|
||||
|
||||
@@ -8,23 +8,61 @@ import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.tencent.supersonic.common.pojo.*;
|
||||
import com.tencent.supersonic.common.pojo.enums.*;
|
||||
import com.tencent.supersonic.common.pojo.Aggregator;
|
||||
import com.tencent.supersonic.common.pojo.DataEvent;
|
||||
import com.tencent.supersonic.common.pojo.DataItem;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.pojo.Filter;
|
||||
import com.tencent.supersonic.common.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||
import com.tencent.supersonic.common.pojo.enums.EventType;
|
||||
import com.tencent.supersonic.common.pojo.enums.QueryType;
|
||||
import com.tencent.supersonic.common.pojo.enums.StatusEnum;
|
||||
import com.tencent.supersonic.common.pojo.enums.TypeEnums;
|
||||
import com.tencent.supersonic.common.util.BeanMapper;
|
||||
import com.tencent.supersonic.common.util.JsonUtil;
|
||||
import com.tencent.supersonic.headless.api.pojo.*;
|
||||
import com.tencent.supersonic.headless.api.pojo.enums.DimensionType;
|
||||
import com.tencent.supersonic.headless.api.pojo.DrillDownDimension;
|
||||
import com.tencent.supersonic.headless.api.pojo.Measure;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetricParam;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetricQueryDefaultConfig;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaElementMatch;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaElementType;
|
||||
import com.tencent.supersonic.headless.api.pojo.SchemaItem;
|
||||
import com.tencent.supersonic.headless.api.pojo.enums.MapModeEnum;
|
||||
import com.tencent.supersonic.headless.api.pojo.enums.MetricDefineType;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.*;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.*;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.MetricBaseReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.MetricReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.PageMetricReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.QueryMapReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.QueryMetricReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DataSetMapInfo;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.MapInfoResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.server.facade.service.ChatLayerService;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.*;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.CollectDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.MetricDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.MetricQueryDefaultConfigDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.mapper.MetricDOMapper;
|
||||
import com.tencent.supersonic.headless.server.persistence.repository.MetricRepository;
|
||||
import com.tencent.supersonic.headless.server.pojo.*;
|
||||
import com.tencent.supersonic.headless.server.service.*;
|
||||
import com.tencent.supersonic.headless.server.utils.*;
|
||||
import com.tencent.supersonic.headless.server.pojo.DimensionsFilter;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetricFilter;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetricsFilter;
|
||||
import com.tencent.supersonic.headless.server.pojo.ModelCluster;
|
||||
import com.tencent.supersonic.headless.server.pojo.ModelFilter;
|
||||
import com.tencent.supersonic.headless.server.service.CollectService;
|
||||
import com.tencent.supersonic.headless.server.service.DataSetService;
|
||||
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||
import com.tencent.supersonic.headless.server.service.MetricService;
|
||||
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||
import com.tencent.supersonic.headless.server.utils.AliasGenerateHelper;
|
||||
import com.tencent.supersonic.headless.server.utils.MetricCheckUtils;
|
||||
import com.tencent.supersonic.headless.server.utils.MetricConverter;
|
||||
import com.tencent.supersonic.headless.server.utils.ModelClusterBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -33,7 +71,18 @@ import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@@ -41,21 +90,21 @@ import java.util.stream.Collectors;
|
||||
public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
implements MetricService {
|
||||
|
||||
private MetricRepository metricRepository;
|
||||
private final MetricRepository metricRepository;
|
||||
|
||||
private ModelService modelService;
|
||||
private final ModelService modelService;
|
||||
|
||||
private DimensionService dimensionService;
|
||||
private final DimensionService dimensionService;
|
||||
|
||||
private AliasGenerateHelper aliasGenerateHelper;
|
||||
private final AliasGenerateHelper aliasGenerateHelper;
|
||||
|
||||
private CollectService collectService;
|
||||
private final CollectService collectService;
|
||||
|
||||
private DataSetService dataSetService;
|
||||
private final DataSetService dataSetService;
|
||||
|
||||
private ApplicationEventPublisher eventPublisher;
|
||||
private final ApplicationEventPublisher eventPublisher;
|
||||
|
||||
private ChatLayerService chatLayerService;
|
||||
private final ChatLayerService chatLayerService;
|
||||
|
||||
public MetricServiceImpl(MetricRepository metricRepository, ModelService modelService,
|
||||
AliasGenerateHelper aliasGenerateHelper, CollectService collectService,
|
||||
@@ -78,7 +127,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
metricReq.createdBy(user.getName());
|
||||
MetricDO metricDO = MetricConverter.convert2MetricDO(metricReq);
|
||||
metricRepository.createMetric(metricDO);
|
||||
sendEventBatch(Lists.newArrayList(metricDO), EventType.ADD);
|
||||
sendEventBatch(Lists.newArrayList(metricDO), EventType.ADD, user);
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(metricReq.getModelId(), null,
|
||||
Lists.newArrayList(metricReq), user);
|
||||
@@ -97,7 +146,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
modelService.updateModelByDimAndMetric(metricReqs.get(0).getModelId(), null, metricReqs,
|
||||
user);
|
||||
|
||||
sendEventBatch(metricDOS, EventType.ADD);
|
||||
sendEventBatch(metricDOS, EventType.ADD, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -163,7 +212,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
DataItem dataItem = getDataItem(metricDO);
|
||||
dataItem.setName(oldName);
|
||||
dataItem.setNewName(metricDO.getName());
|
||||
sendEvent(dataItem, EventType.UPDATE);
|
||||
sendEvent(dataItem, EventType.UPDATE, user);
|
||||
}
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(metricReq.getModelId(), null,
|
||||
@@ -181,7 +230,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
// should update modelDetail as well
|
||||
modelService.updateModelByDimAndMetric(metricReqs.get(0).getModelId(), null, metricReqs,
|
||||
user);
|
||||
sendEventBatch(metricDOS, EventType.UPDATE);
|
||||
sendEventBatch(metricDOS, EventType.UPDATE, user);
|
||||
}
|
||||
|
||||
|
||||
@@ -202,9 +251,9 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
metricRepository.batchUpdateStatus(metricDOS);
|
||||
if (StatusEnum.OFFLINE.getCode().equals(metaBatchReq.getStatus())
|
||||
|| StatusEnum.DELETED.getCode().equals(metaBatchReq.getStatus())) {
|
||||
sendEventBatch(metricDOS, EventType.DELETE);
|
||||
sendEventBatch(metricDOS, EventType.DELETE, user);
|
||||
} else if (StatusEnum.ONLINE.getCode().equals(metaBatchReq.getStatus())) {
|
||||
sendEventBatch(metricDOS, EventType.ADD);
|
||||
sendEventBatch(metricDOS, EventType.ADD, user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,7 +334,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(metricDO.getModelId(), null,
|
||||
Lists.newArrayList(metricDO));
|
||||
sendEventBatch(Lists.newArrayList(metricDO), EventType.DELETE);
|
||||
sendEventBatch(Lists.newArrayList(metricDO), EventType.DELETE, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -306,7 +355,7 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
// should update modelDetail
|
||||
modelService.deleteModelDetailByDimAndMetric(metricDOList.get(0).getModelId(), null,
|
||||
metricDOList);
|
||||
sendEventBatch(metricDOList, EventType.DELETE);
|
||||
sendEventBatch(metricDOList, EventType.DELETE, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -661,11 +710,11 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMetricEventBatch(List<Long> modelIds, EventType eventType) {
|
||||
public void sendMetricEventBatch(List<Long> modelIds, EventType eventType, User user) {
|
||||
MetricFilter metricFilter = new MetricFilter();
|
||||
metricFilter.setModelIds(modelIds);
|
||||
List<MetricDO> metricDOS = queryMetric(metricFilter);
|
||||
sendEventBatch(metricDOS, eventType);
|
||||
sendEventBatch(metricDOS, eventType, user);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -678,22 +727,22 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
|
||||
public DataEvent getDataEvent() {
|
||||
MetricsFilter metricsFilter = new MetricsFilter();
|
||||
List<MetricDO> metricDOS = metricRepository.getMetrics(metricsFilter);
|
||||
return getDataEvent(metricDOS, EventType.ADD);
|
||||
return getDataEvent(metricDOS, EventType.ADD, User.getDefaultUser());
|
||||
}
|
||||
|
||||
private DataEvent getDataEvent(List<MetricDO> metricDOS, EventType eventType) {
|
||||
private DataEvent getDataEvent(List<MetricDO> metricDOS, EventType eventType, User user) {
|
||||
List<DataItem> dataItems = metricDOS.stream().map(this::getDataItem)
|
||||
.filter(Objects::nonNull).collect(Collectors.toList());
|
||||
return new DataEvent(this, dataItems, eventType);
|
||||
return new DataEvent(this, dataItems, eventType, user.getName());
|
||||
}
|
||||
|
||||
private void sendEventBatch(List<MetricDO> metricDOS, EventType eventType) {
|
||||
DataEvent dataEvent = getDataEvent(metricDOS, eventType);
|
||||
private void sendEventBatch(List<MetricDO> metricDOS, EventType eventType, User user) {
|
||||
DataEvent dataEvent = getDataEvent(metricDOS, eventType, user);
|
||||
eventPublisher.publishEvent(dataEvent);
|
||||
}
|
||||
|
||||
private void sendEvent(DataItem dataItem, EventType eventType) {
|
||||
eventPublisher.publishEvent(new DataEvent(this, Lists.newArrayList(dataItem), eventType));
|
||||
private void sendEvent(DataItem dataItem, EventType eventType, User user) {
|
||||
eventPublisher.publishEvent(new DataEvent(this, Lists.newArrayList(dataItem), eventType, user.getName()));
|
||||
}
|
||||
|
||||
private DataItem getDataItem(MetricDO metricDO) {
|
||||
|
||||
@@ -95,7 +95,7 @@ public class ModelServiceImpl implements ModelService {
|
||||
// create or update metric
|
||||
List<MetricReq> metricReqs = ModelConverter.convertMetricList(modelDO);
|
||||
metricService.alterMetricBatch(metricReqs, modelDO.getId(), user);
|
||||
sendEvent(modelDO, EventType.ADD);
|
||||
sendEvent(modelDO, EventType.ADD, user);
|
||||
return ModelConverter.convert(modelDO);
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ public class ModelServiceImpl implements ModelService {
|
||||
// create or update metric
|
||||
List<MetricReq> metricReqs = ModelConverter.convertMetricList(modelDO);
|
||||
metricService.alterMetricBatch(metricReqs, modelDO.getId(), user);
|
||||
sendEvent(modelDO, EventType.UPDATE);
|
||||
sendEvent(modelDO, EventType.UPDATE, user);
|
||||
return ModelConverter.convert(modelDO);
|
||||
}
|
||||
|
||||
@@ -507,14 +507,14 @@ public class ModelServiceImpl implements ModelService {
|
||||
if (StatusEnum.OFFLINE.getCode().equals(metaBatchReq.getStatus())
|
||||
|| StatusEnum.DELETED.getCode().equals(metaBatchReq.getStatus())) {
|
||||
metricService.sendMetricEventBatch(Lists.newArrayList(modelDO.getId()),
|
||||
EventType.DELETE);
|
||||
EventType.DELETE, user);
|
||||
dimensionService.sendDimensionEventBatch(Lists.newArrayList(modelDO.getId()),
|
||||
EventType.DELETE);
|
||||
EventType.DELETE, user);
|
||||
} else if (StatusEnum.ONLINE.getCode().equals(metaBatchReq.getStatus())) {
|
||||
metricService.sendMetricEventBatch(Lists.newArrayList(modelDO.getId()),
|
||||
EventType.ADD);
|
||||
EventType.ADD, user);
|
||||
dimensionService.sendDimensionEventBatch(Lists.newArrayList(modelDO.getId()),
|
||||
EventType.ADD);
|
||||
EventType.ADD, user);
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
modelRepository.batchUpdate(modelDOS);
|
||||
@@ -670,9 +670,9 @@ public class ModelServiceImpl implements ModelService {
|
||||
return false;
|
||||
}
|
||||
|
||||
private void sendEvent(ModelDO modelDO, EventType eventType) {
|
||||
private void sendEvent(ModelDO modelDO, EventType eventType, User user) {
|
||||
DataItem dataItem = getDataItem(modelDO);
|
||||
eventPublisher.publishEvent(new DataEvent(this, Lists.newArrayList(dataItem), eventType));
|
||||
eventPublisher.publishEvent(new DataEvent(this, Lists.newArrayList(dataItem), eventType, user.getName()));
|
||||
}
|
||||
|
||||
private DataItem getDataItem(ModelDO modelDO) {
|
||||
|
||||
Reference in New Issue
Block a user