瀏覽代碼

test 嘉悦指标分页列表

hsun 1 年之前
父節點
當前提交
52da87f81e

+ 34 - 2
controller/index_data/jiayue_index.go

@@ -2,8 +2,11 @@ package index_data
 
 import (
 	"eta/eta_bridge/controller/resp"
-	index_data_service "eta/eta_bridge/services/index_data"
+	"eta/eta_bridge/global"
+	indexDataReq "eta/eta_bridge/models/request/index_data"
+	indexDataService "eta/eta_bridge/services/index_data"
 	"github.com/gin-gonic/gin"
+	"github.com/go-playground/validator/v10"
 )
 
 type JiaYueIndexController struct{}
@@ -27,7 +30,7 @@ func (j *JiaYueIndexController) GetData(c *gin.Context) {
 		return
 	}
 
-	data, err, errMsg := index_data_service.GetIndexFromJiaYue(indexCode, source, startDate, endDate)
+	data, err, errMsg := indexDataService.GetIndexFromJiaYue(indexCode, source, startDate, endDate)
 	if err != nil {
 		resp.FailMsg("查询失败", err.Error()+errMsg, c)
 		return
@@ -35,3 +38,32 @@ func (j *JiaYueIndexController) GetData(c *gin.Context) {
 	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.Source == "" {
+		resp.FailMsg("请输入指标来源", "请输入指标来源", c)
+		return
+	}
+
+	data, err := indexDataService.GetPageIndexesFromJiaYue(req.PageIndex, req.PageSize, req.Source, req.Keyword, req.Frequency)
+	if err != nil {
+		resp.FailMsg("查询失败", err.Error(), c)
+		return
+	}
+	resp.OkData("操作成功", data, c)
+	return
+}

+ 20 - 1
models/jiayue/dict.go

@@ -24,6 +24,25 @@ func GetDictIndex(condition string, pars []interface{}) (dictIndexList []DictInd
 	return
 }
 
+// GetDictPageIndex 分页获取指标
+func GetDictPageIndex(condition string, pars []interface{}, pageIndex, pageSize int) (dictIndexList []DictIndex, err error) {
+	defer func() {
+		if err != nil {
+			fmt.Printf("查询指标信息失败 %s", err)
+			global.LOG.Info("获取桥接服务指标信息失败 Err:" + err.Error())
+		}
+	}()
+
+	fields := "ID, CODE, NAME, UNIT, FREQUENCY, DESCRIPTION, TABLE_NAME, SOURCE_TYPE, SOURCE_CODE, SOURCE_DESCRIPTION, INDUSTRY, TYPE, COMMODITY, SJB_ID, USER_ID, ROWS_COUNT, DATE_FIRST, DATE_LAST, TIME_LAST_UPDATE, TIME_LAST_REQUEST, PRIORITY, STATUS, SHORT_NAME, UPDATE_DESCRIPTION, FORECAST_FLAG, MANUAL_FLAG, VARIABLE_FLAG, MARKETDATA_FLAG, CREATE_USER, CREATE_TIME, UPDATE_USER, UPDATE_TIME"
+	sqlBase := fmt.Sprintf(`SELECT %s, no FROM (SELECT rownum no, a.* FROM DICT_INDEX a WHERE %s) WHERE no BETWEEN %d AND %d`, fields, condition, (pageIndex-1)*pageSize+1, pageIndex*pageSize)
+	dictIndexList, err = getDictIndex(sqlBase, pars)
+	if err != nil {
+		err = fmt.Errorf("查询指标信息失败 %s", err)
+		return
+	}
+	return
+}
+
 func GetDictData(tableName string, condition string, pars []interface{}) (dictIndexData []DictData, err error) {
 	defer func() {
 		if err != nil {
@@ -74,7 +93,7 @@ type DictIndex struct {
 	CreateUser        int    `description:"创建用户"`
 	CreateTime        string `description:"创建时间"`
 	UpdateUser        int    `description:"更新用户"`
-	UpdateTime        string `description:"更新时"`
+	UpdateTime        string `description:"更新时"`
 }
 
 type DictIndexSql struct {

+ 7 - 3
models/request/index_data/jiayue_index.go

@@ -1,6 +1,10 @@
 package index_data
 
-type IndexReq struct {
-	IndexCode string
-	Source    string
+// JiaYuePageIndexReq 指标列表请求体-分页
+type JiaYuePageIndexReq struct {
+	Source    string `json:"source" form:"source" description:"来源"`
+	Keyword   string `json:"keyword" form:"keyword" description:"关键词"`
+	Frequency string `json:"frequency" form:"frequency" description:"频度"`
+	PageIndex int    `json:"page_index" form:"page_index" description:"当前页码"`
+	PageSize  int    `json:"page_size" form:"page_size" description:"每页数据量"`
 }

+ 1 - 0
routers/index_data.go

@@ -11,4 +11,5 @@ func InitIndexData(r *gin.RouterGroup) {
 	//group := r.Group("index_data/").Use(middleware.Token())
 	group := r.Group("index_data/")
 	group.GET("jiayue/index", control.GetData)
+	group.GET("jiayue/page_index", control.GetPageIndex)
 }

+ 45 - 0
services/index_data/jiayue_platform.go

@@ -9,6 +9,7 @@ import (
 	"eta/eta_bridge/utils"
 	"fmt"
 	"strconv"
+	"strings"
 	"time"
 )
 
@@ -143,3 +144,47 @@ func GetIndexFromJiaYue(indexCode, source, startDate, endDate string) (data *res
 	data.Status = index.Status
 	return
 }
+
+// GetPageIndexesFromJiaYue 分页获取指标数据
+func GetPageIndexesFromJiaYue(pageIndex, pageSize int, source, keyword, frequency string) (result []jiayue.DictIndex, err error) {
+	defer func() {
+		if err != nil {
+			global.LOG.Info("GetPageIndexesFromJiaYue Err: " + err.Error())
+			go alarm_msg.SendAlarmMsg("GetPageIndexesFromJiaYue Err: "+err.Error(), 3)
+			return
+		}
+	}()
+
+	indexCond := ``
+	indexPars := make([]interface{}, 0)
+	var sourceArray []interface{}
+	if source == "wind" {
+		sourceArray = append(sourceArray, "wind", "wind_stop", "wind_p", "wind_tmp")
+	} else if source == "manual" {
+		sourceArray = append(sourceArray, "manual", "manul", "munal")
+	} else {
+		sourceArray = append(sourceArray, source)
+	}
+	indexCond += ` SOURCE_TYPE IN (` + utils.GetOracleInReplace(len(sourceArray)) + `)`
+	indexPars = append(indexPars, sourceArray...)
+
+	// 筛选项
+	keyword = strings.TrimSpace(keyword)
+	if keyword != "" {
+		kw := fmt.Sprint("%", keyword, "%")
+		indexCond += ` AND (ID = :1 OR CODE = :1 OR NAME = :1)`
+		indexPars = append(indexPars, kw, kw, kw)
+	}
+	if frequency != "" {
+		indexCond += ` AND FREQUENCY = :1`
+		indexPars = append(indexPars, frequency)
+	}
+
+	indexes, e := jiayue.GetDictPageIndex(indexCond, indexPars, pageIndex, pageSize)
+	if e != nil {
+		err = fmt.Errorf("GetDictPageIndex err: %s", e.Error())
+		return
+	}
+	result = indexes
+	return
+}