|
@@ -281,7 +281,7 @@ type CustomCondition struct {
|
|
|
|
|
|
|
|
type FormCustomConditionFunc func(c *api.Context, params request.Params, e entity.Entity, i *infrastructure.Infrastructure) (*CustomCondition, error)
|
|
type FormCustomConditionFunc func(c *api.Context, params request.Params, e entity.Entity, i *infrastructure.Infrastructure) (*CustomCondition, error)
|
|
|
|
|
|
|
|
-func Query[O any](tableName string, orderBy string, stringFieldQueryCondition string, callbacks *QueryCallbacks[O], conditionFieldCallback ConditionFieldCallback, formCustomConditionFunc FormCustomConditionFunc) binding.ServiceFunc[response.InfosData[O]] {
|
|
|
|
|
|
|
+func Query[O any](tableName string, orderBy string, stringFieldQueryCondition string, customStringFieldQueryCondition map[string]string, callbacks *QueryCallbacks[O], conditionFieldCallback ConditionFieldCallback, formCustomConditionFunc FormCustomConditionFunc) binding.ServiceFunc[response.InfosData[O]] {
|
|
|
return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[O], error) {
|
|
return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[O], error) {
|
|
|
errResponse := response.InfosData[O]{
|
|
errResponse := response.InfosData[O]{
|
|
|
Infos: make([]O, 0),
|
|
Infos: make([]O, 0),
|
|
@@ -336,7 +336,15 @@ func Query[O any](tableName string, orderBy string, stringFieldQueryCondition st
|
|
|
return errResponse, errors.New("字符串字段值类型错误")
|
|
return errResponse, errors.New("字符串字段值类型错误")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- switch stringFieldQueryCondition {
|
|
|
|
|
|
|
+ queryCondition := stringFieldQueryCondition
|
|
|
|
|
+ if customStringFieldQueryCondition != nil {
|
|
|
|
|
+ custom, ok := customStringFieldQueryCondition[field.ColumnName]
|
|
|
|
|
+ if ok {
|
|
|
|
|
+ queryCondition = custom
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ switch queryCondition {
|
|
|
case StringFieldQueryConditionEqual:
|
|
case StringFieldQueryConditionEqual:
|
|
|
conditions.Equal(field.ColumnName, stringValue)
|
|
conditions.Equal(field.ColumnName, stringValue)
|
|
|
case StringFieldQueryConditionTrimSpaceEqual:
|
|
case StringFieldQueryConditionTrimSpaceEqual:
|