mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 19:51:00 +00:00
(improvement)(launcher) Optimize Demo to distinguish domain and model sets (#1056)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -37,9 +37,9 @@ public class ParseResultFormatProcessor implements ParseResultProcessor {
|
||||
if (!CollectionUtils.isEmpty(dimensionNames)) {
|
||||
textBuilder.append("**维度:** ").append(String.join(",", dimensionNames));
|
||||
}
|
||||
textBuilder.append("\n**筛选条件:**\n");
|
||||
textBuilder.append("\n\n**筛选条件:** \n");
|
||||
if (parseInfo.getDateInfo() != null) {
|
||||
textBuilder.append("数据时间:").append(parseInfo.getDateInfo().getStartDate()).append("~")
|
||||
textBuilder.append("**数据时间:** ").append(parseInfo.getDateInfo().getStartDate()).append("~")
|
||||
.append(parseInfo.getDateInfo().getEndDate()).append(" ");
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(parseInfo.getDimensionFilters())
|
||||
@@ -47,7 +47,7 @@ public class ParseResultFormatProcessor implements ParseResultProcessor {
|
||||
Set<QueryFilter> queryFilters = parseInfo.getDimensionFilters();
|
||||
queryFilters.addAll(parseInfo.getMetricFilters());
|
||||
for (QueryFilter queryFilter : queryFilters) {
|
||||
textBuilder.append(queryFilter.getName())
|
||||
textBuilder.append("**").append(queryFilter.getName()).append("**")
|
||||
.append(" ")
|
||||
.append(queryFilter.getOperator().getValue())
|
||||
.append(" ")
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package com.tencent.supersonic.headless.api.pojo.request;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.RecordInfo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class CanvasReq {
|
||||
public class CanvasReq extends RecordInfo {
|
||||
|
||||
private Long id;
|
||||
|
||||
@@ -13,14 +12,6 @@ public class CanvasReq {
|
||||
|
||||
private String type;
|
||||
|
||||
private Date createdAt;
|
||||
|
||||
private String createdBy;
|
||||
|
||||
private Date updatedAt;
|
||||
|
||||
private String updatedBy;
|
||||
|
||||
private String config;
|
||||
|
||||
}
|
||||
@@ -48,12 +48,8 @@ public class OnePassSCSqlGenStrategy extends SqlGenStrategy {
|
||||
}
|
||||
);
|
||||
//3.format response.
|
||||
List<String> schemaLinkingResults = llmResults.stream()
|
||||
.map(llmResult -> OutputFormat.getSchemaLinks(llmResult)).collect(Collectors.toList());
|
||||
List<String> candidateSortedList = OutputFormat.formatList(schemaLinkingResults);
|
||||
Pair<String, Map<String, Double>> linkingMap = OutputFormat.selfConsistencyVote(candidateSortedList);
|
||||
List<String> sqlList = llmResults.stream()
|
||||
.map(llmResult -> OutputFormat.getSql(llmResult)).collect(Collectors.toList());
|
||||
.map(OutputFormat::getSql).collect(Collectors.toList());
|
||||
|
||||
Pair<String, Map<String, Double>> sqlMapPair = OutputFormat.selfConsistencyVote(sqlList);
|
||||
|
||||
|
||||
@@ -45,7 +45,6 @@ public class TwoPassSCSqlGenStrategy extends SqlGenStrategy {
|
||||
}
|
||||
);
|
||||
List<String> sortedList = OutputFormat.formatList(linkingResults);
|
||||
Pair<String, Map<String, Double>> linkingMap = OutputFormat.selfConsistencyVote(sortedList);
|
||||
//3.generator sql prompt,and parallel generate response.
|
||||
List<String> sqlPromptPool = promptGenerator.generateSqlPromptPool(llmReq, sortedList, exampleListPool);
|
||||
List<String> sqlTaskPool = new CopyOnWriteArrayList<>();
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
package com.tencent.supersonic.headless.server.persistence.repository;
|
||||
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.CanvasDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CanvasRepository {
|
||||
|
||||
List<CanvasDO> getCanvasList(Long domainId);
|
||||
|
||||
CanvasDO getCanvasById(Long id);
|
||||
|
||||
void deleteCanvas(Long id);
|
||||
|
||||
void createCanvas(CanvasDO canvasDO);
|
||||
|
||||
void updateCanvas(CanvasDO canvasDO);
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.tencent.supersonic.headless.server.persistence.repository.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.CanvasDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.mapper.CanvasDOMapper;
|
||||
import com.tencent.supersonic.headless.server.persistence.repository.CanvasRepository;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class CanvasRepositoryImpl implements CanvasRepository {
|
||||
|
||||
|
||||
private CanvasDOMapper canvasDOMapper;
|
||||
|
||||
public CanvasRepositoryImpl(CanvasDOMapper canvasDOMapper) {
|
||||
this.canvasDOMapper = canvasDOMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CanvasDO> getCanvasList(Long domainId) {
|
||||
QueryWrapper<CanvasDO> wrapper = new QueryWrapper<>();
|
||||
wrapper.lambda().eq(CanvasDO::getDomainId, domainId);
|
||||
return canvasDOMapper.selectList(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CanvasDO getCanvasById(Long id) {
|
||||
return canvasDOMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCanvas(Long id) {
|
||||
canvasDOMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createCanvas(CanvasDO canvasDO) {
|
||||
canvasDOMapper.insert(canvasDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCanvas(CanvasDO canvasDO) {
|
||||
canvasDOMapper.updateById(canvasDO);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -75,8 +75,8 @@ public class SqlInfoProcessor implements ResultProcessor {
|
||||
}
|
||||
SqlInfo sqlInfo = parseInfo.getSqlInfo();
|
||||
if (semanticQuery instanceof LLMSqlQuery) {
|
||||
keyPipelineLog.info("SqlInfoProcessor results:\nParsed S2SQL:{}\nCorrected S2SQL:{}\nFinal SQL:{}", sqlInfo.getS2SQL(),
|
||||
sqlInfo.getCorrectS2SQL(), explainSql);
|
||||
keyPipelineLog.info("SqlInfoProcessor results:\nParsed S2SQL:{}\nCorrected S2SQL:{}\nFinal SQL:{}",
|
||||
sqlInfo.getS2SQL(), sqlInfo.getCorrectS2SQL(), explainSql);
|
||||
}
|
||||
sqlInfo.setQuerySQL(explainSql);
|
||||
}
|
||||
|
||||
@@ -6,7 +6,8 @@ import com.tencent.supersonic.auth.api.authentication.utils.UserHolder;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.CanvasReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.CanvasSchemaResp;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.CanvasDO;
|
||||
import com.tencent.supersonic.headless.server.service.impl.CanvasServiceImpl;
|
||||
import com.tencent.supersonic.headless.server.service.CanvasService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
@@ -23,11 +24,8 @@ import java.util.List;
|
||||
@RequestMapping("/api/semantic/viewInfo")
|
||||
public class CanvasController {
|
||||
|
||||
private CanvasServiceImpl canvasService;
|
||||
|
||||
public CanvasController(CanvasServiceImpl canvasService) {
|
||||
this.canvasService = canvasService;
|
||||
}
|
||||
@Autowired
|
||||
private CanvasService canvasService;
|
||||
|
||||
@PostMapping("/createOrUpdateViewInfo")
|
||||
public CanvasDO createOrUpdateCanvas(@RequestBody CanvasReq canvasReq, HttpServletRequest request,
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.tencent.supersonic.headless.server.service;
|
||||
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.CanvasReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.CanvasSchemaResp;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.CanvasDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CanvasService {
|
||||
|
||||
List<CanvasDO> getCanvasList(Long domainId);
|
||||
|
||||
List<CanvasSchemaResp> getCanvasSchema(Long domainId, User user);
|
||||
|
||||
CanvasDO createOrUpdateCanvas(CanvasReq canvasReq, User user);
|
||||
|
||||
void deleteCanvas(Long id);
|
||||
}
|
||||
@@ -1,49 +1,49 @@
|
||||
package com.tencent.supersonic.headless.server.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tencent.supersonic.auth.api.authentication.pojo.User;
|
||||
import com.tencent.supersonic.common.pojo.enums.AuthType;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.CanvasReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.CanvasSchemaResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DimensionResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.CanvasSchemaResp;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.CanvasDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.repository.CanvasRepository;
|
||||
import com.tencent.supersonic.headless.server.persistence.mapper.CanvasDOMapper;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.server.service.CanvasService;
|
||||
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 org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class CanvasServiceImpl {
|
||||
|
||||
private CanvasRepository canvasRepository;
|
||||
public class CanvasServiceImpl extends ServiceImpl<CanvasDOMapper, CanvasDO> implements CanvasService {
|
||||
|
||||
@Autowired
|
||||
private ModelService modelService;
|
||||
|
||||
@Autowired
|
||||
private DimensionService dimensionService;
|
||||
|
||||
@Autowired
|
||||
private MetricService metricService;
|
||||
|
||||
public CanvasServiceImpl(CanvasRepository canvasRepository, ModelService modelService,
|
||||
MetricService metricService, DimensionService dimensionService) {
|
||||
this.canvasRepository = canvasRepository;
|
||||
this.dimensionService = dimensionService;
|
||||
this.metricService = metricService;
|
||||
this.modelService = modelService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CanvasDO> getCanvasList(Long domainId) {
|
||||
return canvasRepository.getCanvasList(domainId);
|
||||
QueryWrapper<CanvasDO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(CanvasDO::getDomainId, domainId);
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CanvasSchemaResp> getCanvasSchema(Long domainId, User user) {
|
||||
List<CanvasSchemaResp> canvasSchemaResps = Lists.newArrayList();
|
||||
List<ModelResp> modelResps = modelService.getModelListWithAuth(user, domainId, AuthType.ADMIN);
|
||||
@@ -62,28 +62,26 @@ public class CanvasServiceImpl {
|
||||
return canvasSchemaResps;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CanvasDO createOrUpdateCanvas(CanvasReq canvasReq, User user) {
|
||||
if (canvasReq.getId() == null) {
|
||||
canvasReq.createdBy(user.getName());
|
||||
CanvasDO viewInfoDO = new CanvasDO();
|
||||
BeanUtils.copyProperties(canvasReq, viewInfoDO);
|
||||
viewInfoDO.setCreatedAt(new Date());
|
||||
viewInfoDO.setCreatedBy(user.getName());
|
||||
viewInfoDO.setUpdatedAt(new Date());
|
||||
viewInfoDO.setUpdatedBy(user.getName());
|
||||
canvasRepository.createCanvas(viewInfoDO);
|
||||
save(viewInfoDO);
|
||||
return viewInfoDO;
|
||||
}
|
||||
Long id = canvasReq.getId();
|
||||
CanvasDO viewInfoDO = canvasRepository.getCanvasById(id);
|
||||
CanvasDO viewInfoDO = getById(id);
|
||||
canvasReq.updatedBy(user.getName());
|
||||
BeanUtils.copyProperties(canvasReq, viewInfoDO);
|
||||
viewInfoDO.setUpdatedAt(new Date());
|
||||
viewInfoDO.setUpdatedBy(user.getName());
|
||||
canvasRepository.updateCanvas(viewInfoDO);
|
||||
updateById(viewInfoDO);
|
||||
return viewInfoDO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCanvas(Long id) {
|
||||
canvasRepository.deleteCanvas(id);
|
||||
removeById(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,12 +10,10 @@ import com.tencent.supersonic.headless.api.pojo.request.DomainReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.request.DomainUpdateReq;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DomainResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.DataSetResp;
|
||||
import com.tencent.supersonic.headless.server.persistence.dataobject.DomainDO;
|
||||
import com.tencent.supersonic.headless.server.persistence.repository.DomainRepository;
|
||||
import com.tencent.supersonic.headless.server.service.DomainService;
|
||||
import com.tencent.supersonic.headless.server.service.ModelService;
|
||||
import com.tencent.supersonic.headless.server.service.DataSetService;
|
||||
import com.tencent.supersonic.headless.server.utils.DomainConvert;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.assertj.core.util.Sets;
|
||||
@@ -43,17 +41,13 @@ public class DomainServiceImpl implements DomainService {
|
||||
private final DomainRepository domainRepository;
|
||||
private final ModelService modelService;
|
||||
private final UserService userService;
|
||||
private final DataSetService dataSetService;
|
||||
|
||||
|
||||
public DomainServiceImpl(DomainRepository domainRepository,
|
||||
@Lazy ModelService modelService,
|
||||
UserService userService,
|
||||
@Lazy DataSetService dataSetService) {
|
||||
UserService userService) {
|
||||
this.domainRepository = domainRepository;
|
||||
this.modelService = modelService;
|
||||
this.userService = userService;
|
||||
this.dataSetService = dataSetService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -112,11 +106,6 @@ public class DomainServiceImpl implements DomainService {
|
||||
if (!CollectionUtils.isEmpty(modelResps)) {
|
||||
domainWithAuthAll.addAll(getParentDomain(domainIdsFromModel));
|
||||
}
|
||||
List<DataSetResp> dataSetResps = dataSetService.getDataSets(user);
|
||||
if (!CollectionUtils.isEmpty(dataSetResps)) {
|
||||
List<Long> domainIds = dataSetResps.stream().map(DataSetResp::getDomainId).collect(Collectors.toList());
|
||||
domainWithAuthAll.addAll(getParentDomain(domainIds));
|
||||
}
|
||||
for (DomainResp domainResp : domainWithAuthAll) {
|
||||
if (domainIdsFromModel.contains(domainResp.getId())) {
|
||||
domainResp.setHasModel(true);
|
||||
|
||||
@@ -53,15 +53,15 @@ public class S2ArtistDemo extends S2BaseDemo {
|
||||
public void doRun() {
|
||||
try {
|
||||
DomainResp singerDomain = addDomain();
|
||||
DomainResp singerModelSet = addModelSet(singerDomain);
|
||||
TagObjectResp singerTagObject = addTagObjectSinger(singerDomain);
|
||||
ModelResp singerModel = addModel(singerDomain, demoDatabaseResp, singerTagObject);
|
||||
ModelResp singerModel = addModel(singerModelSet, demoDatabaseResp, singerTagObject);
|
||||
addTags(singerModel);
|
||||
long dataSetId = addDataSet(singerDomain, singerModel);
|
||||
long dataSetId = addDataSet(singerDomain, singerModelSet, singerModel);
|
||||
addAgent(dataSetId);
|
||||
} catch (Exception e) {
|
||||
log.error("Failed to add model demo data", e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,6 +98,15 @@ public class S2ArtistDemo extends S2BaseDemo {
|
||||
return domainService.createDomain(domainReq, user);
|
||||
}
|
||||
|
||||
public DomainResp addModelSet(DomainResp singerDomain) {
|
||||
DomainReq domainReq = new DomainReq();
|
||||
domainReq.setName("标签模型集");
|
||||
domainReq.setBizName("singer_info");
|
||||
domainReq.setParentId(singerDomain.getId());
|
||||
domainReq.setStatus(StatusEnum.ONLINE.getCode());
|
||||
return domainService.createDomain(domainReq, user);
|
||||
}
|
||||
|
||||
public ModelResp addModel(DomainResp singerDomain,
|
||||
DatabaseResp s2Database, TagObjectResp singerTagObject) throws Exception {
|
||||
ModelReq modelReq = new ModelReq();
|
||||
@@ -154,14 +163,14 @@ public class S2ArtistDemo extends S2BaseDemo {
|
||||
TagDefineType.METRIC);
|
||||
}
|
||||
|
||||
public long addDataSet(DomainResp singerDomain, ModelResp singerModel) {
|
||||
public long addDataSet(DomainResp singerDomain, DomainResp singerModelSet, ModelResp singerModel) {
|
||||
DataSetReq dataSetReq = new DataSetReq();
|
||||
dataSetReq.setName("艺人库");
|
||||
dataSetReq.setBizName("singer");
|
||||
dataSetReq.setDomainId(singerDomain.getId());
|
||||
dataSetReq.setDescription("包含艺人相关标签和指标信息");
|
||||
dataSetReq.setAdmins(Lists.newArrayList("admin", "jack"));
|
||||
List<DataSetModelConfig> dataSetModelConfigs = getDataSetModelConfigs(singerDomain.getId());
|
||||
List<DataSetModelConfig> dataSetModelConfigs = getDataSetModelConfigs(singerModelSet.getId());
|
||||
DataSetDetail dataSetDetail = new DataSetDetail();
|
||||
dataSetDetail.setDataSetModelConfigs(dataSetModelConfigs);
|
||||
dataSetReq.setDataSetDetail(dataSetDetail);
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.tencent.supersonic.headless.api.pojo.response.MetricResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.ModelResp;
|
||||
import com.tencent.supersonic.headless.api.pojo.response.ParseResp;
|
||||
import com.tencent.supersonic.headless.server.pojo.MetaFilter;
|
||||
import com.tencent.supersonic.headless.server.service.CanvasService;
|
||||
import com.tencent.supersonic.headless.server.service.DataSetService;
|
||||
import com.tencent.supersonic.headless.server.service.DatabaseService;
|
||||
import com.tencent.supersonic.headless.server.service.DimensionService;
|
||||
@@ -83,6 +84,8 @@ public abstract class S2BaseDemo implements CommandLineRunner {
|
||||
protected AgentService agentService;
|
||||
@Autowired
|
||||
protected SysParameterService sysParameterService;
|
||||
@Autowired
|
||||
protected CanvasService canvasService;
|
||||
@Value("${s2.demo.names:S2VisitsDemo}")
|
||||
protected List<String> demoList;
|
||||
@Value("${s2.demo.enableLLM:true}")
|
||||
|
||||
@@ -80,14 +80,15 @@ public class S2VisitsDemo extends S2BaseDemo {
|
||||
try {
|
||||
// create domain
|
||||
DomainResp s2Domain = addDomain();
|
||||
DomainResp s2ModelSet = addModelSet(s2Domain);
|
||||
TagObjectResp s2TagObject = addTagObjectUser(s2Domain);
|
||||
|
||||
// create models
|
||||
ModelResp userModel = addModel_1(s2Domain, demoDatabaseResp, s2TagObject);
|
||||
ModelResp pvUvModel = addModel_2(s2Domain, demoDatabaseResp);
|
||||
ModelResp stayTimeModel = addModel_3(s2Domain, demoDatabaseResp);
|
||||
addModelRela_1(s2Domain, userModel, pvUvModel);
|
||||
addModelRela_2(s2Domain, userModel, stayTimeModel);
|
||||
ModelResp userModel = addModel_1(s2ModelSet, demoDatabaseResp, s2TagObject);
|
||||
ModelResp pvUvModel = addModel_2(s2ModelSet, demoDatabaseResp);
|
||||
ModelResp stayTimeModel = addModel_3(s2ModelSet, demoDatabaseResp);
|
||||
addModelRela_1(s2ModelSet, userModel, pvUvModel);
|
||||
addModelRela_2(s2ModelSet, userModel, stayTimeModel);
|
||||
addTags(userModel);
|
||||
|
||||
//create metrics and dimensions
|
||||
@@ -103,7 +104,7 @@ public class S2VisitsDemo extends S2BaseDemo {
|
||||
updateMetric_pv(pvUvModel, departmentDimension, userDimension, metricPv);
|
||||
|
||||
//create data set
|
||||
DataSetResp s2DataSet = addDataSet(s2Domain);
|
||||
DataSetResp s2DataSet = addDataSet(s2Domain, s2ModelSet);
|
||||
addAuthGroup_1(stayTimeModel);
|
||||
addAuthGroup_2(stayTimeModel);
|
||||
|
||||
@@ -189,9 +190,16 @@ public class S2VisitsDemo extends S2BaseDemo {
|
||||
domainReq.setParentId(0L);
|
||||
domainReq.setStatus(StatusEnum.ONLINE.getCode());
|
||||
domainReq.setViewers(Arrays.asList("admin", "tom"));
|
||||
domainReq.setViewOrgs(Collections.singletonList("1"));
|
||||
domainReq.setAdmins(Arrays.asList("admin", "jack"));
|
||||
domainReq.setAdminOrgs(Collections.emptyList());
|
||||
return domainService.createDomain(domainReq, user);
|
||||
}
|
||||
|
||||
public DomainResp addModelSet(DomainResp s2Domain) {
|
||||
DomainReq domainReq = new DomainReq();
|
||||
domainReq.setName("埋点模型集");
|
||||
domainReq.setBizName("visit_info");
|
||||
domainReq.setParentId(s2Domain.getId());
|
||||
domainReq.setStatus(StatusEnum.ONLINE.getCode());
|
||||
return domainService.createDomain(domainReq, user);
|
||||
}
|
||||
|
||||
@@ -451,14 +459,14 @@ public class S2VisitsDemo extends S2BaseDemo {
|
||||
return metricService.createMetric(metricReq, user);
|
||||
}
|
||||
|
||||
public DataSetResp addDataSet(DomainResp s2Domain) {
|
||||
public DataSetResp addDataSet(DomainResp s2Domain, DomainResp s2ModelSet) {
|
||||
DataSetReq dataSetReq = new DataSetReq();
|
||||
dataSetReq.setName("超音数");
|
||||
dataSetReq.setBizName("s2");
|
||||
dataSetReq.setDomainId(s2Domain.getId());
|
||||
dataSetReq.setDescription("包含超音数访问统计相关的指标和维度等");
|
||||
dataSetReq.setAdmins(Lists.newArrayList("admin"));
|
||||
List<DataSetModelConfig> dataSetModelConfigs = getDataSetModelConfigs(s2Domain.getId());
|
||||
List<DataSetModelConfig> dataSetModelConfigs = getDataSetModelConfigs(s2ModelSet.getId());
|
||||
DataSetDetail dataSetDetail = new DataSetDetail();
|
||||
dataSetDetail.setDataSetModelConfigs(dataSetModelConfigs);
|
||||
dataSetReq.setDataSetDetail(dataSetDetail);
|
||||
|
||||
@@ -48,7 +48,7 @@ public class QueryByMetricTest extends BaseTest {
|
||||
Assert.assertNotNull(queryResp.getResultList());
|
||||
Assert.assertEquals(6, queryResp.getResultList().size());
|
||||
|
||||
queryMetricReq.setDomainId(2L);
|
||||
queryMetricReq.setDomainId(3L);
|
||||
queryMetricReq.setMetricNames(Arrays.asList("stay_hours", "pv"));
|
||||
queryMetricReq.setDimensionNames(Arrays.asList("user_name", "department"));
|
||||
assertThrows(IllegalArgumentException.class,
|
||||
|
||||
@@ -22,7 +22,7 @@ public class SchemaAuthTest extends BaseTest {
|
||||
private DomainService domainService;
|
||||
|
||||
@Autowired
|
||||
private DataSetService viewService;
|
||||
private DataSetService dataSetService;
|
||||
|
||||
@Autowired
|
||||
private ModelService modelService;
|
||||
@@ -31,63 +31,64 @@ public class SchemaAuthTest extends BaseTest {
|
||||
public void test_getDomainList_alice() {
|
||||
User user = DataUtils.getUserAlice();
|
||||
List<DomainResp> domainResps = domainService.getDomainListWithAdminAuth(user);
|
||||
List<Long> expectedDomainIds = Lists.newArrayList(1L, 2L);
|
||||
Assertions.assertEquals(expectedDomainIds,
|
||||
domainResps.stream().map(DomainResp::getId).collect(Collectors.toList()));
|
||||
List<String> expectedDomainBizNames = Lists.newArrayList("supersonic", "visit_info", "singer", "singer_info");
|
||||
Assertions.assertEquals(expectedDomainBizNames,
|
||||
domainResps.stream().map(DomainResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_getModelList_alice() {
|
||||
User user = DataUtils.getUserAlice();
|
||||
List<ModelResp> modelResps = modelService.getModelListWithAuth(user, null, AuthType.ADMIN);
|
||||
List<Long> expectedModelIds = Lists.newArrayList(1L, 4L);
|
||||
Assertions.assertEquals(expectedModelIds,
|
||||
modelResps.stream().map(ModelResp::getId).collect(Collectors.toList()));
|
||||
List<String> expectedModelBizNames = Lists.newArrayList("user_department", "singer");
|
||||
Assertions.assertEquals(expectedModelBizNames,
|
||||
modelResps.stream().map(ModelResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_getVisibleModelList_alice() {
|
||||
User user = DataUtils.getUserAlice();
|
||||
List<ModelResp> modelResps = modelService.getModelListWithAuth(user, null, AuthType.VISIBLE);
|
||||
List<Long> expectedModelIds = Lists.newArrayList(1L, 4L);
|
||||
Assertions.assertEquals(expectedModelIds,
|
||||
modelResps.stream().map(ModelResp::getId).collect(Collectors.toList()));
|
||||
List<String> expectedModelBizNames = Lists.newArrayList("user_department", "singer");
|
||||
Assertions.assertEquals(expectedModelBizNames,
|
||||
modelResps.stream().map(ModelResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_getViewList_alice() {
|
||||
public void test_getDataSetList_alice() {
|
||||
User user = DataUtils.getUserAlice();
|
||||
List<DataSetResp> modelResps = viewService.getDataSetsInheritAuth(user, 0L);
|
||||
List<Long> expectedViewIds = Lists.newArrayList(2L);
|
||||
Assertions.assertEquals(expectedViewIds,
|
||||
modelResps.stream().map(DataSetResp::getId).collect(Collectors.toList()));
|
||||
List<DataSetResp> dataSetResps = dataSetService.getDataSetsInheritAuth(user, 0L);
|
||||
List<String> expectedDataSetBizNames = Lists.newArrayList("singer");
|
||||
Assertions.assertEquals(expectedDataSetBizNames,
|
||||
dataSetResps.stream().map(DataSetResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_getDomainList_jack() {
|
||||
User user = DataUtils.getUserJack();
|
||||
List<DomainResp> domainResps = domainService.getDomainListWithAdminAuth(user);
|
||||
List<Long> expectedDomainIds = Lists.newArrayList(1L, 2L);
|
||||
Assertions.assertEquals(expectedDomainIds,
|
||||
domainResps.stream().map(DomainResp::getId).collect(Collectors.toList()));
|
||||
List<String> expectedDomainBizNames = Lists.newArrayList("supersonic", "visit_info");
|
||||
Assertions.assertEquals(expectedDomainBizNames,
|
||||
domainResps.stream().map(DomainResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_getModelList_jack() {
|
||||
User user = DataUtils.getUserJack();
|
||||
List<ModelResp> modelResps = modelService.getModelListWithAuth(user, null, AuthType.ADMIN);
|
||||
List<Long> expectedModelIds = Lists.newArrayList(1L, 2L, 3L);
|
||||
Assertions.assertEquals(expectedModelIds,
|
||||
modelResps.stream().map(ModelResp::getId).collect(Collectors.toList()));
|
||||
List<String> expectedModelBizNames = Lists.newArrayList("user_department",
|
||||
"s2_pv_uv_statis", "s2_stay_time_statis");
|
||||
Assertions.assertEquals(expectedModelBizNames,
|
||||
modelResps.stream().map(ModelResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test_getViewList_jack() {
|
||||
public void test_getDataSetList_jack() {
|
||||
User user = DataUtils.getUserJack();
|
||||
List<DataSetResp> modelResps = viewService.getDataSetsInheritAuth(user, 0L);
|
||||
List<Long> expectedViewIds = Lists.newArrayList(1L, 2L);
|
||||
Assertions.assertEquals(expectedViewIds,
|
||||
modelResps.stream().map(DataSetResp::getId).collect(Collectors.toList()));
|
||||
List<DataSetResp> dataSetResps = dataSetService.getDataSetsInheritAuth(user, 0L);
|
||||
List<String> expectedDataSetBizNames = Lists.newArrayList("s2", "singer");
|
||||
Assertions.assertEquals(expectedDataSetBizNames,
|
||||
dataSetResps.stream().map(DataSetResp::getBizName).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user