package domain_gateway import ( "git.sxidc.com/go-framework/baize/framework/core/api" "git.sxidc.com/go-framework/baize/framework/gateway" "git.sxidc.com/service-supports/fserr" "net/http" ) func SqlExecutorGateway(baseUrlNoUrlPrefix string, builder *gateway.Builder) { builder. Url(http.MethodPost, "/sql/execute"). Request(func(c *api.Context, historyRequests []gateway.BuilderRequest, resultMap map[string]any) (gateway.BuilderRequest, error) { bodyMap, err := gateway.AddJsonBodyTenantIDAndUserID(c, "", "executorId") if err != nil { return nil, err } userInfo := c.GetUserInfo() if userInfo == nil { bodyMap["executorName"] = "guest" } else { bodyMap["executorName"] = userInfo.GetName() } urlPrefixValue, ok := bodyMap["urlPrefix"] if !ok { return nil, fserr.New("没有传递服务名") } urlPrefix, ok := urlPrefixValue.(string) if !ok { return nil, fserr.New("服务名不是string类型") } delete(bodyMap, "urlPrefix") return &gateway.PostRequest{ Url: baseUrlNoUrlPrefix + "/" + urlPrefix + "/api/sql/execute", Body: bodyMap, }, nil }, nil). Build() builder. Url(http.MethodGet, "/sql/execute/log"). Request(func(c *api.Context, historyRequests []gateway.BuilderRequest, resultMap map[string]any) (gateway.BuilderRequest, error) { queryPrams, err := gateway.AddQueryParamsTenantIDAndUserID(c, "", "executorId") if err != nil { return nil, err } urlPrefix, ok := queryPrams["urlPrefix"] if !ok { return nil, fserr.New("没有传递服务名") } delete(queryPrams, "urlPrefix") return &gateway.GetRequest{ Url: baseUrlNoUrlPrefix + "/" + urlPrefix + "/api/sql/execute/log", QueryParams: queryPrams, }, nil }, nil). Build() }