From 0b79b63b2822e19dbc3f1ffa76d76c69431ba60c Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 19 Mar 2021 14:11:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BB=A3=E7=A0=81=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E7=AD=89=EF=BC=9B=E8=B0=83=E6=95=B4=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=8F=82=E5=A6=82=E5=85=BC=E5=AE=B9@=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/synebula/gaea/app/query/IQueryApp.kt | 7 +-- .../com/synebula/gaea/data/cache/ICache.kt | 2 +- .../synebula/gaea/data/code/CompositeCode.kt | 7 +-- .../gaea/data/code/FixedSerialCode.kt | 5 -- .../com/synebula/gaea/data/code/ValueCode.kt | 5 +- .../kotlin/com/synebula/gaea/query/Params.kt | 57 ++++++++++++++++--- 6 files changed, 55 insertions(+), 28 deletions(-) diff --git a/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/query/IQueryApp.kt b/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/query/IQueryApp.kt index 0d7d640..608d2aa 100644 --- a/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/query/IQueryApp.kt +++ b/src/gaea.app/src/main/kotlin/com/synebula/gaea/app/query/IQueryApp.kt @@ -28,7 +28,7 @@ interface IQueryApp : IApplication { } @GetMapping - fun list(@RequestParam params: MutableMap): HttpMessage { + fun list(@RequestParam params: LinkedHashMap): HttpMessage { return this.doQuery("获取${this.name}列表数据失败") { this.query!!.list(params, clazz) } @@ -38,11 +38,10 @@ interface IQueryApp : IApplication { fun paging( @PathVariable size: Int, @PathVariable page: Int, - @RequestParam parameters: MutableMap + @RequestParam parameters: LinkedHashMap ): HttpMessage { return this.doQuery("获取${this.name}分页数据[条数:$size,页码:$page]失败") { - val data = Params(page, size) - data.parameters = parameters + val data = Params(page, size, parameters) this.query!!.paging(data, clazz) } } diff --git a/src/gaea/src/main/kotlin/com/synebula/gaea/data/cache/ICache.kt b/src/gaea/src/main/kotlin/com/synebula/gaea/data/cache/ICache.kt index e6b5aed..48aa871 100644 --- a/src/gaea/src/main/kotlin/com/synebula/gaea/data/cache/ICache.kt +++ b/src/gaea/src/main/kotlin/com/synebula/gaea/data/cache/ICache.kt @@ -10,5 +10,5 @@ package com.synebula.gaea.data.cache interface ICache { fun add(key: String, value: CacheEntity) - operator fun get(key: String): CacheEntity + operator fun get(key: String): CacheEntity? } diff --git a/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/CompositeCode.kt b/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/CompositeCode.kt index 46953b2..c660a9a 100644 --- a/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/CompositeCode.kt +++ b/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/CompositeCode.kt @@ -8,13 +8,8 @@ package com.synebula.gaea.data.code * @since 2016年10月24日 下午2:53:50 */ class CompositeCode(val generators: List>?) : ICodeGenerator { - - /* - * Method - */ - override fun generate(): String { - if (this.generators == null || generators.size == 0) + if (this.generators == null || generators.isEmpty()) return "" val buffer = StringBuffer() for (generator in generators) { diff --git a/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/FixedSerialCode.kt b/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/FixedSerialCode.kt index 17bf044..2413da4 100644 --- a/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/FixedSerialCode.kt +++ b/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/FixedSerialCode.kt @@ -29,11 +29,6 @@ class FixedSerialCode( var step: Int = 1 ) : ICodeGenerator { - - /* - * Method - */ - @Synchronized override fun generate(): String { val value = this.seed diff --git a/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/ValueCode.kt b/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/ValueCode.kt index fe8bf7f..8a4dc9b 100644 --- a/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/ValueCode.kt +++ b/src/gaea/src/main/kotlin/com/synebula/gaea/data/code/ValueCode.kt @@ -8,10 +8,7 @@ package com.synebula.gaea.data.code * @since 2016年10月24日 下午4:07:10 */ class ValueCode(var value: String) : ICodeGenerator { - - /* - * Method - */ + override fun generate(): String { return this.value } diff --git a/src/gaea/src/main/kotlin/com/synebula/gaea/query/Params.kt b/src/gaea/src/main/kotlin/com/synebula/gaea/query/Params.kt index cf623cb..e4c49f3 100644 --- a/src/gaea/src/main/kotlin/com/synebula/gaea/query/Params.kt +++ b/src/gaea/src/main/kotlin/com/synebula/gaea/query/Params.kt @@ -11,36 +11,77 @@ import com.synebula.gaea.query.type.Order */ data class Params(var page: Int = 1, var size: Int = 10) { + private var _parameters = mutableMapOf() + private var _orders = mutableMapOf() + /** * 数据索引,从0开始。表示数据在总量的第几条。(index = (page - 1) * size) */ - var index: Long = 0 - get() = (page.toLong() - 1) * size.toLong() + var index: Int = 0 + get() = (page - 1) * size private set /** * 排序条件。 */ - var orders: MutableMap = hashMapOf() + var orders: Map + set(value) { + this._orders = value.toMutableMap() + } + get() { + if (this._parameters.keys.count { it.startsWith("@") } > 0) { + val params = mutableMapOf() + this._parameters.forEach { + if (it.key.startsWith("@")) { + this._orders[it.key.removePrefix("@")] = Order.valueOf(it.value.toString()) + } else + params[it.key] = it.value + } + this._parameters = params + } + return this._orders + } /** * 查询条件。 */ - var parameters: MutableMap = hashMapOf() + var parameters: Map + set(value) { + this._parameters = value.toMutableMap() + } + get() { + if (this._parameters.keys.count { it.startsWith("@") } > 0) { + val params = mutableMapOf() + this._parameters.forEach { + if (it.key.startsWith("@")) { + this._orders[it.key.removePrefix("@")] = Order.valueOf(it.value.toString()) + } else + params[it.key] = it.value + } + this._parameters = params + } + return this._parameters + } + + constructor(page: Int, size: Int, parameters: LinkedHashMap) : this(page, size) { + this.page = page + this.size = size + this._parameters = parameters + } /** * 添加查询条件 */ - fun addParameter(field: String, value: Any): Params { - parameters[field] = value + fun where(field: String, value: Any): Params { + _parameters[field] = value return this } /** * 添加排序条件 */ - fun addOrderBy(field: String, type: Order = Order.ASC): Params { - orders[field] = type + fun order(field: String, order: Order = Order.ASC): Params { + _orders[field] = order return this } }