|
|
|
@ -88,6 +88,7 @@ public class MysqlQueryProvider extends QueryProvider {
|
|
|
|
|
.tableAlias(String.format(TABLE_ALIAS_PREFIX, 0))
|
|
|
|
|
.build();
|
|
|
|
|
List<SQLObj> xFields = new ArrayList<>();
|
|
|
|
|
String groupBySum = "";
|
|
|
|
|
if (CollectionUtils.isNotEmpty(fields)) {
|
|
|
|
|
for (int i = 0; i < fields.size(); i++) {
|
|
|
|
|
DatasetTableField f = fields.get(i);
|
|
|
|
@ -95,6 +96,13 @@ public class MysqlQueryProvider extends QueryProvider {
|
|
|
|
|
if (ObjectUtils.isNotEmpty(f.getExtField()) && f.getExtField() == 2) {
|
|
|
|
|
// 解析origin name中有关联的字段生成sql表达式
|
|
|
|
|
originField = calcFieldRegex(f.getOriginName(), tableObj);
|
|
|
|
|
if (originField.substring(0,3).toLowerCase().equals("sum")) {
|
|
|
|
|
String[] originFields = originField.split("\\|");
|
|
|
|
|
if (originFields.length > 1) {
|
|
|
|
|
originField = originFields[0];
|
|
|
|
|
groupBySum = originFields[1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if (ObjectUtils.isNotEmpty(f.getExtField()) && f.getExtField() == 1) {
|
|
|
|
|
originField = String.format(MySQLConstants.KEYWORD_FIX, tableObj.getTableAlias(), f.getOriginName());
|
|
|
|
|
} else {
|
|
|
|
@ -141,6 +149,7 @@ public class MysqlQueryProvider extends QueryProvider {
|
|
|
|
|
st_sql.add("isGroup", isGroup);
|
|
|
|
|
if (CollectionUtils.isNotEmpty(xFields)) st_sql.add("groups", xFields);
|
|
|
|
|
if (ObjectUtils.isNotEmpty(tableObj)) st_sql.add("table", tableObj);
|
|
|
|
|
if (StringUtils.isNotEmpty(groupBySum)) st_sql.add("groupBy", groupBySum);
|
|
|
|
|
return st_sql.render();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|