eta_forum_chart.go 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_report/models"
  5. "eta/eta_report/services"
  6. "eta/eta_report/utils"
  7. "fmt"
  8. "io/ioutil"
  9. "net/http"
  10. "strings"
  11. )
  12. // EtaForumChartController 图表详情
  13. type EtaForumChartController struct {
  14. BaseAuthController
  15. }
  16. // ChartDetail
  17. // @Title 表格详情
  18. // @Description 表格详情
  19. // @Success 200 {object} models.EnglishReportShareDetailResp
  20. // @router /chart/detail [post]
  21. func (this *EtaForumChartController) ChartDetail() {
  22. br := new(models.BaseResponse).Init()
  23. defer func() {
  24. if br.ErrMsg == "" {
  25. br.IsSendEmail = false
  26. }
  27. this.Data["json"] = br
  28. this.ServeJSONNoEncryption()
  29. }()
  30. var req services.ChartDetailReq
  31. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  32. if err != nil {
  33. br.Msg = "参数解析异常!"
  34. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  35. return
  36. }
  37. if req.UniqueCode == "" {
  38. br.Msg = "参数不能为空!"
  39. br.ErrMsg = "参数不能为空!"
  40. return
  41. }
  42. url := utils.ChartLibUrl + `/eta_forum/chart/common/detail?UniqueCode=%s`
  43. url = fmt.Sprintf(url, req.UniqueCode)
  44. fmt.Println("url:" + url)
  45. resp, e := http.Get(url)
  46. if e != nil {
  47. err = fmt.Errorf("http Get err: %s", e.Error())
  48. br.ErrMsg = err.Error()
  49. return
  50. }
  51. defer resp.Body.Close()
  52. b, e := ioutil.ReadAll(resp.Body)
  53. if e != nil {
  54. err = fmt.Errorf("resp body read err: %s", e.Error())
  55. br.ErrMsg = err.Error()
  56. return
  57. }
  58. if len(b) == 0 {
  59. err = fmt.Errorf("resp body is empty")
  60. br.ErrMsg = err.Error()
  61. return
  62. }
  63. bodyStr := string(b)
  64. bodyStr = strings.TrimLeft(bodyStr, `"`)
  65. bodyStr = strings.TrimRight(bodyStr, `"`)
  66. bodyResult := utils.DesBase64Decrypt([]byte(bodyStr), utils.DesKey)
  67. result := new(models.BaseResponse)
  68. if e = json.Unmarshal(bodyResult, &result); e != nil {
  69. err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
  70. br.ErrMsg = err.Error()
  71. br.Msg = result.Msg
  72. return
  73. }
  74. if result.Ret != 200 {
  75. err = fmt.Errorf("result: %s", string(b))
  76. br.ErrMsg = result.ErrMsg + err.Error()
  77. br.Msg = result.Msg
  78. return
  79. }
  80. br.Ret = 200
  81. br.Success = true
  82. br.Msg = "获取成功"
  83. br.Data = result.Data
  84. }