|
@@ -69,19 +69,21 @@ type FormAdditionalSelectClausesFunc func(queryParams AdvanceQueryParams) ([]str
|
|
|
type FormAdditionalFromFunc func(queryParams AdvanceQueryParams) ([]clause.Clause, error)
|
|
|
type FormAdditionalConditionsFunc func(queryParams AdvanceQueryParams) (clause.Clause, error)
|
|
|
type FormOtherClausesFunc func(queryParams AdvanceQueryParams) ([]clause.Clause, error)
|
|
|
+type PostQueryFunc[O any] func(queryParams AdvanceQueryParams, infos []O, i *infrastructure.Infrastructure) ([]O, error)
|
|
|
|
|
|
-type AddUseQueryRuleQueryRouteParams struct {
|
|
|
+type AddUseQueryRuleQueryRouteParams[O any] struct {
|
|
|
DBSchema string
|
|
|
QueryParams AdvanceQueryParams
|
|
|
FormAdditionalSelectClausesFunc FormAdditionalSelectClausesFunc
|
|
|
FormAdditionalFromFunc FormAdditionalFromFunc
|
|
|
FormAdditionalConditionsFunc FormAdditionalConditionsFunc
|
|
|
FormOtherClausesFunc FormOtherClausesFunc
|
|
|
+ PostQueryFunc PostQueryFunc[O]
|
|
|
Object domain.Object
|
|
|
QueryMiddlewares []binding.Middleware
|
|
|
}
|
|
|
|
|
|
-func (params *AddUseQueryRuleQueryRouteParams) check() error {
|
|
|
+func (params *AddUseQueryRuleQueryRouteParams[O]) check() error {
|
|
|
if params.DBSchema == "" {
|
|
|
return errors.New("没有传递DBSchema")
|
|
|
}
|
|
@@ -93,7 +95,7 @@ func (params *AddUseQueryRuleQueryRouteParams) check() error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func AddUseQueryRuleQueryRoute[O any](binder *binding.Binder, addParams *AddUseQueryRuleQueryRouteParams) error {
|
|
|
+func AddUseQueryRuleQueryRoute[O any](binder *binding.Binder, addParams *AddUseQueryRuleQueryRouteParams[O]) error {
|
|
|
err := addParams.check()
|
|
|
if err != nil {
|
|
|
return err
|
|
@@ -236,6 +238,15 @@ func AddUseQueryRuleQueryRoute[O any](binder *binding.Binder, addParams *AddUseQ
|
|
|
return errResponse, err
|
|
|
}
|
|
|
|
|
|
+ if addParams.PostQueryFunc != nil {
|
|
|
+ innerInfos, err := addParams.PostQueryFunc(queryParams, infos, i)
|
|
|
+ if err != nil {
|
|
|
+ return errResponse, err
|
|
|
+ }
|
|
|
+
|
|
|
+ infos = innerInfos
|
|
|
+ }
|
|
|
+
|
|
|
return response.InfosData[O]{
|
|
|
Infos: infos,
|
|
|
TotalCount: countResults[0].ColumnValueInt64("total"),
|