瀏覽代碼

添加值对象orderby

yjp 1 年之前
父節點
當前提交
c4aca187d9
共有 2 個文件被更改,包括 12 次插入2 次删除
  1. 2 1
      convenient/value_object_crud/service.go
  2. 10 1
      convenient/value_object_crud/simple.go

+ 2 - 1
convenient/value_object_crud/service.go

@@ -107,7 +107,7 @@ func Delete(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[an
 
 type ConditionFieldCallback func(conditions *sql.Conditions, fieldName string, columnName string, value any) (hasDeal bool, err error)
 
-func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionFieldCallback ConditionFieldCallback) binding.ServiceFunc[response.InfosData[O]] {
+func Query[O any](tableName string, orderBy string, callbacks *QueryCallbacks[O], conditionFieldCallback ConditionFieldCallback) 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),
@@ -166,6 +166,7 @@ func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionField
 		results, totalCount, err := database.Query(dbExecutor, &sql.QueryExecuteParams{
 			TableName:  tableName,
 			Conditions: conditions,
+			OrderBy:    orderBy,
 			PageNo:     queryParams.GetPageNo(),
 			PageSize:   queryParams.GetPageSize(),
 		})

+ 10 - 1
convenient/value_object_crud/simple.go

@@ -99,7 +99,7 @@ func (simple *Simple[I]) bind(binder *binding.Binder) {
 			SendResponseFunc: response.SendInfosResponse[I],
 			RequestParams:    simple.QueryQueryParams,
 			Objects:          []domain.Object{simple.ValueObject},
-			ServiceFunc:      Query(tableName, queryOptions.callbacks, queryOptions.conditionFieldCallback),
+			ServiceFunc:      Query(tableName, queryOptions.orderBy, queryOptions.callbacks, queryOptions.conditionFieldCallback),
 		}, queryMiddlewares...)
 	}
 }
@@ -182,6 +182,9 @@ type QueryOptions[I any] struct {
 
 	// 查询中间件
 	middlewares []binding.Middleware
+
+	// OrderBy
+	orderBy string
 }
 
 func WithGlobalMiddlewares(middlewares ...binding.Middleware) GlobalOption {
@@ -261,3 +264,9 @@ func WithQueryMiddlewares[I any](middlewares ...binding.Middleware) QueryOption[
 		options.middlewares = middlewares
 	}
 }
+
+func WithQueryOrderBy[I any](orderBy string) QueryOption[I] {
+	return func(options *QueryOptions[I]) {
+		options.orderBy = orderBy
+	}
+}