package algor import ( "fmt" "github.com/guonaihong/gout" "gogs.uu.mdfitnesscao.com/cuiguohai/sdk" "gogs.uu.mdfitnesscao.com/cuiguohai/sdk/response" "gogs.uu.mdfitnesscao.com/cuiguohai/sdk/utils" ) var s *setting type setting struct { Domain string AppKey string AppSecret string Debug bool } func InitClient(domain, appKey, appSecret string, debug bool) { s = &setting{ Domain: domain, AppKey: appKey, AppSecret: appSecret, Debug: debug, } } // 获取授权列表 func ListAuthorizes() (*sdk.BaseResponse[sdk.ListResponse[sdk.AlgorAppAuth]], *response.ErrCode) { var resp *sdk.BaseResponse[sdk.ListResponse[sdk.AlgorAppAuth]] resp, err := postReq[*sdk.BaseResponse[sdk.ListResponse[sdk.AlgorAppAuth]]]("/openapi/authorize/list", gout.H{}) if err != nil { return nil, response.ErrPlatform } if resp.Code != 200 { return nil, &response.ErrCode{ Code: resp.Code, Msg: resp.Message, } } return resp, nil } // 获取问卷信息 func DetailSurvey(decisionModelSn string) (*sdk.BaseResponse[sdk.DetailResponse[any]], *response.ErrCode) { var resp *sdk.BaseResponse[sdk.DetailResponse[any]] resp, err := postReq[*sdk.BaseResponse[sdk.DetailResponse[any]]]("/openapi/survey/detail", gout.H{ "decisionModelSn": decisionModelSn, }) if err != nil { return nil, response.ErrPlatform } if resp.Code != 200 { return nil, &response.ErrCode{ Code: resp.Code, Msg: resp.Message, } } return resp, nil } // 执行决策模型 func Run(request sdk.ExecuteRequest) (*sdk.BaseResponse[map[string]any], *response.ErrCode) { var resp *sdk.BaseResponse[map[string]any] resp, err := postReq[*sdk.BaseResponse[map[string]any]]("/openapi/run", utils.StructToGoutH(request)) if err != nil { return nil, response.ErrPlatform } if resp.Code != 200 { return nil, &response.ErrCode{ Code: resp.Code, Msg: resp.Message, } } return resp, nil } func postReq[T any](path string, data gout.H) (T, error) { url := fmt.Sprintf("%s%s", s.Domain, path) fmt.Println("请求地址 ===>", url) var res T err := gout.POST(url).Debug(s.Debug). SetHeader(gout.H{ "token": fmt.Sprintf("%s:%s", s.AppKey, utils.Md5(s.AppSecret)), "appkey": s.AppKey, }). SetJSON(data). BindJSON(&res). Do() if err != nil { return res, err } return res, nil }