package index_data import ( "eta/eta_bridge/controller/resp" "eta/eta_bridge/global" "eta/eta_bridge/models/jiayue" indexDataReq "eta/eta_bridge/models/request/index_data" "eta/eta_bridge/models/response" indexDataService "eta/eta_bridge/services/index_data" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" "strings" ) // JiaYueIndexController 嘉悦指标 type JiaYueIndexController struct{} // GetData // @Description 获取嘉悦指标数据 // @Success 200 {string} string "操作成功" // @Router /jiayue/index [get] func (j *JiaYueIndexController) GetData(c *gin.Context) { indexCode := c.DefaultQuery("index_code", "") source := c.DefaultQuery("source", "") startDate := c.DefaultQuery("start_date", "") endDate := c.DefaultQuery("end_date", "") if indexCode == "" { resp.FailMsg("请输入指标code码", "请输入指标code码", c) return } if source == "" { resp.FailMsg("请输入指标来源", "请输入指标来源", c) return } data, err, errMsg := indexDataService.GetIndexFromJiaYue(indexCode, source, startDate, endDate) if err != nil { resp.FailMsg("查询失败", err.Error()+errMsg, c) return } resp.OkData("操作成功", data, c) return } // GetPageIndex // @Description 获取嘉悦指标列表-分页 // @Success 200 {string} string "获取成功" // @Router /jiayue/page_index [get] func (j *JiaYueIndexController) GetPageIndex(c *gin.Context) { var req indexDataReq.JiaYuePageIndexReq if e := c.BindQuery(&req); e != nil { err, ok := e.(validator.ValidationErrors) if !ok { resp.FailData("参数解析失败", "Err:"+e.Error(), c) return } resp.FailData("参数解析失败", err.Translate(global.Trans), c) return } if req.SourceExtend == "" { resp.FailMsg("请输入指标来源", "请输入指标来源", c) return } sourceArr := strings.Split(req.SourceExtend, ",") if len(sourceArr) == 0 { resp.FailMsg("指标来源有误", "指标来源有误", c) return } total, list, err := indexDataService.GetPageIndexesFromJiaYue(req.PageIndex, req.PageSize, sourceArr, req.Keyword, req.Frequency) if err != nil { resp.FailMsg("查询失败", err.Error(), c) return } var data response.JiaYuePageIndexResp data.Total = total data.List = list resp.OkData("操作成功", data, c) return } // GetIndexFrequency // @Description 获取指标频度列表 // @Success 200 {string} string "获取成功" // @Router /jiayue/frequency_list [get] func (j *JiaYueIndexController) GetIndexFrequency(c *gin.Context) { list, err := jiayue.GetDictFrequency() if err != nil { resp.FailMsg("获取失败", err.Error(), c) return } // 过滤一下空的和斜杠 data := make([]string, 0) for _, v := range list { if v != "" && v != "/" { data = append(data, v) } } resp.OkData("获取成功", data, c) return }