jiayue_index.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  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 [post]
  19. func (j *JiaYueIndexController) GetData(c *gin.Context) {
  20. var req indexDataReq.JiaYueIndexReq
  21. if e := c.Bind(&req); e != nil {
  22. err, ok := e.(validator.ValidationErrors)
  23. if !ok {
  24. resp.FailData("参数解析失败", "Err:"+e.Error(), c)
  25. return
  26. }
  27. resp.FailData("参数解析失败", err.Translate(global.Trans), c)
  28. return
  29. }
  30. if req.IndexCode == "" {
  31. resp.FailMsg("请输入指标code码", "请输入指标code码", c)
  32. return
  33. }
  34. if req.SourceExtend == "" {
  35. resp.FailMsg("请输入指标来源", "请输入指标来源", c)
  36. return
  37. }
  38. sourceArr := strings.Split(req.SourceExtend, ",")
  39. if len(sourceArr) == 0 {
  40. resp.FailMsg("指标来源有误", "指标来源有误", c)
  41. return
  42. }
  43. data, err, errMsg := indexDataService.GetIndexFromJiaYue(req.IndexCode, req.StartDate, req.EndDate, sourceArr)
  44. if err != nil {
  45. resp.FailMsg("查询失败", err.Error()+errMsg, c)
  46. return
  47. }
  48. resp.OkData("操作成功", data, c)
  49. return
  50. }
  51. // GetPageIndex
  52. // @Description 获取嘉悦指标列表-分页
  53. // @Success 200 {string} string "获取成功"
  54. // @Router /jiayue/page_index [post]
  55. func (j *JiaYueIndexController) GetPageIndex(c *gin.Context) {
  56. var req indexDataReq.JiaYuePageIndexReq
  57. if e := c.Bind(&req); e != nil {
  58. err, ok := e.(validator.ValidationErrors)
  59. if !ok {
  60. resp.FailData("参数解析失败", "Err:"+e.Error(), c)
  61. return
  62. }
  63. resp.FailData("参数解析失败", err.Translate(global.Trans), c)
  64. return
  65. }
  66. if req.SourceExtend == "" {
  67. resp.FailMsg("请输入指标来源", "请输入指标来源", c)
  68. return
  69. }
  70. sourceArr := strings.Split(req.SourceExtend, ",")
  71. if len(sourceArr) == 0 {
  72. resp.FailMsg("指标来源有误", "指标来源有误", c)
  73. return
  74. }
  75. total, list, err := indexDataService.GetPageIndexesFromJiaYue(req.PageIndex, req.PageSize, sourceArr, req.Keyword, req.Frequency, req.SortField, req.SortRule)
  76. if err != nil {
  77. resp.FailMsg("查询失败", err.Error(), c)
  78. return
  79. }
  80. var data response.JiaYuePageIndexResp
  81. data.Total = total
  82. data.List = list
  83. resp.OkData("操作成功", data, c)
  84. return
  85. }
  86. // GetIndexFrequency
  87. // @Description 获取指标频度列表
  88. // @Success 200 {string} string "获取成功"
  89. // @Router /jiayue/frequency_list [post]
  90. func (j *JiaYueIndexController) GetIndexFrequency(c *gin.Context) {
  91. list, err := jiayue.GetDictFrequency()
  92. if err != nil {
  93. resp.FailMsg("获取失败", err.Error(), c)
  94. return
  95. }
  96. // 过滤一下空的和斜杠
  97. data := make([]string, 0)
  98. for _, v := range list {
  99. if v != "" && v != "/" {
  100. data = append(data, v)
  101. }
  102. }
  103. resp.OkData("获取成功", data, c)
  104. return
  105. }