kpler.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_data_analysis/models"
  5. "eta/eta_data_analysis/services/kpler"
  6. "fmt"
  7. "github.com/beego/beego/v2/server/web"
  8. )
  9. type KplerController struct {
  10. web.Controller
  11. }
  12. // 获取开普勒数据
  13. // @Title GetKplerData
  14. // @Description 获取开普勒数据
  15. // @Param body body models.KplerFlowDataLibReq true "请求参数"
  16. // @Success 200 {object} models.BaseResponse
  17. // @router /getFlowData [post]
  18. func (this *KplerController) GetFlowData() {
  19. //获取入参
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. if br.ErrMsg == "" {
  23. br.IsSendEmail = false
  24. }
  25. this.Data["json"] = br
  26. this.ServeJSON()
  27. }()
  28. var params models.KplerFlowDataLibReq
  29. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &params); e != nil {
  30. br.Msg = "参数解析异常"
  31. br.ErrMsg = fmt.Sprintf("参数解析失败, %v", e)
  32. return
  33. }
  34. if params.Granularity == "" {
  35. br.Msg = "请选择频度"
  36. return
  37. }
  38. if params.Split == "" {
  39. br.Msg = "请选择拆分类型"
  40. return
  41. }
  42. if params.Unit == "" {
  43. br.Msg = "请选择单位"
  44. return
  45. }
  46. if params.FlowDirection == "" {
  47. br.Msg = "请选择流向"
  48. return
  49. }
  50. data, err := kpler.GetKplerData(params)
  51. if err != nil {
  52. br.Msg = "获取数据失败"
  53. br.ErrMsg = fmt.Sprintf("获取数据失败, %v", err)
  54. return
  55. }
  56. br.Data = data
  57. br.Ret = 200
  58. br.Success = true
  59. br.Msg = "获取成功"
  60. }
  61. // 获取产品数据
  62. // @Title GetProductData
  63. // @Description 获取产品数据
  64. // @Param body body models.KplerProductDataLibReq true "请求参数"
  65. // @Success 200 {object} models.BaseResponse
  66. // @router /getProductData [post]
  67. func (this *KplerController) GetProductData() {
  68. //获取入参
  69. br := new(models.BaseResponse).Init()
  70. defer func() {
  71. if br.ErrMsg == "" {
  72. br.IsSendEmail = false
  73. }
  74. this.Data["json"] = br
  75. this.ServeJSON()
  76. }()
  77. data, err := kpler.GetProducts()
  78. if err != nil {
  79. br.Msg = "获取数据失败"
  80. br.ErrMsg = fmt.Sprintf("获取数据失败, %v", err)
  81. return
  82. }
  83. br.Data = data
  84. br.Ret = 200
  85. br.Success = true
  86. br.Msg = "获取成功"
  87. }
  88. // 获取区域数据
  89. // @Title GetZoneData
  90. // @Description 获取区域数据
  91. // @Param body body models.KplerZoneDataLibReq true "请求参数"
  92. // @Success 200 {object} models.BaseResponse
  93. // @router /getZoneData [post]
  94. func (this *KplerController) GetZoneData() {
  95. //获取入参
  96. br := new(models.BaseResponse).Init()
  97. defer func() {
  98. if br.ErrMsg == "" {
  99. br.IsSendEmail = false
  100. }
  101. this.Data["json"] = br
  102. this.ServeJSON()
  103. }()
  104. var params models.KplerZoneDataLibReq
  105. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &params); e != nil {
  106. //br.Msg = "参数解析异常"
  107. // br.ErrMsg = fmt.Sprintf("参数解析失败, %v", e)
  108. // return
  109. }
  110. token, err := kpler.GetKplerAccessToken()
  111. if err != nil {
  112. br.Msg = "获取token失败"
  113. br.ErrMsg = fmt.Sprintf("获取token失败, %v", err)
  114. return
  115. }
  116. data, err := kpler.GetZonesByApi(token, params.AncestorName, params.DescendantType)
  117. if err != nil {
  118. br.Msg = "获取数据失败"
  119. br.ErrMsg = fmt.Sprintf("获取数据失败, %v", err)
  120. return
  121. }
  122. br.Data = data
  123. br.Ret = 200
  124. br.Success = true
  125. br.Msg = "获取成功"
  126. }