diff --git a/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/DbOperatorApi.java b/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/DbOperatorApi.java index dd15fe9a5..1ace273c0 100644 --- a/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/DbOperatorApi.java +++ b/kernel-d-db/db-api/src/main/java/cn/stylefeng/roses/kernel/db/api/DbOperatorApi.java @@ -74,4 +74,12 @@ public interface DbOperatorApi { */ Set findSubListByParentId(String tableName, String parentIdsFieldName, String keyFieldName, Long keyFieldValue); + /** + * 获取数据库,指定表,指定字段在库里的最大值 + * + * @author fengshuonan + * @since 2023/10/29 16:07 + */ + Long getMaxSortByTableName(String tableName, String fieldName); + } diff --git a/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/dboperator/DbOperatorImpl.java b/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/dboperator/DbOperatorImpl.java index 09f32a638..a0b4ce171 100644 --- a/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/dboperator/DbOperatorImpl.java +++ b/kernel-d-db/db-sdk-mp/src/main/java/cn/stylefeng/roses/kernel/db/mp/dboperator/DbOperatorImpl.java @@ -35,6 +35,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.stream.Collectors; @@ -75,4 +76,18 @@ public class DbOperatorImpl implements DbOperatorApi { return subIds.stream().map(i -> Long.valueOf(i.toString())).collect(Collectors.toSet()); } + @Override + public Long getMaxSortByTableName(String tableName, String fieldName) { + + String tempFieldName = "maxSort"; + + String sqlTemplate = "select max({}) as {} from {}"; + String sql = StrUtil.format(sqlTemplate, fieldName, tempFieldName, tableName); + + Map oneResult = SqlRunner.db().selectOne(sql); + Object maxSort = oneResult.get(tempFieldName); + + return Convert.toLong(maxSort); + } + }