excel.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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. )
  11. // ExcelController 表格详情
  12. type ExcelController struct {
  13. BaseAuthController
  14. }
  15. // ExcelDetail
  16. // @Title 表格详情
  17. // @Description 表格详情
  18. // @Success 200 {object} models.EnglishReportShareDetailResp
  19. // @router /detail [post]
  20. func (this *ExcelController) ExcelDetail() {
  21. br := new(models.BaseResponse).Init()
  22. defer func() {
  23. if br.ErrMsg == "" {
  24. br.IsSendEmail = false
  25. }
  26. this.Data["json"] = br
  27. this.ServeJSON()
  28. }()
  29. var req services.ExcelDetailReq
  30. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  31. if err != nil {
  32. br.Msg = "参数解析异常!"
  33. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  34. return
  35. }
  36. url := fmt.Sprint(utils.ChartLibUrl+`excel_info/detail?UniqueCode=%s&FromScene=%s`, req.UniqueCode,req.FromScene )
  37. resp, e := http.Get(url)
  38. if e != nil {
  39. err = fmt.Errorf("http Get err: %s", e.Error())
  40. return
  41. }
  42. defer resp.Body.Close()
  43. b, e := ioutil.ReadAll(resp.Body)
  44. if e != nil {
  45. err = fmt.Errorf("resp body read err: %s", e.Error())
  46. br.ErrMsg = err.Error()
  47. return
  48. }
  49. if len(b) == 0 {
  50. err = fmt.Errorf("resp body is empty")
  51. br.ErrMsg = err.Error()
  52. return
  53. }
  54. result := new(models.BaseResponse)
  55. if e = json.Unmarshal(b, &result); e != nil {
  56. err = fmt.Errorf("result unmarshal err: %s\nresult: %s", e.Error(), string(b))
  57. br.ErrMsg = err.Error()
  58. return
  59. }
  60. if result.Ret != 200 {
  61. err = fmt.Errorf("result: %s", string(b))
  62. br.ErrMsg = err.Error()
  63. return
  64. }
  65. br.Ret = 200
  66. br.Success = true
  67. br.Msg = "获取成功"
  68. br.Data = result.Data
  69. return
  70. }