jiayue_index.go 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package index_data
  2. import (
  3. "eta/eta_bridge/controller/resp"
  4. "eta/eta_bridge/global"
  5. "eta/eta_bridge/models/jiayue"
  6. indexDataReq "eta/eta_bridge/models/request/index_data"
  7. "eta/eta_bridge/models/response"
  8. indexDataService "eta/eta_bridge/services/index_data"
  9. "github.com/gin-gonic/gin"
  10. "github.com/go-playground/validator/v10"
  11. "strings"
  12. )
  13. // JiaYueIndexController 嘉悦指标
  14. type JiaYueIndexController struct{}
  15. // GetData
  16. // @Description 获取嘉悦指标数据
  17. // @Success 200 {string} string "操作成功"
  18. // @Router /jiayue/index [get]
  19. func (j *JiaYueIndexController) GetData(c *gin.Context) {
  20. indexCode := c.DefaultQuery("index_code", "")
  21. source := c.DefaultQuery("source", "")
  22. startDate := c.DefaultQuery("start_date", "")
  23. endDate := c.DefaultQuery("end_date", "")
  24. if indexCode == "" {
  25. resp.FailMsg("请输入指标code码", "请输入指标code码", c)
  26. return
  27. }
  28. if source == "" {
  29. resp.FailMsg("请输入指标来源", "请输入指标来源", c)
  30. return
  31. }
  32. data, err, errMsg := indexDataService.GetIndexFromJiaYue(indexCode, source, startDate, endDate)
  33. if err != nil {
  34. resp.FailMsg("查询失败", err.Error()+errMsg, c)
  35. return
  36. }
  37. resp.OkData("操作成功", data, c)
  38. return
  39. }
  40. // GetPageIndex
  41. // @Description 获取嘉悦指标列表-分页
  42. // @Success 200 {string} string "获取成功"
  43. // @Router /jiayue/page_index [get]
  44. func (j *JiaYueIndexController) GetPageIndex(c *gin.Context) {
  45. var req indexDataReq.JiaYuePageIndexReq
  46. if e := c.BindQuery(&req); e != nil {
  47. err, ok := e.(validator.ValidationErrors)
  48. if !ok {
  49. resp.FailData("参数解析失败", "Err:"+e.Error(), c)
  50. return
  51. }
  52. resp.FailData("参数解析失败", err.Translate(global.Trans), c)
  53. return
  54. }
  55. if req.SourceExtend == "" {
  56. resp.FailMsg("请输入指标来源", "请输入指标来源", c)
  57. return
  58. }
  59. sourceArr := strings.Split(req.SourceExtend, ",")
  60. if len(sourceArr) == 0 {
  61. resp.FailMsg("指标来源有误", "指标来源有误", c)
  62. return
  63. }
  64. total, list, err := indexDataService.GetPageIndexesFromJiaYue(req.PageIndex, req.PageSize, sourceArr, req.Keyword, req.Frequency)
  65. if err != nil {
  66. resp.FailMsg("查询失败", err.Error(), c)
  67. return
  68. }
  69. var data response.JiaYuePageIndexResp
  70. data.Total = total
  71. data.List = list
  72. resp.OkData("操作成功", data, c)
  73. return
  74. }
  75. // GetIndexFrequency
  76. // @Description 获取指标频度列表
  77. // @Success 200 {string} string "获取成功"
  78. // @Router /jiayue/frequency_list [get]
  79. func (j *JiaYueIndexController) GetIndexFrequency(c *gin.Context) {
  80. list, err := jiayue.GetDictFrequency()
  81. if err != nil {
  82. resp.FailMsg("获取失败", err.Error(), c)
  83. return
  84. }
  85. // 过滤一下空的和斜杠
  86. data := make([]string, 0)
  87. for _, v := range list {
  88. if v != "" && v != "/" {
  89. data = append(data, v)
  90. }
  91. }
  92. resp.OkData("获取成功", data, c)
  93. return
  94. }