重构Gaea服务, 升级版本

This commit is contained in:
2020-07-07 15:06:58 +08:00
parent a086ba5dd8
commit 0d747f92b2
11 changed files with 50 additions and 50 deletions

View File

@@ -3,7 +3,21 @@ package com.synebula.gaea.app.component
import com.synebula.gaea.data.message.Status
import com.synebula.gaea.data.message.Message
class HttpMessage(status: Int = Status.Success) : Message<Any>(status) {
class HttpMessage() : Message<Any>() {
constructor(data: Any) : this() {
this.data = data
}
constructor(status: Int, message: String) : this() {
this.status = status
this.message = message
}
constructor(status: Int, data: Any, message: String) : this(status, message) {
this.data = data
}
fun load(msg: Message<*>) {
this.status = msg.status
this.message = msg.message

View File

@@ -1,3 +0,0 @@
package com.synebula.gaea.mongo
annotation class Collection(val name: String = "")

View File

@@ -30,9 +30,9 @@ fun Query.select(fields: Array<String>): Query {
* @param onWhere 获取字段查询方式的方法
*/
fun Query.where(
params: Map<String, Any>?,
onWhere: ((v: String) -> Operator) = { Operator.default },
onFieldType: ((v: String) -> Class<*>?) = { null }
params: Map<String, Any>?,
onWhere: ((v: String) -> Operator) = { Operator.default },
onFieldType: ((v: String) -> Class<*>?) = { null }
): Query {
val list = arrayListOf<Criteria>()
if (params != null) {
@@ -106,7 +106,7 @@ fun <TKey> whereId(id: TKey): Query = Query.query(Criteria.where("_id").`is`(id)
*
* @param orders 排序条件字段
*/
fun order(orders: Map<String, OrderType>?): Sort {
fun order(orders: Map<String, Order>?): Sort {
val orderList = mutableListOf<Sort.Order>()
orders?.forEach {
orderList.add(Sort.Order(Sort.Direction.valueOf(it.value.name), it.key))

View File

@@ -6,10 +6,14 @@ import java.util.*
*
* 用来统一Http返回消息类型通常使用json格式传递
*
* @param status http编码。200成功400错误500异常
* @tparam T 消息数据类型
*/
open class Message<T>(var status: Int = Status.Success) {
open class Message<T>() {
/**
* 状态。200成功400错误500异常
*/
var status: Int = Status.Success
/**
* 获取状态是否成功
@@ -32,17 +36,17 @@ open class Message<T>(var status: Int = Status.Success) {
*/
val timestamp: Long = Date().time
constructor(data: T) : this(Status.Success) {
constructor(data: T) : this() {
this.data = data
}
constructor(status: Int, message: String) : this(status) {
constructor(status: Int, message: String) : this() {
this.status = status
this.message = message
}
constructor(status: Int, data: T, message: String) : this(status) {
constructor(status: Int, data: T, message: String) : this(status, message) {
this.data = data
this.message = message
}

View File

@@ -4,30 +4,21 @@ package com.synebula.gaea.query
* 分页数据。
* 真实数据行无后台遍历需求,直接使用object类型表示即可.
*
* @param page 页码从1开始。
* @param size 每页数据量。
* @author alex
*/
class Page<T> {
/**
* 页码从1开始。
*/
var page: Int = 0
/**
* 每页数据量。
*/
var size: Int = 0
data class Page<T>(var page: Int = 0, var size: Int = 0) {
/**
* 总数据量。
*/
var total: Int = 0
/**
* 数据索引从0开始。表示数据在总量的第几条。index = (page - 1) * size
*/
var index: Int
val index: Int
get() = (page - 1) * size
/**
@@ -36,18 +27,6 @@ class Page<T> {
var data = listOf<T>()
/**
* 数据构造。
*
* @param page 页码从1开始。
* @param size 每页数据量。
*/
constructor(page: Int, size: Int) : super() {
this.page = page
this.size = size
this.index = (page - 1) * size + 1
}
/**
* 数据构造。
*
@@ -57,11 +36,10 @@ class Page<T> {
* @param data 结果数据。
*/
constructor(page: Int, size: Int, total: Int, data: List<T>) : super() {
constructor(page: Int, size: Int, total: Int, data: List<T>) : this(page, size) {
this.page = page
this.size = size
this.total = total
this.index = (page - 1) * size + 1
this.data = data
}
}

View File

@@ -1,5 +1,7 @@
package com.synebula.gaea.query
import com.synebula.gaea.query.type.Order
/**
* class 分页参数信息
*
@@ -19,7 +21,7 @@ data class Params(var page: Int = 1, var size: Int = 10) {
/**
* 排序条件。
*/
var orders: MutableMap<String, OrderType> = hashMapOf()
var orders: MutableMap<String, Order> = hashMapOf()
/**
* 查询条件。
@@ -37,7 +39,7 @@ data class Params(var page: Int = 1, var size: Int = 10) {
/**
* 添加排序条件
*/
fun addOrderBy(field: String, type: OrderType = OrderType.ASC): Params {
fun addOrderBy(field: String, type: Order = Order.ASC): Params {
orders[field] = type
return this
}

View File

@@ -1,4 +0,0 @@
package com.synebula.gaea.query
@Target(AnnotationTarget.FIELD)
annotation class Where(val operator: Operator)

View File

@@ -0,0 +1,3 @@
package com.synebula.gaea.query.annotation
annotation class Table(val name: String = "")

View File

@@ -0,0 +1,6 @@
package com.synebula.gaea.query.annotation
import com.synebula.gaea.query.type.Operator
@Target(AnnotationTarget.FIELD)
annotation class Where(val operator: Operator)

View File

@@ -1,4 +1,4 @@
package com.synebula.gaea.query
package com.synebula.gaea.query.type
enum class Operator {
/**

View File

@@ -1,4 +1,4 @@
package com.synebula.gaea.query
package com.synebula.gaea.query.type
/**
* class OrderType
@@ -7,7 +7,7 @@ package com.synebula.gaea.query
* @version 0.1
* @since 2020-05-15
*/
enum class OrderType {
enum class Order {
/**
* 升序排列
*/