chart_permission_sync.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package services
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/utils"
  5. "fmt"
  6. "io/ioutil"
  7. "net/http"
  8. "strings"
  9. )
  10. type ChartPermissionResp struct {
  11. Code int `json:"code" description:"状态码"`
  12. Msg string `json:"msg" description:"提示信息"`
  13. ErrMsg string `json:"-" description:"错误信息,不用返回给前端,只是做日志记录"`
  14. }
  15. func crmEtaPost(url string, pars interface{}) (respBody []byte, err error) {
  16. params, e := json.Marshal(pars)
  17. if e != nil {
  18. err = fmt.Errorf("data json marshal err: %s", e.Error())
  19. return
  20. }
  21. body := ioutil.NopCloser(strings.NewReader(string(params)))
  22. client := &http.Client{}
  23. req, e := http.NewRequest("POST", url, body)
  24. if e != nil {
  25. err = fmt.Errorf("http create request err: %s", e.Error())
  26. return
  27. }
  28. contentType := "application/json;charset=utf-8"
  29. req.Header.Set("Content-Type", contentType)
  30. req.Header.Set("Authorization", utils.CrmEtaAuthorization)
  31. resp, e := client.Do(req)
  32. if e != nil {
  33. err = fmt.Errorf("http client do err: %s", e.Error())
  34. return
  35. }
  36. defer func() {
  37. _ = resp.Body.Close()
  38. }()
  39. b, e := ioutil.ReadAll(resp.Body)
  40. if e != nil {
  41. err = fmt.Errorf("resp body read err: %s", e.Error())
  42. return
  43. }
  44. if len(b) == 0 {
  45. err = fmt.Errorf("resp body is empty")
  46. return
  47. }
  48. // 生产环境解密, 注意有个坑前后的双引号
  49. if utils.RunMode == "release" {
  50. str := string(b)
  51. str = strings.Trim(str, `"`)
  52. b = utils.DesBase64Decrypt([]byte(str), utils.CrmEtaServerDes3Key)
  53. }
  54. respBody = b
  55. return
  56. }
  57. func ChartFiccPermissionSync() (err error, errMsg string) {
  58. defer func() {
  59. if err != nil {
  60. utils.FileLog.Info("同步品种权限数据失败, Err: " + err.Error() + errMsg)
  61. }
  62. }()
  63. if utils.CrmEtaServerUrl == "" {
  64. return
  65. }
  66. url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/crm/chart_permission/sync")
  67. pars := make(map[string]interface{})
  68. b, err := crmEtaPost(url, pars)
  69. if err != nil {
  70. errMsg = "同步品种失败"
  71. err = fmt.Errorf("url:%s err: %s", url, err.Error())
  72. return
  73. }
  74. //result := new(models.ResultData)
  75. result := new(ChartPermissionResp)
  76. if e := json.Unmarshal(b, &result); e != nil {
  77. errMsg = "同步品种失败"
  78. err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
  79. return
  80. }
  81. utils.FileLog.Info("%s", string(b))
  82. if result.Code != 200 {
  83. err = fmt.Errorf("result: %s, err: %s", string(b), result.ErrMsg)
  84. errMsg = result.Msg
  85. return
  86. }
  87. return
  88. }
  89. type EditClassifyPermissionReq struct {
  90. Keyword string
  91. }
  92. // EditClassifyChartPermissionSync 设置报告分类权限
  93. func EditClassifyChartPermissionSync(keyword string) (err error) {
  94. defer func() {
  95. if err != nil {
  96. utils.FileLog.Info("同步设置报告分类权限失败, Err: " + err.Error())
  97. }
  98. }()
  99. if utils.CrmEtaServerUrl == "" {
  100. return
  101. }
  102. req := &EditClassifyPermissionReq{Keyword: keyword}
  103. url := fmt.Sprint(utils.CrmEtaServerUrl, "/api/crm/chart_permission/classify/sync")
  104. b, err := crmEtaPost(url, req)
  105. if err != nil {
  106. err = fmt.Errorf("url:%s err: %s", url, err.Error())
  107. return
  108. }
  109. //result := new(models.ResultData)
  110. result := new(ChartPermissionResp)
  111. if e := json.Unmarshal(b, &result); e != nil {
  112. err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
  113. return
  114. }
  115. utils.FileLog.Info("%s", string(b))
  116. if result.Code != 200 {
  117. err = fmt.Errorf("result: %s", string(b))
  118. return
  119. }
  120. return
  121. }