|
|
@@ -281,7 +281,7 @@ type CustomCondition struct {
|
|
|
|
|
|
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, callbacks *QueryCallbacks[O], conditionFieldCallback ConditionFieldCallback, formCustomConditionFunc FormCustomConditionFunc) binding.ServiceFunc[response.InfosData[O]] {
|
|
|
+func Query[O any](tableName string, orderBy string, stringFieldQueryCondition 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) {
|
|
|
errResponse := response.InfosData[O]{
|
|
|
Infos: make([]O, 0),
|
|
|
@@ -336,7 +336,18 @@ func Query[O any](tableName string, orderBy string, callbacks *QueryCallbacks[O]
|
|
|
return errResponse, errors.New("字符串字段值类型错误")
|
|
|
}
|
|
|
|
|
|
- conditions.Like(field.ColumnName, "%"+strings.TrimSpace(stringValue)+"%")
|
|
|
+ switch stringFieldQueryCondition {
|
|
|
+ case StringFieldQueryConditionEqual:
|
|
|
+ conditions.Equal(field.ColumnName, stringValue)
|
|
|
+ case StringFieldQueryConditionTrimSpaceEqual:
|
|
|
+ conditions.Equal(field.ColumnName, strings.TrimSpace(stringValue))
|
|
|
+ case StringFieldQueryConditionLike:
|
|
|
+ conditions.Like(field.ColumnName, "%"+stringValue+"%")
|
|
|
+ case StringFieldQueryConditionTrimSpaceLike:
|
|
|
+ conditions.Like(field.ColumnName, "%"+strings.TrimSpace(stringValue)+"%")
|
|
|
+ default:
|
|
|
+ conditions.Equal(field.ColumnName, stringValue)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|