mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-14 13:47:09 +00:00
[improvement][project]Use DatePeriodEnum to replace DAY/MONTH/YEAR period constants.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
package com.tencent.supersonic.headless.core.config;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.pojo.enums.DatePeriodEnum;
|
||||
import lombok.Data;
|
||||
import lombok.ToString;
|
||||
|
||||
@@ -16,5 +16,5 @@ public class DefaultMetricInfo {
|
||||
private Integer unit = 1;
|
||||
|
||||
/** default time type: day DAY, WEEK, MONTH, YEAR */
|
||||
private String period = Constants.DAY;
|
||||
private DatePeriodEnum period = DatePeriodEnum.DAY;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.translator.converter;
|
||||
|
||||
import com.tencent.supersonic.common.pojo.Aggregator;
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.pojo.enums.AggOperatorEnum;
|
||||
import com.tencent.supersonic.common.pojo.enums.DatePeriodEnum;
|
||||
import com.tencent.supersonic.common.util.ContextUtils;
|
||||
import com.tencent.supersonic.common.util.DateModeUtils;
|
||||
import com.tencent.supersonic.headless.api.pojo.MetricTable;
|
||||
@@ -214,13 +214,13 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
public String getTimeSpan(QueryParam queryParam, boolean isOver, boolean isAdd) {
|
||||
if (Objects.nonNull(queryParam.getDateInfo())) {
|
||||
String addStr = isAdd ? "" : "-";
|
||||
if (queryParam.getDateInfo().getPeriod().equalsIgnoreCase(Constants.DAY)) {
|
||||
if (queryParam.getDateInfo().getPeriod().equals(DatePeriodEnum.DAY)) {
|
||||
return "day," + (isOver ? addStr + "7" : addStr + "1");
|
||||
}
|
||||
if (queryParam.getDateInfo().getPeriod().equalsIgnoreCase(Constants.WEEK)) {
|
||||
if (queryParam.getDateInfo().getPeriod().equals(DatePeriodEnum.MONTH)) {
|
||||
return isOver ? "month," + addStr + "1" : "day," + addStr + "7";
|
||||
}
|
||||
if (queryParam.getDateInfo().getPeriod().equalsIgnoreCase(Constants.MONTH)) {
|
||||
if (queryParam.getDateInfo().getPeriod().equals(DatePeriodEnum.MONTH.MONTH)) {
|
||||
return isOver ? "year," + addStr + "1" : "month," + addStr + "1";
|
||||
}
|
||||
}
|
||||
@@ -240,7 +240,7 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
if (queryParam
|
||||
.getDateInfo()
|
||||
.getPeriod()
|
||||
.equals(Constants.MONTH)) {
|
||||
.equals(DatePeriodEnum.MONTH)) {
|
||||
return String.format(
|
||||
"%s is not null and %s = FORMATDATETIME(DATEADD(%s,CONCAT(%s,'-01')),'yyyy-MM') ",
|
||||
aliasRight + timeDim,
|
||||
@@ -251,7 +251,7 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
if (queryParam
|
||||
.getDateInfo()
|
||||
.getPeriod()
|
||||
.equals(Constants.WEEK)
|
||||
.equals(DatePeriodEnum.WEEK)
|
||||
&& isOver) {
|
||||
return String.format(
|
||||
" DATE_TRUNC('week',DATEADD(%s,%s) ) = %s ",
|
||||
@@ -313,7 +313,7 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
if (queryParam
|
||||
.getDateInfo()
|
||||
.getPeriod()
|
||||
.equals(Constants.MONTH)) {
|
||||
.equals(DatePeriodEnum.MONTH)) {
|
||||
return String.format(
|
||||
"toDate(CONCAT(%s,'-01')) = date_add(toDate(CONCAT(%s,'-01')),%s) ",
|
||||
aliasLeft + timeDim,
|
||||
@@ -323,7 +323,7 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
if (queryParam
|
||||
.getDateInfo()
|
||||
.getPeriod()
|
||||
.equals(Constants.WEEK)
|
||||
.equals(DatePeriodEnum.WEEK)
|
||||
&& isOver) {
|
||||
return String.format(
|
||||
"toMonday(date_add(%s ,INTERVAL %s) ) = %s",
|
||||
@@ -386,13 +386,13 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
public String getTimeSpan(QueryParam queryParam, boolean isOver, boolean isAdd) {
|
||||
if (Objects.nonNull(queryParam.getDateInfo())) {
|
||||
String addStr = isAdd ? "" : "-";
|
||||
if (queryParam.getDateInfo().getPeriod().equalsIgnoreCase(Constants.DAY)) {
|
||||
if (queryParam.getDateInfo().getPeriod().equals(DatePeriodEnum.DAY)) {
|
||||
return isOver ? addStr + "7 day" : addStr + "1 day";
|
||||
}
|
||||
if (queryParam.getDateInfo().getPeriod().equalsIgnoreCase(Constants.WEEK)) {
|
||||
if (queryParam.getDateInfo().getPeriod().equals(DatePeriodEnum.WEEK)) {
|
||||
return isOver ? addStr + "1 month" : addStr + "7 day";
|
||||
}
|
||||
if (queryParam.getDateInfo().getPeriod().equalsIgnoreCase(Constants.MONTH)) {
|
||||
if (queryParam.getDateInfo().getPeriod().equals(DatePeriodEnum.MONTH)) {
|
||||
return isOver ? addStr + "1 year" : addStr + "1 month";
|
||||
}
|
||||
}
|
||||
@@ -438,7 +438,7 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
if (queryParam
|
||||
.getDateInfo()
|
||||
.getPeriod()
|
||||
.equals(Constants.MONTH)) {
|
||||
.equals(DatePeriodEnum.MONTH)) {
|
||||
return String.format(
|
||||
"%s = DATE_FORMAT(date_add(CONCAT(%s,'-01'), %s),'%%Y-%%m') ",
|
||||
aliasLeft + timeDim,
|
||||
@@ -448,7 +448,7 @@ public class CalculateAggConverter implements QueryConverter {
|
||||
if (queryParam
|
||||
.getDateInfo()
|
||||
.getPeriod()
|
||||
.equals(Constants.WEEK)
|
||||
.equals(DatePeriodEnum.WEEK)
|
||||
&& isOver) {
|
||||
return String.format(
|
||||
"to_monday(date_add(%s ,INTERVAL %s) ) = %s",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.tencent.supersonic.headless.core.utils;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.tencent.supersonic.common.pojo.Constants;
|
||||
import com.tencent.supersonic.common.pojo.DateConf;
|
||||
import com.tencent.supersonic.common.pojo.enums.DatePeriodEnum;
|
||||
import com.tencent.supersonic.common.pojo.enums.TimeDimensionEnum;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -66,9 +66,9 @@ public class DataTransformUtils {
|
||||
}
|
||||
|
||||
private static String getTimeDimension(DateConf dateConf) {
|
||||
if (Constants.MONTH.equals(dateConf.getPeriod())) {
|
||||
if (DatePeriodEnum.MONTH.equals(dateConf.getPeriod())) {
|
||||
return TimeDimensionEnum.MONTH.getName();
|
||||
} else if (Constants.WEEK.equals(dateConf.getPeriod())) {
|
||||
} else if (DatePeriodEnum.WEEK.equals(dateConf.getPeriod())) {
|
||||
return TimeDimensionEnum.WEEK.getName();
|
||||
} else {
|
||||
return TimeDimensionEnum.DAY.getName();
|
||||
|
||||
@@ -39,12 +39,9 @@ import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.tencent.supersonic.common.pojo.Constants.DAY;
|
||||
import static com.tencent.supersonic.common.pojo.Constants.DAY_FORMAT;
|
||||
import static com.tencent.supersonic.common.pojo.Constants.JOIN_UNDERLINE;
|
||||
import static com.tencent.supersonic.common.pojo.Constants.MONTH;
|
||||
import static com.tencent.supersonic.common.pojo.Constants.UNDERLINE;
|
||||
import static com.tencent.supersonic.common.pojo.Constants.WEEK;
|
||||
|
||||
/** tools functions to analyze queryStructReq */
|
||||
@Component
|
||||
|
||||
Reference in New Issue
Block a user