123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- package models
- import (
- "eta/eta_index_lib/utils"
- "fmt"
- "time"
- "github.com/beego/beego/v2/client/orm"
- )
- // BaseFromBusinessIndex
- // @Description: 外部指标(商家系统)表
- type BaseFromBusinessIndex struct {
- BaseFromBusinessIndexId int64 `orm:"column(base_from_business_index_id);pk"`
- IndexCode string `description:"指标编码"`
- IndexName string `description:"指标名称"`
- Unit string `description:"单位"`
- Frequency string `description:"频度"`
- Source int `description:"数据来源"`
- SourceName string `description:"数据来源名称"`
- StartDate time.Time `description:"开始日期"`
- EndDate time.Time `description:"结束日期"`
- Remark string `description:"备注字段"`
- BaseModifyTime time.Time `description:"基础信息(名称,单位,频度)变更时间"`
- DataUpdateTime time.Time `description:"最近一次数据发生变化的时间"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- }
- // EdbBusinessSource
- // @Description: 外部数据(商家)指标来源
- type EdbBusinessSource struct {
- EdbBusinessSourceId int64 `orm:"column(edb_business_source_id);pk"`
- SourceName string `description:"来源名称"` // 来源名称
- CreateTime time.Time `description:"创建时间"` // 创建时间
- }
- // AddBusinessIndexReq
- // @Description: 添加外部指标(商家)请求
- type AddBusinessIndexReq struct {
- IndexCode string `description:"指标编码"`
- IndexName string `description:"指标名称"`
- Unit string `description:"单位"`
- Frequency string `description:"频度"`
- SourceName string `description:"数据来源名称"`
- Remark string `description:"备注字段"`
- DataList []AddBusinessDataReq `description:"指标数据"`
- }
- // AddBusinessDataReq
- // @Description: 外部指标(商家系统)数据
- type AddBusinessDataReq struct {
- Value float64 `description:"值"`
- Date string `description:"日期"`
- }
- func (m *BaseFromBusinessIndex) GetIndexItem(indexCode string) (item *BaseFromBusinessIndex, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM base_from_business_index WHERE index_code = ? `
- err = o.Raw(sql, indexCode).QueryRow(&item)
- return
- }
- func (m *BaseFromBusinessIndex) GetIndexCreate(terminalCode string) (items []*BaseFromBusinessIndex, err error) {
- o := orm.NewOrm()
- endTime := time.Now().Add(-2 * time.Minute).Format(utils.FormatDateTime)
- sql := `SELECT * FROM base_from_business_index WHERE index_name = '' AND create_time <= ? AND terminal_code = ? `
- _, err = o.Raw(sql, endTime, terminalCode).QueryRows(&items)
- return
- }
- // Add 新增
- func (m *BaseFromBusinessIndex) Add() (err error) {
- o := orm.NewOrm()
- lastId, err := o.Insert(m)
- if err != nil {
- return
- }
- m.BaseFromBusinessIndexId = lastId
- return
- }
- func (m *BaseFromBusinessIndex) Update(cols []string) (err error) {
- o := orm.NewOrm()
- _, err = o.Update(m, cols...)
- return
- }
- // GetNoMergeIndexByFrequencyCount 获取未合并的指标总数量
- func (m *BaseFromBusinessIndex) GetNoMergeIndexByFrequencyCount(frequency string) (total int64, err error) {
- o := orm.NewOrm()
- sql := `SELECT count(1) AS total FROM base_from_business_index WHERE frequency = ? AND merge_file_path = '' AND index_name NOT LIKE "%停%" `
- err = o.Raw(sql, frequency).QueryRow(&total)
- return
- }
- // GetIndexRefreshMethanolByTimely 获取需要及时刷新的文件
- func (m *BaseFromBusinessIndex) GetIndexRefreshMethanolByTimely() (items []*BaseFromBusinessIndex, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM base_from_business_index WHERE merge_file_path <> '' AND is_refresh = 1 GROUP BY merge_file_path`
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- func (m *BaseFromBusinessIndex) GetIndexRefreshWeek(nowWeekZn, startTime, endTime string) (items []*BaseFromBusinessIndex, err error) {
- where := `update_week = ? AND ((update_time >= ? AND update_time <= ?) OR (update_time2 >= ? AND update_time2 <= ?)) `
- o := orm.NewOrm()
- sql := fmt.Sprintf(`SELECT * FROM base_from_business_index WHERE %s `, where)
- _, err = o.Raw(sql, nowWeekZn, startTime, endTime, startTime, endTime).QueryRows(&items)
- return
- }
- func (m *BaseFromBusinessIndex) UpdateIndex(item *BaseFromBusinessIndex, updateCols []string) (err error) {
- if item == nil {
- return
- }
- if len(updateCols) == 0 {
- return
- }
- o := orm.NewOrm()
- _, err = o.Update(item, updateCols...)
- return
- }
- // GetEdbBusinessSourceItem
- // @Description: 根据来源名称获取来源信息
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-25 18:09:03
- // @param sourceName string
- // @return item *EdbBusinessSource
- // @return err error
- func (m *EdbBusinessSource) GetEdbBusinessSourceItem(sourceName string) (item *EdbBusinessSource, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM edb_business_source WHERE source_name = ? `
- err = o.Raw(sql, sourceName).QueryRow(&item)
- return
- }
- // Add 新增
- func (m *EdbBusinessSource) Add() (err error) {
- o := orm.NewOrm()
- lastId, err := o.Insert(m)
- if err != nil {
- return
- }
- m.EdbBusinessSourceId = lastId
- return
- }
|