diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java index acffb78d4..1a23802b3 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StringUtils.java @@ -25,6 +25,8 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils { public static final String COLON = ":"; + public static final String DOT = "."; + private static final AntPathMatcher ANT_PATH_MATCHER = new AntPathMatcher(); @Deprecated diff --git a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/query/LambdaJoinQueryBuilder.java b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/query/LambdaJoinQueryBuilder.java index b97e558d4..48eaff16c 100644 --- a/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/query/LambdaJoinQueryBuilder.java +++ b/ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/core/query/LambdaJoinQueryBuilder.java @@ -49,6 +49,39 @@ public final class LambdaJoinQueryBuilder { return this; } + /** + * 添加分组查询。 + * + * @param columns 分组字段 + * @return 当前联表查询构造辅助对象 + */ + @SafeVarargs + public final LambdaJoinQueryBuilder groupBy(SFunction... columns) { + return groupBy(null, columns); + } + + /** + * 添加分组查询。 + * + * @param alias 表别名 + * @param columns 分组字段 + * @return 当前联表查询构造辅助对象 + */ + @SafeVarargs + public final LambdaJoinQueryBuilder groupBy(String alias, SFunction... columns) { + if (columns == null) { + return this; + } + for (SFunction column : columns) { + String columnUnder = StringUtils.toUnderScoreCase(LambdaUtils.getName(column)); + if (StringUtils.isNotBlank(alias)) { + columnUnder = alias + StringUtils.DOT + columnUnder; + } + wrapper.groupBy(columnUnder); + } + return this; + } + /** * 指定主表查询字段。 * diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java index ea13812a2..4162e7e3e 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java @@ -33,7 +33,7 @@ public class DictTypeTranslationImpl implements TranslationInterface { */ @Override public String translation(Object key, String other) { - if (key instanceof String dictValue && StringUtils.isNotBlank(other)) { + if (key.toString() instanceof String dictValue && StringUtils.isNotBlank(other)) { return dictService.getDictLabel(other, dictValue); } return null; @@ -54,7 +54,7 @@ public class DictTypeTranslationImpl implements TranslationInterface { Map dictMap = dictService.getAllDictByDictType(other); Map result = new LinkedHashMap<>(keys.size()); for (Object key : keys) { - if (key instanceof String dictValue) { + if (key.toString() instanceof String dictValue) { result.put(key, StreamUtils.join( StreamUtils.filter(Arrays.asList(dictValue.split(",")), StringUtils::isNotBlank), value -> dictMap.get(value.trim())