From 6be38fea0d361cb293fe0e9d21952afeb2c059d1 Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Fri, 23 Dec 2022 16:20:17 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=AF=B9=E4=B8=80=E5=B5=8C=E5=A5=97bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MybatisPlusJoinAutoConfiguration.java | 2 +- .../MybatisPlusJoinProperties.java | 2 +- .../yulichang/interceptor/MPJInterceptor.java | 24 +++++++++++++------ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java index b8adb5e..55927b8 100644 --- a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java +++ b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java @@ -59,7 +59,7 @@ public class MybatisPlusJoinAutoConfiguration { ConfigProperties.subTableLogic = properties.getSubTableLogic(); ConfigProperties.msCache = properties.isMsCache(); ConfigProperties.tableAlias = properties.getTableAlias(); - ConfigProperties.tableAlias = properties.getJoinPrefix(); + ConfigProperties.joinPrefix = properties.getJoinPrefix(); } /** diff --git a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java index 3b8f56d..e4f2144 100644 --- a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java +++ b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java @@ -38,5 +38,5 @@ public class MybatisPlusJoinProperties { /** * 连表查询重复字段名前缀 */ - private String joinPrefix = "t"; + private String joinPrefix = "join"; } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java index 7d7d3a2..efd0c7d 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java @@ -235,7 +235,7 @@ public class MPJInterceptor implements Interceptor { SelectLabel label; Field field = ofTypeField.get(r.getProperty()); if (columnSet.contains(columnName)) { - columnName = getColumn(columnSet, columnName); + columnName = getColumn(columnSet, columnName, 0); label = new SelectLabel(r.getSelectNormal(), mybatisLabel.getIndex(), mybatisLabel.getOfType(), field, columnName); } else { label = new SelectLabel(r.getSelectNormal(), mybatisLabel.getIndex(), mybatisLabel.getOfType(), field); @@ -299,13 +299,23 @@ public class MPJInterceptor implements Interceptor { * @param columnName 列明 * @return 唯一列名 */ - private String getColumn(Set pool, String columnName) { - columnName = ConfigProperties.joinPrefix + columnName; - if (!pool.contains(columnName)) { - pool.add(columnName); - return columnName; + private String getColumn(Set pool, String columnName, int num) { + String newName = ConfigProperties.joinPrefix + getPrefix(num) + StringPool.UNDERSCORE + columnName; + if (!pool.contains(newName)) { + pool.add(newName); + return newName; } - return getColumn(pool, columnName); + return getColumn(pool, columnName, ++num); + } + + private String getPrefix(int num) { + String s = Integer.toString(num, 25); + char[] array = s.toCharArray(); + char[] chars = new char[s.length()]; + for (int i = 0; i < array.length; i++) { + chars[i] = (char) (array[i] < 58 ? (array[i] + 49) : (array[i] + 10)); + } + return new String(chars); } /**