123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- package index_data
- import (
- "eta/eta_bridge/global"
- "eta/eta_bridge/models/jiayue"
- "eta/eta_bridge/models/response"
- "eta/eta_bridge/services/alarm_msg"
- "fmt"
- "strconv"
- "strings"
- )
- // GetIndexFromJiaYue 获取嘉悦指标信息
- func GetIndexFromJiaYue(indexCode string, sourceArr []string) (data *response.IndexResp, err error) {
- defer func() {
- if err != nil {
- global.LOG.Info("GetIndexFromJiaYue Err: " + err.Error())
- go alarm_msg.SendAlarmMsg("GetIndexFromJiaYue Err: "+err.Error(), 3)
- return
- }
- }()
- indexCond := ``
- indexPars := make([]interface{}, 0)
- // 指标存在无编码情况, 尝试转换indexCode为int查自增ID
- indexId, e := strconv.Atoi(indexCode)
- if e == nil && indexId > 0 {
- indexCond = ` (ID = :1 OR SOURCE_CODE = :1)`
- indexPars = append(indexPars, indexId, indexCode)
- } else {
- indexCond = ` SOURCE_CODE = :1`
- indexPars = append(indexPars, indexCode)
- }
- if len(sourceArr) > 0 {
- indexCond += ` AND SOURCE_TYPE IN (:1)`
- indexPars = append(indexPars, sourceArr)
- }
- indexes, e := jiayue.GetDictIndex(indexCond, indexPars)
- if e != nil {
- err = fmt.Errorf("GetDictIndex err: %s", e.Error())
- return
- }
- if len(indexes) <= 0 {
- global.LOG.Info(indexCode + "指标信息不存在")
- return
- }
- index := indexes[0]
- if index.Id <= 0 {
- err = fmt.Errorf("指标信息有误")
- return
- }
- data = new(response.IndexResp)
- data.Id = index.Id
- data.IndexCode = indexCode
- data.IndexName = index.Name
- data.Unit = index.Unit
- data.Frequency = index.Frequency
- data.LastDate = index.DateLast
- data.LastUpdateTime = index.TimeLastUpdate
- data.Status = index.Status
- return
- }
- // GetIndexAndDataFromJiaYue 获取指标和数据
- func GetIndexAndDataFromJiaYue(indexCode, startDate, endDate string, sourceArr []string) (data *response.IndexResp, err error) {
- defer func() {
- if err != nil {
- global.LOG.Info("GetIndexAndDataFromJiaYue Err: " + err.Error())
- go alarm_msg.SendAlarmMsg("GetIndexAndDataFromJiaYue Err: "+err.Error(), 3)
- return
- }
- }()
- indexCond := ``
- indexPars := make([]interface{}, 0)
- // 指标存在无编码情况, 尝试转换indexCode为int查自增ID
- indexId, e := strconv.Atoi(indexCode)
- if e == nil && indexId > 0 {
- indexCond = ` (ID = :1 OR SOURCE_CODE = :1)`
- indexPars = append(indexPars, indexId, indexCode)
- } else {
- indexCond = ` SOURCE_CODE = :1`
- indexPars = append(indexPars, indexCode)
- }
- if len(sourceArr) > 0 {
- indexCond += ` AND SOURCE_TYPE IN (:1)`
- indexPars = append(indexPars, sourceArr)
- }
- indexes, e := jiayue.GetDictIndex(indexCond, indexPars)
- if e != nil {
- err = fmt.Errorf("GetDictIndex err: %s", e.Error())
- return
- }
- if len(indexes) <= 0 {
- global.LOG.Info(indexCode + "指标信息不存在")
- return
- }
- index := indexes[0]
- // 获取指标数据
- if index.Id <= 0 {
- err = fmt.Errorf("指标信息有误")
- return
- }
- if index.TableName == "" {
- err = fmt.Errorf("指标信息数据表名为空")
- return
- }
- dataCond := " INDEX_ID = :1"
- dataPars := make([]interface{}, 0)
- dataPars = append(dataPars, index.Id)
- if startDate != "" {
- dataCond += " AND INDEX_DATE >= TO_DATE (:1, 'yyyy-mm-dd')"
- dataPars = append(dataPars, startDate)
- }
- if endDate != "" {
- dataCond += " AND INDEX_DATE <= TO_DATE (:1, 'yyyy-mm-dd')"
- dataPars = append(dataPars, endDate)
- }
- indexData, e := jiayue.GetDictData(index.TableName, dataCond, dataPars)
- if e != nil {
- err = fmt.Errorf("GetDictData err: %s", e.Error())
- return
- }
- var list []response.IndexData
- for _, v := range indexData {
- t := response.IndexData{
- Val: v.IndexValue,
- DataTime: v.IndexDate,
- UpdateTime: v.UpdateTime,
- }
- list = append(list, t)
- }
- data = new(response.IndexResp)
- data.Id = index.Id
- data.IndexData = list
- data.IndexCode = indexCode
- data.IndexName = index.Name
- data.Unit = index.Unit
- data.Frequency = index.Frequency
- data.LastDate = index.DateLast
- data.LastUpdateTime = index.TimeLastUpdate
- data.Status = index.Status
- return
- }
- // GetPageIndexesFromJiaYue 分页获取指标数据
- func GetPageIndexesFromJiaYue(pageIndex, pageSize int, sourceArr []string, keyword, frequency string, sortField, sortRule int) (total int, 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)
- // 筛选项
- if len(sourceArr) > 0 {
- indexCond += ` SOURCE_TYPE IN (:1)`
- indexPars = append(indexPars, sourceArr)
- }
- keyword = strings.TrimSpace(keyword)
- if keyword != "" {
- kw := fmt.Sprint("%", keyword, "%")
- indexCond += ` AND (ID LIKE :1 OR CODE LIKE :1 OR NAME LIKE :1)`
- indexPars = append(indexPars, kw, kw, kw)
- }
- if frequency != "" {
- indexCond += ` AND FREQUENCY = :1`
- indexPars = append(indexPars, frequency)
- }
- // 总记录数
- t, e := jiayue.GetDictIndexCount(indexCond, indexPars)
- if e != nil {
- err = fmt.Errorf("GetDictIndexCount err: %s", e.Error())
- return
- }
- total = t
- // 列表数据
- indexes, e := jiayue.GetDictPageIndex(indexCond, indexPars, pageIndex, pageSize, sortField, sortRule)
- if e != nil {
- err = fmt.Errorf("GetDictPageIndex err: %s", e.Error())
- return
- }
- result = indexes
- return
- }
|