From f0c69704ba5be2fed21991022e5ab35b7dc2ad34 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 23 May 2020 18:12:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=81=8D=E5=8E=86=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=AD=97=E6=AE=B5=E5=8F=AA=E9=99=90=E5=88=B6=E4=B8=80?= =?UTF-8?q?=E7=BA=A7=EF=BC=8C=E9=81=BF=E5=85=8Dlist=E5=AF=B9=E6=B3=9B?= =?UTF-8?q?=E5=9E=8B=E5=AF=B9=E8=B1=A1=E7=9A=84=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/synebula/gaea/mongo/MongoExt.kt | 2 +- .../gaea/mongo/query/MongoGenericQuery.kt | 8 +++--- .../synebula/gaea/mongo/query/MongoQuery.kt | 6 ++--- .../com/synebula/gaea/extension/ClassExt.kt | 26 +++---------------- 4 files changed, 11 insertions(+), 31 deletions(-) diff --git a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/MongoExt.kt b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/MongoExt.kt index 2a82aeb..45e7ce9 100644 --- a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/MongoExt.kt +++ b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/MongoExt.kt @@ -10,7 +10,7 @@ import java.lang.reflect.Field /** - * 获取查询条件 + * 获取查询字段列表 * * @param fields 字段列表 */ diff --git a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoGenericQuery.kt b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoGenericQuery.kt index 4eef9f2..46dd9a2 100644 --- a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoGenericQuery.kt +++ b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoGenericQuery.kt @@ -1,6 +1,6 @@ package com.synebula.gaea.mongo.query -import com.synebula.gaea.extension.fields +import com.synebula.gaea.extension.fieldNames import com.synebula.gaea.extension.firstCharLowerCase import com.synebula.gaea.log.ILogger import com.synebula.gaea.mongo.order @@ -80,7 +80,7 @@ open class MongoGenericQuery(var template: MongoTemplate, var logger: ILo override fun list(params: Map?): List { this.check() return if (this.clazz != null) { - val fields = this.clazz!!.fields() + val fields = this.clazz!!.fieldNames() val query = Query() query.select(fields.toTypedArray()) query.where(params, this.clazz!!) @@ -100,11 +100,11 @@ open class MongoGenericQuery(var template: MongoTemplate, var logger: ILo this.check() return if (this.clazz != null) { val query = Query() - val fields = this.clazz!!.fields() + val fields = this.clazz!!.fieldNames() val result = PagingData(param.page, param.size) result.total = this.count(param.parameters) - query.where(param.parameters, this.clazz!!) query.select(fields.toTypedArray()) + query.where(param.parameters, this.clazz!!) query.with(order(param.orderBy)) query.skip(param.index).limit(param.size) result.data = this.template.find(query, this.clazz!!, this.collection) diff --git a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt index 3300ead..baa4e37 100644 --- a/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt +++ b/src/gaea.mongo/src/main/kotlin/com/synebula/gaea/mongo/query/MongoQuery.kt @@ -1,6 +1,6 @@ package com.synebula.gaea.mongo.query -import com.synebula.gaea.extension.fields +import com.synebula.gaea.extension.fieldNames import com.synebula.gaea.extension.firstCharLowerCase import com.synebula.gaea.log.ILogger import com.synebula.gaea.mongo.order @@ -35,7 +35,7 @@ open class MongoQuery(var repo: MongoTemplate, var logger: ILogger? = null) : IQ var validViewCollection = false override fun list(params: Map?, clazz: Class): List { - val fields = clazz.fields() + val fields = clazz.fieldNames() val query = Query() query.where(params, clazz) query.select(fields.toTypedArray()) @@ -48,7 +48,7 @@ open class MongoQuery(var repo: MongoTemplate, var logger: ILogger? = null) : IQ } override fun paging(param: PagingParam, clazz: Class): PagingData { - val fields = clazz.fields() + val fields = clazz.fieldNames() val result = PagingData(param.page, param.size) result.total = this.count(param.parameters, clazz) val query = Query() diff --git a/src/gaea/src/main/kotlin/com/synebula/gaea/extension/ClassExt.kt b/src/gaea/src/main/kotlin/com/synebula/gaea/extension/ClassExt.kt index c7afc3a..dafe84e 100644 --- a/src/gaea/src/main/kotlin/com/synebula/gaea/extension/ClassExt.kt +++ b/src/gaea/src/main/kotlin/com/synebula/gaea/extension/ClassExt.kt @@ -1,32 +1,12 @@ package com.synebula.gaea.extension -import java.lang.reflect.Field -import java.util.* - /** - * 系统类型 + * 获取对象字段信息字符串列表。 */ -val SystemClasses = arrayOf( - "String", - "Date", - "Int", - "Double", - "Float", - "BigDecimal", - "Decimal") - -/** - * 深度获取所有字段信息字符串列表。 - * @param prefix 前缀字符串 - */ -fun Class<*>.fields(prefix: String = ""): List { +fun Class<*>.fieldNames(): List { val names = mutableListOf() this.declaredFields.forEach { field -> - val fullName = if (prefix.isNotEmpty()) "$prefix.${field.name}" else field.name - names.add(fullName) - if (!field.type.isPrimitive && !field.type.isArray && !SystemClasses.contains(field.type.simpleName)) { - names.addAll(field.type.fields(fullName)) - } + names.add(field.name) } return names }