(improvement)(launcher) Optimize Demo to distinguish domain and model sets (#1056)

Co-authored-by: jolunoluo
This commit is contained in:
LXW
2024-05-30 19:39:23 +08:00
committed by GitHub
parent aedabd24f7
commit b4bc92e586
16 changed files with 118 additions and 173 deletions

View File

@@ -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(" ")

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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<>();

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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);
}

View File

@@ -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,

View File

@@ -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);
}

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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}")

View File

@@ -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);

View File

@@ -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,

View File

@@ -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()));
}
}