manage.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. package managesdk
  2. import (
  3. "errors"
  4. "git.sxidc.com/go-tools/api_binding/http_binding/response"
  5. "git.sxidc.com/go-tools/utils/http_client"
  6. )
  7. var currentServiceType ServiceType
  8. func SetServiceType(serviceType ServiceType) {
  9. currentServiceType = serviceType
  10. }
  11. func getServicePath() string {
  12. switch currentServiceType {
  13. case ServiceTypePerson:
  14. return "/person"
  15. case ServiceTypeResource:
  16. return "/resource"
  17. case ServiceTypeActivity:
  18. return "/activity"
  19. case ServiceTypePlan:
  20. return "/plan"
  21. default:
  22. return "/person"
  23. }
  24. }
  25. func Save(params any) (string, error) {
  26. postResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  27. Post(baseUrl+getServicePath()+"/save", params)
  28. if err != nil {
  29. return "", err
  30. }
  31. resp := new(response.IDResponse[string])
  32. err = postResponse.Json(resp)
  33. if err != nil {
  34. return "", err
  35. }
  36. if !resp.Success {
  37. return "", errors.New(resp.Msg)
  38. }
  39. return resp.ID, nil
  40. }
  41. func Query(params any) (*response.InfosData[map[string]any], error) {
  42. postResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  43. Post(baseUrl+getServicePath()+"/query", params)
  44. if err != nil {
  45. return nil, err
  46. }
  47. resp := new(response.InfosResponse[map[string]any])
  48. err = postResponse.Json(resp)
  49. if err != nil {
  50. return nil, err
  51. }
  52. if !resp.Success {
  53. return nil, errors.New(resp.Msg)
  54. }
  55. return &resp.InfosData, nil
  56. }
  57. func Get(id string) (*map[string]any, error) {
  58. getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  59. Get(baseUrl+getServicePath()+"/get",
  60. http_client.WithRequestQueryParams(map[string]string{
  61. "id": id,
  62. }))
  63. if err != nil {
  64. return nil, err
  65. }
  66. resp := new(response.InfoResponse[map[string]any])
  67. err = getResponse.Json(resp)
  68. if err != nil {
  69. return nil, err
  70. }
  71. if !resp.Success {
  72. return nil, errors.New(resp.Msg)
  73. }
  74. return &resp.Info, nil
  75. }
  76. func Delete(params any) error {
  77. postResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  78. Post(baseUrl+getServicePath()+"/delete", params)
  79. if err != nil {
  80. return err
  81. }
  82. resp := new(response.MsgResponse)
  83. err = postResponse.Json(resp)
  84. if err != nil {
  85. return err
  86. }
  87. if !resp.Success {
  88. return errors.New(resp.Msg)
  89. }
  90. return nil
  91. }
  92. func Options() ([]map[string]any, error) {
  93. var path string
  94. switch currentServiceType {
  95. case ServiceTypePerson:
  96. path = "/person/genders"
  97. case ServiceTypeResource:
  98. path = "/resource/categories"
  99. case ServiceTypeActivity:
  100. return []map[string]any{}, nil
  101. case ServiceTypePlan:
  102. return []map[string]any{}, nil
  103. default:
  104. return nil, errors.New("不支持的服务类型")
  105. }
  106. getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  107. Get(baseUrl + path)
  108. if err != nil {
  109. return nil, err
  110. }
  111. resp := new(response.InfosResponse[map[string]any])
  112. err = getResponse.Json(resp)
  113. if err != nil {
  114. return nil, err
  115. }
  116. if !resp.Success {
  117. return nil, errors.New(resp.Msg)
  118. }
  119. return resp.Infos, nil
  120. }
  121. func States() ([]map[string]any, error) {
  122. getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  123. Get(baseUrl + getServicePath() + "/states")
  124. if err != nil {
  125. return nil, err
  126. }
  127. resp := new(response.InfosResponse[map[string]any])
  128. err = getResponse.Json(resp)
  129. if err != nil {
  130. return nil, err
  131. }
  132. if !resp.Success {
  133. return nil, errors.New(resp.Msg)
  134. }
  135. return resp.Infos, nil
  136. }
  137. func PredefinedFields() ([]map[string]any, error) {
  138. getResponse, err := httpClient.NewRequest(http_client.WithNewRequestTimeout(timeoutDuration)).
  139. Get(baseUrl + getServicePath() + "/predefined-fields")
  140. if err != nil {
  141. return nil, err
  142. }
  143. resp := new(response.InfosResponse[map[string]any])
  144. err = getResponse.Json(resp)
  145. if err != nil {
  146. return nil, err
  147. }
  148. if !resp.Success {
  149. return nil, errors.New(resp.Msg)
  150. }
  151. return resp.Infos, nil
  152. }