From 30b48be94da5970554e599f8db7bed52d8506bca Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 5 Nov 2020 00:25:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8C=83=E5=9B=B4=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/synebula/gaea/mongo/query/MongoQuery.kt | 9 +++++++-- .../kotlin/com/synebula/gaea/query/IQuery.kt | 17 +++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) 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 91d035c..c32a19e 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 @@ -12,6 +12,7 @@ import com.synebula.gaea.query.Page import com.synebula.gaea.query.Params import com.synebula.gaea.query.annotation.Table import org.springframework.data.mongodb.core.MongoTemplate +import org.springframework.data.mongodb.core.query.Criteria import org.springframework.data.mongodb.core.query.Query /** @@ -26,6 +27,10 @@ open class MongoQuery(var template: MongoTemplate, var logger: ILogger? = null) */ var validViewCollection = false + override fun get(id: TKey, clazz: Class): TView? { + return this.template.findOne(whereId(id), clazz, this.collection(clazz)) + } + override fun list(params: Map?, clazz: Class): List { val fields = this.fields(clazz) val query = Query() @@ -57,8 +62,8 @@ open class MongoQuery(var template: MongoTemplate, var logger: ILogger? = null) return result } - override fun get(id: TKey, clazz: Class): TView? { - return this.template.findOne(whereId(id), clazz, this.collection(clazz)) + override fun range(field: String, params: List, clazz: Class): List { + return this.template.find(Query.query(Criteria.where(field).`in`(params)), clazz, this.collection(clazz)) } fun fields(clazz: Class): Array { diff --git a/src/gaea/src/main/kotlin/com/synebula/gaea/query/IQuery.kt b/src/gaea/src/main/kotlin/com/synebula/gaea/query/IQuery.kt index de72e5f..debcd0a 100644 --- a/src/gaea/src/main/kotlin/com/synebula/gaea/query/IQuery.kt +++ b/src/gaea/src/main/kotlin/com/synebula/gaea/query/IQuery.kt @@ -9,8 +9,8 @@ interface IQuery { /** * 根据Key获取对象。 * - * @param key 对象Key。 - * @return + * @param id 对象Key。 + * @return 视图结果 */ fun get(id: TKey, clazz: Class): TView? @@ -18,7 +18,7 @@ interface IQuery { * 根据实体类条件查询所有符合条件记录 * * @param params 查询条件。 - * @return list + * @return 视图列表 */ fun list(params: Map?, clazz: Class): List @@ -26,7 +26,7 @@ interface IQuery { * 根据条件查询符合条件记录的数量 * * @param params 查询条件。 - * @return int + * @return 数量 */ fun count(params: Map?, clazz: Class): Int @@ -37,4 +37,13 @@ interface IQuery { * @return 分页数据 */ fun paging(params: Params, clazz: Class): Page + + /** + * 查询条件范围内数据。 + * @param field 查询字段 + * @param params 查询条件 + * + * @return 视图列表 + */ + fun range(field: String, params: List, clazz: Class): List }