1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package data_manage
- import (
- "database/sql"
- "eta/eta_api/global"
- "eta/eta_api/utils"
- "time"
- )
- type BaseFromClarksonsData struct {
- BaseFromClarksonsDataId int `orm:"column(base_from_clarksons_data_id);pk"`
- BaseFromClarksonsIndexId int `description:"指标id"`
- IndexCode string `description:"指标编码"`
- DataTime string `description:"数据日期"`
- Value float64 `description:"数据值"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- DataTimestamp int64 `description:"数据时间戳"`
- }
- // GetClarksonsDataByIndexId 根据指标id获取指标数据
- func GetClarksonsDataByIndexId(indexId int) (items []*BaseFromClarksonsData, err error) {
- sql := ` SELECT * FROM base_from_clarksons_data WHERE base_from_clarksons_index_id=? ORDER BY data_time DESC`
- err = global.DbMap[utils.DbNameIndex].Raw(sql, indexId).Find(&items).Error
- return
- }
- // GetClarksonsDataDataTimeByIndexId 根据指标id获取指标数据的日期列表
- func GetClarksonsDataDataTimeByIndexId(indexIdList []int) (items []string, err error) {
- if len(indexIdList) == 0 {
- return
- }
- sql := ` SELECT DISTINCT data_time FROM base_from_clarksons_data WHERE base_from_clarksons_index_id IN (` + utils.GetOrmInReplace(len(indexIdList)) + `) ORDER BY data_time DESC`
- err = global.DbMap[utils.DbNameIndex].Raw(sql, indexIdList).Find(&items).Error
- return
- }
- func GetClarksonsIndexDataByCode(indexCode string) (items []*BaseFromClarksonsData, err error) {
- sql := ` SELECT * FROM base_from_clarksons_data WHERE index_code=? ORDER BY data_time DESC `
- err = global.DbMap[utils.DbNameIndex].Raw(sql, indexCode).Find(&items).Error
- return
- }
- func GetClarksonsIndexDataCount(indexCode string) (count int, err error) {
- sqlStr := ` SELECT COUNT(1) AS count FROM base_from_clarksons_data WHERE index_code=? `
- var totalNull sql.NullInt64
- err = global.DbMap[utils.DbNameIndex].Raw(sqlStr, indexCode).Scan(&totalNull).Error
- if !totalNull.Valid {
- count = 0
- } else {
- count = int(totalNull.Int64)
- }
- return
- }
- // GetClarksonsLastUpdateTimeLastByIndexCode 根据指标编码查询 返回ModifyTime最后一条数据
- func GetClarksonsLastUpdateTimeLastByIndexCode(indexCodes []string) (items []*BaseFromClarksonsData, err error) {
- // 构造 SQL 查询
- sql := `SELECT t1.index_code, t1.data_time, t2.value
- FROM (
- SELECT index_code, MAX(data_time) AS data_time
- FROM base_from_clarksons_data
- WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `)
- GROUP BY index_code
- ) AS t1
- JOIN base_from_clarksons_data AS t2 ON t1.index_code = t2.index_code AND t1.data_time = t2.data_time`
- // 执行 SQL 查询
- err = global.DbMap[utils.DbNameIndex].Raw(sql, indexCodes).Find(&items).Error
- if err != nil {
- return nil, err
- }
- return items, nil
- }
- func GetClarksonsIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromClarksonsData, err error) {
- sql := ` SELECT * FROM base_from_clarksons_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
- err = global.DbMap[utils.DbNameIndex].Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
- return
- }
|