kpler.go 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. var params models.KplerProductLibReq
  78. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &params); e != nil {
  79. br.Msg = "参数解析异常"
  80. br.ErrMsg = fmt.Sprintf("参数解析失败, %v", e)
  81. return
  82. }
  83. data, err := kpler.GetProducts(params)
  84. if err != nil {
  85. br.Msg = "获取数据失败"
  86. br.ErrMsg = fmt.Sprintf("获取数据失败, %v", err)
  87. return
  88. }
  89. br.Data = data
  90. br.Ret = 200
  91. br.Success = true
  92. br.Msg = "获取成功"
  93. }
  94. // 获取区域数据
  95. // @Title GetZoneData
  96. // @Description 获取区域数据
  97. // @Param body body models.KplerZoneDataLibReq true "请求参数"
  98. // @Success 200 {object} models.BaseResponse
  99. // @router /getZoneData [post]
  100. func (this *KplerController) GetZoneData() {
  101. //获取入参
  102. br := new(models.BaseResponse).Init()
  103. defer func() {
  104. if br.ErrMsg == "" {
  105. br.IsSendEmail = false
  106. }
  107. this.Data["json"] = br
  108. this.ServeJSON()
  109. }()
  110. var params models.KplerZoneDataLibReq
  111. if e := json.Unmarshal(this.Ctx.Input.RequestBody, &params); e != nil {
  112. //br.Msg = "参数解析异常"
  113. // br.ErrMsg = fmt.Sprintf("参数解析失败, %v", e)
  114. // return
  115. }
  116. token, err := kpler.GetKplerAccessToken(false)
  117. if err != nil {
  118. br.Msg = "获取token失败"
  119. br.ErrMsg = fmt.Sprintf("获取token失败, %v", err)
  120. return
  121. }
  122. data, err := kpler.GetZonesByApi(token, params.AncestorName, params.DescendantType)
  123. if err != nil {
  124. br.Msg = "获取数据失败"
  125. br.ErrMsg = fmt.Sprintf("获取数据失败, %v", err)
  126. return
  127. }
  128. br.Data = data
  129. br.Ret = 200
  130. br.Success = true
  131. br.Msg = "获取成功"
  132. }