package algor import ( "fmt" "surveyService/response" "surveyService/util" "github.com/guonaihong/gout" ) 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() (*BaseResponse[ListResponse[AppAuth]], *response.ErrCode) { var resp *BaseResponse[ListResponse[AppAuth]] resp, err := postReq[*BaseResponse[ListResponse[AppAuth]]]("/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 ListQuestionnaireTemplate() (*BaseResponse[ListResponse[QuestionnaireTemplate]], *response.ErrCode) { var resp *BaseResponse[ListResponse[QuestionnaireTemplate]] resp, err := postReq[*BaseResponse[ListResponse[QuestionnaireTemplate]]]("/openapi/questionnaireTemplate/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 ListQuestionnaireSubject() (*BaseResponse[ListResponse[QuestionnaireSubject]], *response.ErrCode) { var resp *BaseResponse[ListResponse[QuestionnaireSubject]] resp, err := postReq[*BaseResponse[ListResponse[QuestionnaireSubject]]]("/openapi/questionnaireSubject/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) (*BaseResponse[DetailResponse], *response.ErrCode) { var resp *BaseResponse[DetailResponse] resp, err := postReq[*BaseResponse[DetailResponse]]("/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 ExecuteRequest) (*BaseResponse[map[string]any], *response.ErrCode) { var resp *BaseResponse[map[string]any] resp, err := postReq[*BaseResponse[map[string]any]]("/openapi/run", gout.H{ "decisionModelSn": request.DecisionModelSN, "type": request.Type, "surveyData": request.SurveyData, "ocrData": request.OcrData, "extra": request.Extra, }) 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, util.Md5(s.AppSecret)), "appkey": s.AppKey, }). SetJSON(data). BindJSON(&res). Do() if err != nil { return res, err } return res, nil }