main.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package algor
  2. import (
  3. "fmt"
  4. "github.com/guonaihong/gout"
  5. "gogs.uu.mdfitnesscao.com/cuiguohai/sdk"
  6. "gogs.uu.mdfitnesscao.com/cuiguohai/sdk/response"
  7. "gogs.uu.mdfitnesscao.com/cuiguohai/sdk/utils"
  8. )
  9. var s *setting
  10. type setting struct {
  11. Domain string
  12. AppKey string
  13. AppSecret string
  14. Debug bool
  15. }
  16. func InitClient(domain, appKey, appSecret string, debug bool) {
  17. s = &setting{
  18. Domain: domain,
  19. AppKey: appKey,
  20. AppSecret: appSecret,
  21. Debug: debug,
  22. }
  23. }
  24. // 获取授权列表
  25. func ListAuthorizes() (*sdk.BaseResponse[sdk.ListResponse[sdk.AlgorAppAuth]], *response.ErrCode) {
  26. var resp *sdk.BaseResponse[sdk.ListResponse[sdk.AlgorAppAuth]]
  27. resp, err := postReq[*sdk.BaseResponse[sdk.ListResponse[sdk.AlgorAppAuth]]]("/openapi/authorize/list", gout.H{})
  28. if err != nil {
  29. return nil, response.ErrPlatform
  30. }
  31. if resp.Code != 200 {
  32. return nil, &response.ErrCode{
  33. Code: resp.Code,
  34. Msg: resp.Message,
  35. }
  36. }
  37. return resp, nil
  38. }
  39. // 获取问卷信息
  40. func DetailSurvey(decisionModelSn string) (*sdk.BaseResponse[sdk.DetailResponse[any]], *response.ErrCode) {
  41. var resp *sdk.BaseResponse[sdk.DetailResponse[any]]
  42. resp, err := postReq[*sdk.BaseResponse[sdk.DetailResponse[any]]]("/openapi/survey/detail", gout.H{
  43. "decisionModelSn": decisionModelSn,
  44. })
  45. if err != nil {
  46. return nil, response.ErrPlatform
  47. }
  48. if resp.Code != 200 {
  49. return nil, &response.ErrCode{
  50. Code: resp.Code,
  51. Msg: resp.Message,
  52. }
  53. }
  54. return resp, nil
  55. }
  56. // 执行决策模型
  57. func Run(request sdk.ExecuteRequest) (*sdk.BaseResponse[map[string]any], *response.ErrCode) {
  58. var resp *sdk.BaseResponse[map[string]any]
  59. resp, err := postReq[*sdk.BaseResponse[map[string]any]]("/openapi/run", utils.StructToGoutH(request))
  60. if err != nil {
  61. return nil, response.ErrPlatform
  62. }
  63. if resp.Code != 200 {
  64. return nil, &response.ErrCode{
  65. Code: resp.Code,
  66. Msg: resp.Message,
  67. }
  68. }
  69. return resp, nil
  70. }
  71. func postReq[T any](path string, data gout.H) (T, error) {
  72. url := fmt.Sprintf("%s%s", s.Domain, path)
  73. fmt.Println("请求地址 ===>", url)
  74. var res T
  75. err := gout.POST(url).Debug(s.Debug).
  76. SetHeader(gout.H{
  77. "token": fmt.Sprintf("%s:%s", s.AppKey, utils.Md5(s.AppSecret)),
  78. "appkey": s.AppKey,
  79. }).
  80. SetJSON(data).
  81. BindJSON(&res).
  82. Do()
  83. if err != nil {
  84. return res, err
  85. }
  86. return res, nil
  87. }