|
@@ -3,12 +3,36 @@
|
|
|
package data_manage
|
|
|
|
|
|
import (
|
|
|
+ "eta/eta_api/utils"
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"strings"
|
|
|
+ "time"
|
|
|
)
|
|
|
|
|
|
type BaseFromLyData struct {
|
|
|
+ BaseFromLyDataId int `orm:"column(base_from_ly_data_id);pk" description:"数据ID"`
|
|
|
+ CreateTime time.Time `orm:"column(create_time)" description:"创建时间"`
|
|
|
+ ModifyTime time.Time `orm:"column(modify_time)" description:"修改时间"`
|
|
|
+ BaseFromLyIndexId int `orm:"column(base_from_ly_index_id)" description:"指标id"`
|
|
|
+ IndexCode string `orm:"column(index_code)" description:"指标编码"`
|
|
|
+ DataTime time.Time `orm:"column(data_time)" description:"数据日期"`
|
|
|
+ Value float64 `orm:"column(value)" description:"数据值"`
|
|
|
+}
|
|
|
+
|
|
|
+func (m *BaseFromLyData) ToItem() (item *BaseFromLyDataItem) {
|
|
|
+ return &BaseFromLyDataItem{
|
|
|
+ BaseFromLyDataId: m.BaseFromLyDataId,
|
|
|
+ CreateTime: m.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ ModifyTime: m.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ BaseFromLyIndexId: m.BaseFromLyIndexId,
|
|
|
+ IndexCode: m.IndexCode,
|
|
|
+ DataTime: m.DataTime.Format(utils.FormatDate),
|
|
|
+ Value: m.Value,
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+type BaseFromLyDataItem struct {
|
|
|
BaseFromLyDataId int `orm:"column(base_from_ly_data_id);pk" description:"数据ID"`
|
|
|
CreateTime string `orm:"column(create_time)" description:"创建时间"`
|
|
|
ModifyTime string `orm:"column(modify_time)" description:"修改时间"`
|
|
@@ -23,8 +47,8 @@ func init() {
|
|
|
}
|
|
|
|
|
|
type BaseFromLyDataPage struct {
|
|
|
- List []*BaseFromLyData `description:"指标数据列表"`
|
|
|
- Paging *paging.PagingItem `description:"分页数据"`
|
|
|
+ List []*BaseFromLyDataItem `description:"指标数据列表"`
|
|
|
+ Paging *paging.PagingItem `description:"分页数据"`
|
|
|
}
|
|
|
|
|
|
// GetLyDataCountByIndexId 获取指标数据总数
|
|
@@ -36,30 +60,51 @@ func GetLyDataCountByIndexId(indexId int) (count int, err error) {
|
|
|
}
|
|
|
|
|
|
// GetLyDataPageByIndexId 获取指标数据分页列表
|
|
|
-func GetLyDataPageByIndexId(indexId int, startSize, pageSize int) (items []*BaseFromLyData, err error) {
|
|
|
+func GetLyDataPageByIndexId(indexId int, startSize, pageSize int) (items []*BaseFromLyDataItem, err error) {
|
|
|
+ var ormList []*BaseFromLyData
|
|
|
+ items = make([]*BaseFromLyDataItem, 0)
|
|
|
o := orm.NewOrmUsingDB("data")
|
|
|
sql := `SELECT * FROM base_from_ly_data WHERE base_from_ly_index_id=? ORDER BY data_time desc LIMIT ?,?`
|
|
|
- _, err = o.Raw(sql, indexId, (startSize-1)*pageSize, pageSize).QueryRows(&items)
|
|
|
+ _, err = o.Raw(sql, indexId, (startSize-1)*pageSize, pageSize).QueryRows(&ormList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, ormItem := range ormList {
|
|
|
+ items = append(items, ormItem.ToItem())
|
|
|
+ }
|
|
|
+
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// GetBaseFromLyDataByIndexCode 根据指标编码查询
|
|
|
-func GetBaseFromLyDataByIndexCode(indexCode string) (items []*BaseFromLyData, err error) {
|
|
|
+func GetBaseFromLyDataByIndexCode(indexCode string) (items []*BaseFromLyDataItem, err error) {
|
|
|
+ var ormList []*BaseFromLyData
|
|
|
+ items = make([]*BaseFromLyDataItem, 0)
|
|
|
sql := `SELECT * FROM base_from_ly_data WHERE index_code=? ORDER BY data_time desc`
|
|
|
o := orm.NewOrmUsingDB("data")
|
|
|
- _, err = o.Raw(sql, indexCode).QueryRows(&items)
|
|
|
+ _, err = o.Raw(sql, indexCode).QueryRows(&ormList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, ormItem := range ormList {
|
|
|
+ items = append(items, ormItem.ToItem())
|
|
|
+ }
|
|
|
+
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func GetLyDataListByIndexCodes(IndexCodes string) (items []string, err error) {
|
|
|
- sql := ` SELECT data_time FROM base_from_ly_data WHERE index_code IN(` + IndexCodes + `) GROUP BY data_time DESC `
|
|
|
+func GetLyDataListByIndexCodes(IndexCodes string) (items []time.Time, err error) {
|
|
|
+ sql := ` SELECT data_time FROM base_from_ly_data WHERE index_code IN(` + IndexCodes + `) GROUP BY data_time ORDER BY data_time DESC `
|
|
|
o := orm.NewOrmUsingDB("data")
|
|
|
_, err = o.Raw(sql).QueryRows(&items)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// GetLyLastUpdateTimeLastByIndexCode 根据指标编码查询 返回ModifyTime最后一条数据
|
|
|
-func GetLyLastUpdateTimeLastByIndexCode(indexCodes []string) (items []*BaseFromLyData, err error) {
|
|
|
+func GetLyLastUpdateTimeLastByIndexCode(indexCodes []string) (items []*BaseFromLyDataItem, err error) {
|
|
|
+ var ormList []*BaseFromLyData
|
|
|
+ items = make([]*BaseFromLyDataItem, 0)
|
|
|
+
|
|
|
o := orm.NewOrmUsingDB("data")
|
|
|
|
|
|
// 将 indexCodes 切片转换为逗号分隔的字符串
|
|
@@ -72,17 +117,23 @@ func GetLyLastUpdateTimeLastByIndexCode(indexCodes []string) (items []*BaseFromL
|
|
|
GROUP BY index_code`
|
|
|
|
|
|
// 执行 SQL 查询
|
|
|
- _, err = o.Raw(sql, indexCodes).QueryRows(&items)
|
|
|
+ _, err = o.Raw(sql, indexCodes).QueryRows(&ormList)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
+ for _, ormItem := range ormList {
|
|
|
+ items = append(items, ormItem.ToItem())
|
|
|
+ }
|
|
|
+
|
|
|
return items, nil
|
|
|
}
|
|
|
|
|
|
// GetLyLastDataTimeByIndexCode 根据指标编码查询 返回data_time最后一条数据的value
|
|
|
-func GetLyLastDataTimeByIndexCode(indexCodes []string) (items []*BaseFromLyData, err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+func GetLyLastDataTimeByIndexCode(indexCodes []string) (items []*BaseFromLyDataItem, err error) {
|
|
|
+ var ormList []*BaseFromLyData
|
|
|
+ items = make([]*BaseFromLyDataItem, 0)
|
|
|
|
|
|
+ o := orm.NewOrmUsingDB("data")
|
|
|
// 将 indexCodes 切片转换为逗号分隔的字符串
|
|
|
placeholders := strings.Repeat("?,", len(indexCodes)-1) + "?"
|
|
|
|
|
@@ -100,9 +151,13 @@ func GetLyLastDataTimeByIndexCode(indexCodes []string) (items []*BaseFromLyData,
|
|
|
`
|
|
|
|
|
|
// 执行 SQL 查询
|
|
|
- _, err = o.Raw(sql, indexCodes).QueryRows(&items)
|
|
|
+ _, err = o.Raw(sql, indexCodes).QueryRows(&ormList)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
+ for _, ormItem := range ormList {
|
|
|
+ items = append(items, ormItem.ToItem())
|
|
|
+ }
|
|
|
+
|
|
|
return items, nil
|
|
|
}
|