[feat] 分离 orm 中查询字段部分到 resource
This commit is contained in:
+31
@@ -13,6 +13,8 @@ type ResConditionTokenType string
|
||||
type ResConditionOperator string
|
||||
type ResAuthDB int
|
||||
|
||||
type QueryDataType string
|
||||
|
||||
const (
|
||||
// 关闭权限过滤
|
||||
ResAuthOff ResAuthDB = iota
|
||||
@@ -36,6 +38,22 @@ const (
|
||||
ResDataType_Datetime ResDataType = "dateTime"
|
||||
)
|
||||
|
||||
const (
|
||||
QueryDataType_Number QueryDataType = "number"
|
||||
QueryDataType_Integer QueryDataType = "integer"
|
||||
QueryDataType_Float QueryDataType = "float"
|
||||
QueryDataType_String QueryDataType = "string"
|
||||
QueryDataType_Bool QueryDataType = "bool"
|
||||
QueryDataType_Array QueryDataType = "array"
|
||||
QueryDataType_Json QueryDataType = "json"
|
||||
)
|
||||
|
||||
const (
|
||||
QueryField_IsExpr = 1 << iota
|
||||
QueryField_IsOmitempty
|
||||
QueryField_Ignored
|
||||
)
|
||||
|
||||
type Resource interface {
|
||||
GetUuid() string
|
||||
GetName() string
|
||||
@@ -76,5 +94,18 @@ type ResField interface {
|
||||
ToQueryField(t QueryDataType, alias string, options int) QueryField
|
||||
}
|
||||
|
||||
type QueryField interface {
|
||||
ResField
|
||||
Type() QueryDataType
|
||||
Alias() string
|
||||
GetCodeOrAlias() string
|
||||
IsExpr() bool
|
||||
IsOmitempty() bool
|
||||
Ignored() bool
|
||||
SetOptions(int) QueryField
|
||||
ToSql() db.Expression
|
||||
ToStructField(tags ...string) reflect.StructField
|
||||
}
|
||||
|
||||
// 资源
|
||||
type GetResource func(code string) (Resource, bool)
|
||||
|
||||
Reference in New Issue
Block a user