diff --git a/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/pojo/Organization.java b/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/pojo/Organization.java index a72870955..fc909c9f1 100644 --- a/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/pojo/Organization.java +++ b/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/pojo/Organization.java @@ -1,11 +1,15 @@ package com.tencent.supersonic.auth.api.authentication.pojo; import com.google.common.collect.Lists; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @Data +@AllArgsConstructor +@NoArgsConstructor public class Organization { private String id; diff --git a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/adaptor/DefaultUserAdaptor.java b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/adaptor/DefaultUserAdaptor.java index 81bf282e0..41d600098 100644 --- a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/adaptor/DefaultUserAdaptor.java +++ b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/adaptor/DefaultUserAdaptor.java @@ -44,7 +44,17 @@ public class DefaultUserAdaptor implements UserAdaptor { @Override public List getOrganizationTree() { - return Lists.newArrayList(); + Organization superSonic = new Organization("1", "0", + "Supersonic", "SuperSonic", Lists.newArrayList(), true); + Organization hr = new Organization("2", "1", + "Hr", "Supersonic/Hr", Lists.newArrayList(), false); + Organization sales = new Organization("3", "1", + "Sales", "Supersonic/Sales", Lists.newArrayList(), false); + Organization marketing = new Organization("4", "1", + "Marketing", "Supersonic/Marketing", Lists.newArrayList(), false); + List subOrganization = Lists.newArrayList(hr, sales, marketing); + superSonic.setSubOrganizations(subOrganization); + return Lists.newArrayList(superSonic); } private User convert(UserDO userDO) { diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/FieldParam.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/FieldParam.java index 054969b82..4e796fb81 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/FieldParam.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/FieldParam.java @@ -1,10 +1,12 @@ package com.tencent.supersonic.headless.api.pojo; -import lombok.Builder; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; @Data -@Builder +@NoArgsConstructor +@AllArgsConstructor public class FieldParam { private String fieldName; diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/Identify.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/Identify.java index f6d68f48d..81c7e645d 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/Identify.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/Identify.java @@ -22,12 +22,21 @@ public class Identify { private List entityNames; + private Integer isCreateDimension = 0; + public Identify(String name, String type, String bizName) { this.name = name; this.type = type; this.bizName = bizName; } + public Identify(String name, String type, String bizName, Integer isCreateDimension) { + this.name = name; + this.type = type; + this.bizName = bizName; + this.isCreateDimension = isCreateDimension; + } + public String getFieldName() { return bizName; } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java index 8c89541cc..d585a39b2 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/request/QueryStructReq.java @@ -12,10 +12,6 @@ import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.common.util.DateModeUtils; import com.tencent.supersonic.common.util.SqlFilterUtils; import com.tencent.supersonic.common.util.jsqlparser.SqlParserAddHelper; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; import lombok.Data; import lombok.extern.slf4j.Slf4j; import net.sf.jsqlparser.JSQLParserException; @@ -39,6 +35,11 @@ import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.util.Strings; import org.springframework.util.CollectionUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + @Data @Slf4j @@ -248,7 +249,7 @@ public class QueryStructReq extends SemanticQueryReq { //6.Set where List dimensionFilters = queryStructReq.getDimensionFilters(); SqlFilterUtils sqlFilterUtils = ContextUtils.getBean(SqlFilterUtils.class); - String whereClause = sqlFilterUtils.getWhereClause(dimensionFilters, false); + String whereClause = sqlFilterUtils.getWhereClause(dimensionFilters); String sql = select.toString(); if (StringUtils.isNotBlank(whereClause)) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java index 85f8b42c8..649d51e04 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DownloadServiceImpl.java @@ -16,6 +16,7 @@ import com.tencent.supersonic.headless.api.request.BatchDownloadReq; import com.tencent.supersonic.headless.api.request.DownloadStructReq; import com.tencent.supersonic.headless.api.enums.SemanticType; import com.tencent.supersonic.headless.api.request.ModelSchemaFilterReq; +import com.tencent.supersonic.headless.api.request.QuerySqlReq; import com.tencent.supersonic.headless.api.response.DimSchemaResp; import com.tencent.supersonic.headless.api.response.DimensionResp; import com.tencent.supersonic.headless.api.response.MetricResp; @@ -72,7 +73,8 @@ public class DownloadServiceImpl implements DownloadService { String fileName = String.format("%s_%s.xlsx", "supersonic", DateUtils.format(new Date(), DateUtils.FORMAT)); File file = FileUtils.createTmpFile(fileName); try { - SemanticQueryResp queryResult = queryService.queryByStructWithAuth(downloadStructReq, user); + QuerySqlReq querySqlReq = downloadStructReq.convert(downloadStructReq); + SemanticQueryResp queryResult = (SemanticQueryResp) queryService.queryBySql(querySqlReq, user); DataDownload dataDownload = buildDataDownload(queryResult, downloadStructReq); EasyExcel.write(file).sheet("Sheet1").head(dataDownload.getHeaders()).doWrite(dataDownload.getData()); } catch (RuntimeException e) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java index c27ed2ee6..06d796bb5 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelConverter.java @@ -7,7 +7,6 @@ import com.tencent.supersonic.common.pojo.enums.StatusEnum; import com.tencent.supersonic.common.util.BeanMapper; import com.tencent.supersonic.common.util.JsonUtil; import com.tencent.supersonic.headless.api.enums.DimensionType; -import com.tencent.supersonic.headless.api.enums.IdentifyType; import com.tencent.supersonic.headless.api.enums.MetricDefineType; import com.tencent.supersonic.headless.api.enums.SemanticType; import com.tencent.supersonic.headless.api.pojo.Dim; @@ -153,18 +152,38 @@ public class ModelConverter { && !dim.getType().equalsIgnoreCase(DimensionType.time.name()); } + private static boolean isCreateDimension(Identify identify) { + return identify.getIsCreateDimension() == 1 + && StringUtils.isNotBlank(identify.getName()); + } + private static boolean isCreateMetric(Measure measure) { return measure.getIsCreateMetric() == 1 && StringUtils.isNotBlank(measure.getName()); } public static List getDimToCreateDimension(ModelDetail modelDetail) { + if (CollectionUtils.isEmpty(modelDetail.getDimensions())) { + return Lists.newArrayList(); + } return modelDetail.getDimensions().stream() .filter(ModelConverter::isCreateDimension) .collect(Collectors.toList()); } + public static List getIdentityToCreateDimension(ModelDetail modelDetail) { + if (CollectionUtils.isEmpty(modelDetail.getIdentifiers())) { + return Lists.newArrayList(); + } + return modelDetail.getIdentifiers().stream() + .filter(ModelConverter::isCreateDimension) + .collect(Collectors.toList()); + } + public static List getMeasureToCreateMetric(ModelDetail modelDetail) { + if (CollectionUtils.isEmpty(modelDetail.getMeasures())) { + return Lists.newArrayList(); + } return modelDetail.getMeasures().stream() .filter(ModelConverter::isCreateMetric) .collect(Collectors.toList()); @@ -179,13 +198,11 @@ public class ModelConverter { dimensionReqs = dims.stream().filter(dim -> StringUtils.isNotBlank(dim.getName())) .map(dim -> convert(dim, modelDO)).collect(Collectors.toList()); } - List identifies = modelDetail.getIdentifiers(); + List identifies = getIdentityToCreateDimension(modelDetail); if (CollectionUtils.isEmpty(identifies)) { return dimensionReqs; } dimensionReqs.addAll(identifies.stream() - .filter(i -> i.getType().equalsIgnoreCase(IdentifyType.primary.name())) - .filter(i -> StringUtils.isNotBlank(i.getName())) .map(identify -> convert(identify, modelDO)).collect(Collectors.toList())); return dimensionReqs; } diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/ChatDemoLoader.java b/launchers/standalone/src/main/java/com/tencent/supersonic/ChatDemoLoader.java index 9fa3c0573..55aa579a9 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/ChatDemoLoader.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/ChatDemoLoader.java @@ -31,10 +31,6 @@ import com.tencent.supersonic.common.pojo.SysParameter; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.common.service.SysParameterService; import com.tencent.supersonic.common.util.JsonUtil; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; @@ -43,6 +39,11 @@ import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + @Component @Slf4j @Order(3) @@ -185,7 +186,7 @@ public class ChatDemoLoader implements CommandLineRunner { ChatDetailConfigReq chatDetailConfig = new ChatDetailConfigReq(); ChatDefaultConfigReq chatDefaultConfigDetail = new ChatDefaultConfigReq(); - List dimensionIds0 = Collections.singletonList(3L); + List dimensionIds0 = new ArrayList<>(); List metricIds0 = Arrays.asList(1L, 2L); chatDefaultConfigDetail.setDimensionIds(dimensionIds0); chatDefaultConfigDetail.setMetricIds(metricIds0); @@ -198,7 +199,7 @@ public class ChatDemoLoader implements CommandLineRunner { ChatAggConfigReq chatAggConfig = new ChatAggConfigReq(); ChatDefaultConfigReq chatDefaultConfigAgg = new ChatDefaultConfigReq(); - List dimensionIds1 = Arrays.asList(3L); + List dimensionIds1 = new ArrayList<>(); List metricIds1 = Arrays.asList(1L, 2L); chatDefaultConfigAgg.setDimensionIds(dimensionIds1); chatDefaultConfigAgg.setMetricIds(metricIds1); @@ -224,8 +225,8 @@ public class ChatDemoLoader implements CommandLineRunner { ChatDetailConfigReq chatDetailConfig = new ChatDetailConfigReq(); ChatDefaultConfigReq chatDefaultConfigDetail = new ChatDefaultConfigReq(); - List dimensionIds0 = Arrays.asList(4L, 5L); - List metricIds0 = Arrays.asList(3L); + List dimensionIds0 = Collections.singletonList(3L); + List metricIds0 = Collections.singletonList(4L); chatDefaultConfigDetail.setDimensionIds(dimensionIds0); chatDefaultConfigDetail.setMetricIds(metricIds0); chatDefaultConfigDetail.setUnit(7); @@ -237,8 +238,8 @@ public class ChatDemoLoader implements CommandLineRunner { ChatAggConfigReq chatAggConfig = new ChatAggConfigReq(); ChatDefaultConfigReq chatDefaultConfigAgg = new ChatDefaultConfigReq(); - List dimensionIds1 = Arrays.asList(4L, 5L); - List metricIds1 = Arrays.asList(3L); + List dimensionIds1 = Collections.singletonList(3L); + List metricIds1 = Collections.singletonList(4L); chatDefaultConfigAgg.setDimensionIds(dimensionIds1); chatDefaultConfigAgg.setMetricIds(metricIds1); chatDefaultConfigAgg.setUnit(7); @@ -263,8 +264,8 @@ public class ChatDemoLoader implements CommandLineRunner { ChatDetailConfigReq chatDetailConfig = new ChatDetailConfigReq(); ChatDefaultConfigReq chatDefaultConfigDetail = new ChatDefaultConfigReq(); - List dimensionIds0 = Arrays.asList(6L, 7L, 8L, 9L); - List metricIds0 = Arrays.asList(4L); + List dimensionIds0 = Arrays.asList(4L, 5L, 6L, 7L); + List metricIds0 = Arrays.asList(5L); chatDefaultConfigDetail.setDimensionIds(dimensionIds0); chatDefaultConfigDetail.setMetricIds(metricIds0); chatDefaultConfigDetail.setUnit(7); @@ -276,8 +277,8 @@ public class ChatDemoLoader implements CommandLineRunner { ChatAggConfigReq chatAggConfig = new ChatAggConfigReq(); ChatDefaultConfigReq chatDefaultConfigAgg = new ChatDefaultConfigReq(); - List dimensionIds1 = Arrays.asList(6L, 7L, 8L, 9L); - List metricIds1 = Arrays.asList(4L); + List dimensionIds1 = Arrays.asList(4L, 4L, 6L, 7L); + List metricIds1 = Arrays.asList(5L); chatDefaultConfigAgg.setDimensionIds(dimensionIds1); chatDefaultConfigAgg.setMetricIds(metricIds1); chatDefaultConfigAgg.setUnit(7); diff --git a/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java b/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java index 082aa58a8..56c2980f0 100644 --- a/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java +++ b/launchers/standalone/src/main/java/com/tencent/supersonic/ModelDemoDataLoader.java @@ -19,6 +19,7 @@ import com.tencent.supersonic.headless.api.enums.MetricDefineType; import com.tencent.supersonic.headless.api.enums.SemanticType; import com.tencent.supersonic.headless.api.pojo.Dim; import com.tencent.supersonic.headless.api.pojo.DimensionTimeTypeParams; +import com.tencent.supersonic.headless.api.pojo.DrillDownDimension; import com.tencent.supersonic.headless.api.pojo.Field; import com.tencent.supersonic.headless.api.pojo.FieldParam; import com.tencent.supersonic.headless.api.pojo.Identify; @@ -29,6 +30,7 @@ import com.tencent.supersonic.headless.api.pojo.MetricDefineByMeasureParams; import com.tencent.supersonic.headless.api.pojo.MetricDefineByMetricParams; import com.tencent.supersonic.headless.api.pojo.MetricParam; import com.tencent.supersonic.headless.api.pojo.ModelDetail; +import com.tencent.supersonic.headless.api.pojo.RelateDimension; import com.tencent.supersonic.headless.api.request.DatabaseReq; import com.tencent.supersonic.headless.api.request.DimensionReq; import com.tencent.supersonic.headless.api.request.DomainReq; @@ -88,6 +90,7 @@ public class ModelDemoDataLoader { addModel_4(); updateDimension(); updateMetric(); + updateMetric_pv(); addAuthGroup_1(); addAuthGroup_2(); } catch (Exception e) { @@ -140,7 +143,7 @@ public class ModelDemoDataLoader { modelReq.setAdminOrgs(Collections.emptyList()); ModelDetail modelDetail = new ModelDetail(); List identifiers = new ArrayList<>(); - identifiers.add(new Identify("用户", IdentifyType.primary.name(), "user_name")); + identifiers.add(new Identify("用户", IdentifyType.primary.name(), "user_name", 1)); modelDetail.setIdentifiers(identifiers); List dimensions = new ArrayList<>(); @@ -171,7 +174,7 @@ public class ModelDemoDataLoader { modelReq.setAdminOrgs(Collections.emptyList()); List identifiers = new ArrayList<>(); ModelDetail modelDetail = new ModelDetail(); - identifiers.add(new Identify("用户名", IdentifyType.primary.name(), "s2_pv_uv_statis_user_name")); + identifiers.add(new Identify("用户名", IdentifyType.primary.name(), "user_name", 0)); modelDetail.setIdentifiers(identifiers); List dimensions = new ArrayList<>(); @@ -189,13 +192,13 @@ public class ModelDemoDataLoader { measures.add(measure2); modelDetail.setMeasures(measures); List fields = Lists.newArrayList(); - fields.add(Field.builder().fieldName("s2_pv_uv_statis_user_name").dataType("Varchar").build()); + fields.add(Field.builder().fieldName("user_name").dataType("Varchar").build()); fields.add(Field.builder().fieldName("imp_date").dataType("Date").build()); fields.add(Field.builder().fieldName("page").dataType("Varchar").build()); fields.add(Field.builder().fieldName("pv").dataType("Long").build()); fields.add(Field.builder().fieldName("user_id").dataType("Varchar").build()); modelDetail.setFields(fields); - modelDetail.setSqlQuery("SELECT imp_date, user_name as s2_pv_uv_statis_user_name, page, 1 as pv, " + modelDetail.setSqlQuery("SELECT imp_date, user_name, page, 1 as pv, " + "user_name as user_id FROM s2_pv_uv_statis"); modelDetail.setQueryType("sql_query"); modelReq.setDomainId(1L); @@ -215,7 +218,7 @@ public class ModelDemoDataLoader { modelReq.setAdminOrgs(Collections.emptyList()); List identifiers = new ArrayList<>(); ModelDetail modelDetail = new ModelDetail(); - identifiers.add(new Identify("用户名称", IdentifyType.primary.name(), "stay_hours_user_name")); + identifiers.add(new Identify("用户", IdentifyType.primary.name(), "user_name", 0)); modelDetail.setIdentifiers(identifiers); List dimensions = new ArrayList<>(); @@ -232,13 +235,12 @@ public class ModelDemoDataLoader { measures.add(measure1); modelDetail.setMeasures(measures); List fields = Lists.newArrayList(); - fields.add(Field.builder().fieldName("stay_hours_user_name").dataType("Varchar").build()); + fields.add(Field.builder().fieldName("user_name").dataType("Varchar").build()); fields.add(Field.builder().fieldName("imp_date").dataType("Date").build()); fields.add(Field.builder().fieldName("page").dataType("Varchar").build()); fields.add(Field.builder().fieldName("stay_hours").dataType("Double").build()); modelDetail.setFields(fields); - modelDetail.setSqlQuery( - "select imp_date,user_name as stay_hours_user_name,stay_hours,page from s2_stay_time_statis"); + modelDetail.setSqlQuery("select imp_date,user_name,stay_hours,page from s2_stay_time_statis"); modelDetail.setQueryType("sql_query"); modelReq.setDomainId(1L); modelReq.setModelDetail(modelDetail); @@ -247,7 +249,7 @@ public class ModelDemoDataLoader { public void addModelRela_1() { List joinConditions = Lists.newArrayList(); - joinConditions.add(new JoinCondition("user_name", "s2_pv_uv_statis_user_name", FilterOperatorEnum.EQUALS)); + joinConditions.add(new JoinCondition("user_name", "user_name", FilterOperatorEnum.EQUALS)); ModelRela modelRelaReq = new ModelRela(); modelRelaReq.setDomainId(1L); modelRelaReq.setFromModelId(1L); @@ -259,7 +261,7 @@ public class ModelDemoDataLoader { public void addModelRela_2() { List joinConditions = Lists.newArrayList(); - joinConditions.add(new JoinCondition("user_name", "stay_hours_user_name", FilterOperatorEnum.EQUALS)); + joinConditions.add(new JoinCondition("user_name", "user_name", FilterOperatorEnum.EQUALS)); ModelRela modelRelaReq = new ModelRela(); modelRelaReq.setDomainId(1L); modelRelaReq.setFromModelId(1L); @@ -295,7 +297,7 @@ public class ModelDemoDataLoader { modelReq.setAdminOrgs(Collections.emptyList()); ModelDetail modelDetail = new ModelDetail(); List identifiers = new ArrayList<>(); - Identify identify = new Identify("歌手名", IdentifyType.primary.name(), "singer_name"); + Identify identify = new Identify("歌手名", IdentifyType.primary.name(), "singer_name", 1); identify.setEntityNames(Lists.newArrayList("歌手", "艺人")); identifiers.add(identify); modelDetail.setIdentifiers(identifiers); @@ -325,9 +327,8 @@ public class ModelDemoDataLoader { public void updateDimension() throws Exception { DimensionReq dimensionReq = new DimensionReq(); - dimensionReq.setModelId(1L); dimensionReq.setType(DimensionType.categorical.name()); - dimensionReq.setId(4L); + dimensionReq.setId(3L); dimensionReq.setName("页面"); dimensionReq.setBizName("page"); dimensionReq.setModelId(3L); @@ -359,6 +360,26 @@ public class ModelDemoDataLoader { metricTypeParams.setMeasures(measures); metricReq.setMetricDefineByMeasureParams(metricTypeParams); metricReq.setMetricDefineType(MetricDefineType.MEASURE); + metricReq.setRelateDimension(getRelateDimension(Lists.newArrayList(1L, 2L))); + metricService.updateMetric(metricReq, user); + } + + public void updateMetric_pv() throws Exception { + MetricReq metricReq = new MetricReq(); + metricReq.setModelId(2L); + metricReq.setId(1L); + metricReq.setName("访问次数"); + metricReq.setBizName("pv"); + MetricDefineByMeasureParams metricTypeParams = new MetricDefineByMeasureParams(); + metricTypeParams.setExpr("s2_pv_uv_statis_pv"); + List measures = new ArrayList<>(); + MeasureParam measure = new MeasureParam("s2_pv_uv_statis_pv", + "", AggOperatorEnum.SUM.getOperator()); + measures.add(measure); + metricTypeParams.setMeasures(measures); + metricReq.setMetricDefineByMeasureParams(metricTypeParams); + metricReq.setMetricDefineType(MetricDefineType.MEASURE); + metricReq.setRelateDimension(getRelateDimension(Lists.newArrayList(1L, 2L))); metricService.updateMetric(metricReq, user); } @@ -373,10 +394,15 @@ public class ModelDemoDataLoader { MetricDefineByFieldParams metricTypeParams = new MetricDefineByFieldParams(); metricTypeParams.setExpr("count(distinct user_id)"); List fieldParams = new ArrayList<>(); - fieldParams.add(FieldParam.builder().fieldName("user_id").build()); + fieldParams.add(new FieldParam("user_id")); metricTypeParams.setFields(fieldParams); + RelateDimension relateDimension = new RelateDimension(); + relateDimension.setDrillDownDimensions(Lists.newArrayList( + new DrillDownDimension(1L))); + metricReq.setRelateDimension(relateDimension); metricReq.setMetricDefineByFieldParams(metricTypeParams); metricReq.setMetricDefineType(MetricDefineType.FIELD); + metricReq.setRelateDimension(getRelateDimension(Lists.newArrayList(1L))); metricService.createMetric(metricReq, user); } @@ -399,6 +425,7 @@ public class ModelDemoDataLoader { metricTypeParams.setMetrics(metrics); metricReq.setMetricDefineByMetricParams(metricTypeParams); metricReq.setMetricDefineType(MetricDefineType.METRIC); + metricReq.setRelateDimension(getRelateDimension(Lists.newArrayList(1L))); metricService.createMetric(metricReq, user); } @@ -431,11 +458,19 @@ public class ModelDemoDataLoader { authRules.add(authRule); authGroupReq.setAuthRules(authRules); - authGroupReq.setDimensionFilters(Collections.singletonList("department in ('sales')")); - authGroupReq.setDimensionFilterDescription("部门 in [sales]"); + authGroupReq.setDimensionFilters(Collections.singletonList("user_name = 'tom'")); + authGroupReq.setDimensionFilterDescription("用户名='tom'"); authGroupReq.setAuthorizedUsers(Collections.singletonList("tom")); authGroupReq.setAuthorizedDepartmentIds(Collections.emptyList()); authService.addOrUpdateAuthGroup(authGroupReq); } + private RelateDimension getRelateDimension(List dimensionIds) { + RelateDimension relateDimension = new RelateDimension(); + for (Long id : dimensionIds) { + relateDimension.getDrillDownDimensions().add(new DrillDownDimension(id)); + } + return relateDimension; + } + } \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_2.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_2.txt index 46dd21b05..b01cf97ae 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_2.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_2.txt @@ -5,14 +5,14 @@ dean _1_2 36 john _1_2 50 jack _1_2 38 admin _1_2 70 -周杰伦 _4_9 100 -陈奕迅 _4_9 100 -林俊杰 _4_9 100 -张碧晨 _4_9 100 -程响 _4_9 100 -Taylor#Swift _4_9 100 -内地 _4_6 100 -欧美 _4_6 100 -港台 _4_6 100 -流行 _4_8 100 -国风 _4_8 100 \ No newline at end of file +周杰伦 _4_7 100 +陈奕迅 _4_7 100 +林俊杰 _4_7 100 +张碧晨 _4_7 100 +程响 _4_7 100 +Taylor#Swift _4_7 100 +内地 _4_4 100 +欧美 _4_4 100 +港台 _4_4 100 +流行 _4_6 100 +国风 _4_6 100 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_3.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_3.txt index c80af2b98..e442a219c 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_3.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_1_3.txt @@ -1,6 +1,6 @@ -p1 _3_4 52 -p2 _3_4 47 -p3 _3_4 31 -p4 _3_4 36 -p5 _3_4 50 -p6 _3_4 38 \ No newline at end of file +p1 _3_3 52 +p2 _3_3 47 +p3 _3_3 31 +p4 _3_3 36 +p5 _3_3 50 +p6 _3_3 38 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_4_9.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_4_9.txt index ec8a5bd14..3bc23d613 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_4_9.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_4_9.txt @@ -1,9 +1,9 @@ -周杰伦 _4_9 9000 -周深 _4_9 8000 -周传雄 _4_9 7000 -周华建 _4_9 6000 -陈奕迅 _4_9 8000 -林俊杰 _4_9 7000 -张碧晨 _4_9 7000 -程响 _4_9 7000 -Taylor#Swift _4_9 7000 \ No newline at end of file +周杰伦 _4_7 9000 +周深 _4_7 8000 +周传雄 _4_7 7000 +周华建 _4_7 6000 +陈奕迅 _4_7 8000 +林俊杰 _4_7 7000 +张碧晨 _4_7 7000 +程响 _4_7 7000 +Taylor#Swift _4_7 7000 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_10.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_10.txt index 26f723f61..6402c14f5 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_10.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_10.txt @@ -1,4 +1,4 @@ -美国 _5_10 1 -加拿大 _5_10 1 -锡尔赫特、吉大港、库斯蒂亚 _5_10 1 -孟加拉国 _5_10 3 \ No newline at end of file +美国 _5_8 1 +加拿大 _5_8 1 +锡尔赫特、吉大港、库斯蒂亚 _5_8 1 +孟加拉国 _5_8 3 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_11.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_11.txt index faf66a48c..6cef5f046 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_11.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_5_11.txt @@ -1,6 +1,6 @@ -现代 _5_11 1 -tagore _5_11 1 -蓝调 _5_11 1 -流行 _5_11 1 -民间 _5_11 1 -nazrul _5_11 1 \ No newline at end of file +现代 _5_9 1 +tagore _5_9 1 +蓝调 _5_9 1 +流行 _5_9 1 +民间 _5_9 1 +nazrul _5_9 1 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_12.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_12.txt index d7dc8744a..b5458d1ab 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_12.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_12.txt @@ -1,4 +1,4 @@ -美国 _6_12 1 -印度 _6_12 2 -英国 _6_12 1 -孟加拉国 _6_12 2 \ No newline at end of file +美国 _6_10 1 +印度 _6_10 2 +英国 _6_10 1 +孟加拉国 _6_10 2 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_13.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_13.txt index f14388257..33944bd5d 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_13.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_6_13.txt @@ -1,2 +1,2 @@ -男性 _6_13 3 -女性 _6_13 3 \ No newline at end of file +男性 _6_11 3 +女性 _6_11 3 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_7_16.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_7_16.txt index 9cbcab009..46f76c558 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_7_16.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_7_16.txt @@ -1,2 +1,2 @@ -mp4 _7_16 4 -mp3 _7_16 2 \ No newline at end of file +mp4 _7_14 4 +mp3 _7_14 2 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_18.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_18.txt index a6ea79314..78ea079a1 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_18.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_18.txt @@ -1,4 +1,4 @@ -美国 _8_18 1 -印度 _8_18 2 -英国 _8_18 1 -孟加拉国 _8_18 2 \ No newline at end of file +美国 _8_16 1 +印度 _8_16 2 +英国 _8_16 1 +孟加拉国 _8_16 2 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_19.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_19.txt index 1a5efd963..86a5882f3 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_19.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_19.txt @@ -1,2 +1,2 @@ -英文 _8_19 2 -孟加拉语 _8_19 4 \ No newline at end of file +英文 _8_17 2 +孟加拉语 _8_17 4 \ No newline at end of file diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_21.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_21.txt index f892b3ba6..0c00c7fa7 100644 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_21.txt +++ b/launchers/standalone/src/main/resources/data/dictionary/custom/DimValue_8_21.txt @@ -1,6 +1,6 @@ -阿米·奥帕尔·霍伊 _8_21 1 -我的爱 _8_21 1 -打败它 _8_21 1 -阿杰伊阿卡什 _8_21 1 -Tumi#长袍#尼罗布 _8_21 1 -舒克诺#帕塔尔#努普尔#帕埃 _8_21 1 \ No newline at end of file +阿米·奥帕尔·霍伊 _8_19 1 +我的爱 _8_19 1 +打败它 _8_19 1 +阿杰伊阿卡什 _8_19 1 +Tumi#长袍#尼罗布 _8_19 1 +舒克诺#帕塔尔#努普尔#帕埃 _8_19 1 \ No newline at end of file diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricQueryTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricQueryTest.java index 3f7cc33d2..e58e251ea 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricQueryTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/MetricQueryTest.java @@ -1,8 +1,5 @@ package com.tencent.supersonic.integration; -import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.NONE; -import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.SUM; - import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.request.QueryFilter; import com.tencent.supersonic.chat.api.pojo.response.ParseResp; @@ -15,13 +12,17 @@ import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.util.DataUtils; +import org.junit.Assert; +import org.junit.Test; + import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; -import org.junit.Assert; -import org.junit.Test; + +import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.NONE; +import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.SUM; public class MetricQueryTest extends BaseQueryTest { @@ -39,6 +40,7 @@ public class MetricQueryTest extends BaseQueryTest { expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensionFilters().add(DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L)); @@ -73,7 +75,7 @@ public class MetricQueryTest extends BaseQueryTest { expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(DateConf.DateMode.RECENT, unit, period, startDay, endDay)); expectedParseInfo.setQueryType(QueryType.METRIC); @@ -102,6 +104,7 @@ public class MetricQueryTest extends BaseQueryTest { expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("部门")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(DateConf.DateMode.RECENT, unit, period, startDay, endDay)); @@ -122,7 +125,7 @@ public class MetricQueryTest extends BaseQueryTest { expectedResult.setQueryMode(MetricFilterQuery.QUERY_MODE); expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); List list = new ArrayList<>(); list.add("alice"); list.add("lucy"); @@ -147,9 +150,9 @@ public class MetricQueryTest extends BaseQueryTest { expectedParseInfo.setAggType(SUM); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问用户数")); expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("用户")); - expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("用户名")); - expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("用户名称")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(3, DateConf.DateMode.RECENT, "DAY")); expectedParseInfo.setQueryType(QueryType.METRIC); @@ -168,6 +171,7 @@ public class MetricQueryTest extends BaseQueryTest { expectedParseInfo.setAggType(SUM); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensions().add(DataUtils.getSchemaElement("部门")); expectedParseInfo.setDateInfo(DataUtils.getDateConf(DateConf.DateMode.RECENT, unit, period, startDay, endDay)); @@ -193,7 +197,7 @@ public class MetricQueryTest extends BaseQueryTest { expectedParseInfo.setAggType(NONE); expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("访问次数")); - + expectedParseInfo.getMetrics().add(DataUtils.getSchemaElement("人均访问次数")); expectedParseInfo.getDimensionFilters().add(DataUtils.getFilter("user_name", FilterOperatorEnum.EQUALS, "alice", "用户", 2L)); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/TagQueryTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/TagQueryTest.java index e7783ed58..ea76c91ea 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/TagQueryTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/TagQueryTest.java @@ -1,7 +1,5 @@ package com.tencent.supersonic.integration; -import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.NONE; - import com.tencent.supersonic.chat.api.pojo.SchemaElement; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.request.QueryFilter; @@ -13,15 +11,19 @@ import com.tencent.supersonic.common.pojo.DateConf.DateMode; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.util.DataUtils; +import org.junit.Test; + import java.util.ArrayList; import java.util.List; -import org.junit.Test; + +import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.NONE; public class TagQueryTest extends BaseQueryTest { @Test public void queryTest_metric_tag_query() throws Exception { - QueryResult actualResult = submitNewChat("艺人周杰伦的播放量", null); + MockConfiguration.mockTagAgent(agentService); + QueryResult actualResult = submitNewChat("艺人周杰伦的播放量", DataUtils.tagAgentId); QueryResult expectedResult = new QueryResult(); SemanticParseInfo expectedParseInfo = new SemanticParseInfo(); @@ -30,7 +32,7 @@ public class TagQueryTest extends BaseQueryTest { expectedResult.setQueryMode(MetricTagQuery.QUERY_MODE); expectedParseInfo.setAggType(NONE); - QueryFilter dimensionFilter = DataUtils.getFilter("singer_name", FilterOperatorEnum.EQUALS, "周杰伦", "歌手名", 9L); + QueryFilter dimensionFilter = DataUtils.getFilter("singer_name", FilterOperatorEnum.EQUALS, "周杰伦", "歌手名", 7L); expectedParseInfo.getDimensionFilters().add(dimensionFilter); SchemaElement metric = SchemaElement.builder().name("播放量").build(); @@ -44,7 +46,8 @@ public class TagQueryTest extends BaseQueryTest { @Test public void queryTest_tag_list_filter() throws Exception { - QueryResult actualResult = submitNewChat("爱情、流行类型的艺人", null); + MockConfiguration.mockTagAgent(agentService); + QueryResult actualResult = submitNewChat("爱情、流行类型的艺人", DataUtils.tagAgentId); QueryResult expectedResult = new QueryResult(); SemanticParseInfo expectedParseInfo = new SemanticParseInfo(); @@ -56,7 +59,7 @@ public class TagQueryTest extends BaseQueryTest { List list = new ArrayList<>(); list.add("流行"); QueryFilter dimensionFilter = DataUtils.getFilter("genre", FilterOperatorEnum.EQUALS, - "流行", "风格", 8L); + "流行", "风格", 6L); expectedParseInfo.getDimensionFilters().add(dimensionFilter); SchemaElement metric = SchemaElement.builder().name("播放量").build(); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/mapper/MapperTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/mapper/MapperTest.java index aa59ea8b6..a9978d598 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/integration/mapper/MapperTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/integration/mapper/MapperTest.java @@ -1,7 +1,5 @@ package com.tencent.supersonic.integration.mapper; -import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.NONE; - import com.tencent.supersonic.chat.api.pojo.SchemaElement; import com.tencent.supersonic.chat.api.pojo.SemanticParseInfo; import com.tencent.supersonic.chat.api.pojo.request.QueryFilter; @@ -9,21 +7,23 @@ import com.tencent.supersonic.chat.api.pojo.request.QueryReq; import com.tencent.supersonic.chat.api.pojo.response.QueryResult; import com.tencent.supersonic.chat.core.query.rule.metric.MetricTagQuery; import com.tencent.supersonic.common.pojo.DateConf; +import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.common.pojo.enums.QueryType; import com.tencent.supersonic.integration.BaseQueryTest; -import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; import com.tencent.supersonic.util.DataUtils; import org.junit.Test; +import static com.tencent.supersonic.common.pojo.enums.AggregateTypeEnum.NONE; + public class MapperTest extends BaseQueryTest { @Test public void hanlp() throws Exception { QueryReq queryContextReq = DataUtils.getQueryContextReq(10, "艺人周杰伦的播放量"); - queryContextReq.setAgentId(1); + queryContextReq.setAgentId(DataUtils.tagAgentId); - QueryResult actualResult = submitNewChat("艺人周杰伦的播放量", 1); + QueryResult actualResult = submitNewChat("艺人周杰伦的播放量", DataUtils.tagAgentId); QueryResult expectedResult = new QueryResult(); SemanticParseInfo expectedParseInfo = new SemanticParseInfo(); diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java b/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java index 5b62e1492..cf98afc43 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/util/DataUtils.java @@ -1,7 +1,5 @@ package com.tencent.supersonic.util; -import static java.time.LocalDate.now; - import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import com.tencent.supersonic.auth.api.authentication.pojo.User; @@ -16,6 +14,8 @@ import com.tencent.supersonic.chat.core.agent.RuleParserTool; import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.enums.FilterOperatorEnum; +import static java.time.LocalDate.now; + public class DataUtils { public static final Integer metricAgentId = 1; @@ -106,7 +106,6 @@ public class DataUtils { agent.setDescription("标签圈选"); AgentConfig agentConfig = new AgentConfig(); agentConfig.getTools().add(getRuleQueryTool()); - agentConfig.getTools().add(getPluginTool()); agent.setAgentConfig(JSONObject.toJSONString(agentConfig)); return agent; } @@ -114,8 +113,8 @@ public class DataUtils { private static RuleParserTool getRuleQueryTool() { RuleParserTool ruleQueryTool = new RuleParserTool(); ruleQueryTool.setType(AgentToolType.NL2SQL_RULE); - ruleQueryTool.setModelIds(Lists.newArrayList(1L, 2L)); - ruleQueryTool.setQueryModes(Lists.newArrayList("METRIC_ENTITY", "METRIC_FILTER", "METRIC_MODEL", + ruleQueryTool.setModelIds(Lists.newArrayList(-1L)); + ruleQueryTool.setQueryModes(Lists.newArrayList("METRIC_TAG", "METRIC_FILTER", "METRIC_MODEL", "TAG_DETAIL", "TAG_LIST_FILTER", "TAG_ID")); return ruleQueryTool; } diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt index 46dd21b05..b01cf97ae 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt @@ -5,14 +5,14 @@ dean _1_2 36 john _1_2 50 jack _1_2 38 admin _1_2 70 -周杰伦 _4_9 100 -陈奕迅 _4_9 100 -林俊杰 _4_9 100 -张碧晨 _4_9 100 -程响 _4_9 100 -Taylor#Swift _4_9 100 -内地 _4_6 100 -欧美 _4_6 100 -港台 _4_6 100 -流行 _4_8 100 -国风 _4_8 100 \ No newline at end of file +周杰伦 _4_7 100 +陈奕迅 _4_7 100 +林俊杰 _4_7 100 +张碧晨 _4_7 100 +程响 _4_7 100 +Taylor#Swift _4_7 100 +内地 _4_4 100 +欧美 _4_4 100 +港台 _4_4 100 +流行 _4_6 100 +国风 _4_6 100 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt index c80af2b98..e442a219c 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt @@ -1,6 +1,6 @@ -p1 _3_4 52 -p2 _3_4 47 -p3 _3_4 31 -p4 _3_4 36 -p5 _3_4 50 -p6 _3_4 38 \ No newline at end of file +p1 _3_3 52 +p2 _3_3 47 +p3 _3_3 31 +p4 _3_3 36 +p5 _3_3 50 +p6 _3_3 38 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_9.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_9.txt index ec8a5bd14..3bc23d613 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_9.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_9.txt @@ -1,9 +1,9 @@ -周杰伦 _4_9 9000 -周深 _4_9 8000 -周传雄 _4_9 7000 -周华建 _4_9 6000 -陈奕迅 _4_9 8000 -林俊杰 _4_9 7000 -张碧晨 _4_9 7000 -程响 _4_9 7000 -Taylor#Swift _4_9 7000 \ No newline at end of file +周杰伦 _4_7 9000 +周深 _4_7 8000 +周传雄 _4_7 7000 +周华建 _4_7 6000 +陈奕迅 _4_7 8000 +林俊杰 _4_7 7000 +张碧晨 _4_7 7000 +程响 _4_7 7000 +Taylor#Swift _4_7 7000 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt index 26f723f61..6402c14f5 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt @@ -1,4 +1,4 @@ -美国 _5_10 1 -加拿大 _5_10 1 -锡尔赫特、吉大港、库斯蒂亚 _5_10 1 -孟加拉国 _5_10 3 \ No newline at end of file +美国 _5_8 1 +加拿大 _5_8 1 +锡尔赫特、吉大港、库斯蒂亚 _5_8 1 +孟加拉国 _5_8 3 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt index faf66a48c..6cef5f046 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt @@ -1,6 +1,6 @@ -现代 _5_11 1 -tagore _5_11 1 -蓝调 _5_11 1 -流行 _5_11 1 -民间 _5_11 1 -nazrul _5_11 1 \ No newline at end of file +现代 _5_9 1 +tagore _5_9 1 +蓝调 _5_9 1 +流行 _5_9 1 +民间 _5_9 1 +nazrul _5_9 1 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt index d7dc8744a..b5458d1ab 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt @@ -1,4 +1,4 @@ -美国 _6_12 1 -印度 _6_12 2 -英国 _6_12 1 -孟加拉国 _6_12 2 \ No newline at end of file +美国 _6_10 1 +印度 _6_10 2 +英国 _6_10 1 +孟加拉国 _6_10 2 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt index f14388257..33944bd5d 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt @@ -1,2 +1,2 @@ -男性 _6_13 3 -女性 _6_13 3 \ No newline at end of file +男性 _6_11 3 +女性 _6_11 3 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt index 9cbcab009..46f76c558 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt @@ -1,2 +1,2 @@ -mp4 _7_16 4 -mp3 _7_16 2 \ No newline at end of file +mp4 _7_14 4 +mp3 _7_14 2 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt index a6ea79314..78ea079a1 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt @@ -1,4 +1,4 @@ -美国 _8_18 1 -印度 _8_18 2 -英国 _8_18 1 -孟加拉国 _8_18 2 \ No newline at end of file +美国 _8_16 1 +印度 _8_16 2 +英国 _8_16 1 +孟加拉国 _8_16 2 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt index 1a5efd963..86a5882f3 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt @@ -1,2 +1,2 @@ -英文 _8_19 2 -孟加拉语 _8_19 4 \ No newline at end of file +英文 _8_17 2 +孟加拉语 _8_17 4 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt index f892b3ba6..0c00c7fa7 100644 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt +++ b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt @@ -1,6 +1,6 @@ -阿米·奥帕尔·霍伊 _8_21 1 -我的爱 _8_21 1 -打败它 _8_21 1 -阿杰伊阿卡什 _8_21 1 -Tumi#长袍#尼罗布 _8_21 1 -舒克诺#帕塔尔#努普尔#帕埃 _8_21 1 \ No newline at end of file +阿米·奥帕尔·霍伊 _8_19 1 +我的爱 _8_19 1 +打败它 _8_19 1 +阿杰伊阿卡什 _8_19 1 +Tumi#长袍#尼罗布 _8_19 1 +舒克诺#帕塔尔#努普尔#帕埃 _8_19 1 \ No newline at end of file