123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- package data_manage
- import (
- "eta_gn/eta_api/global"
- "eta_gn/eta_api/utils"
- "fmt"
- "strings"
- "time"
- )
- // BaseFromBusinessData
- // @Description: 外部指标(商家系统)原始数据表
- type BaseFromBusinessData struct {
- BusinessDataId int `orm:"column(business_data_id);pk" gorm:"primaryKey" json:"business_data_id"`
- BaseFromBusinessIndexId int `json:"base_from_business_index_id"` // 指标id
- IndexCode string `json:"index_code"` // 指标编码
- DataTime time.Time `json:"data_time"` // 数据日期
- Value float64 `json:"value"` // 数据值
- CreateTime time.Time `json:"create_time"` // 创建时间
- ModifyTime time.Time `json:"modify_time"` // 修改时间
- }
- // TableName
- // @Description: 获取表名
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-26 13:41:36
- // @return string
- func (m *BaseFromBusinessData) TableName() string {
- return "base_from_business_data"
- }
- // CollectionName
- // @Description: 获取集合名称
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-26 13:41:36
- // @return string
- func (m *BaseFromBusinessData) CollectionName() string {
- return "base_from_business_data"
- }
- // DataBaseName
- // @Description: 获取数据库名称
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-26 13:41:33
- // @return string
- func (m *BaseFromBusinessData) DataBaseName() string {
- return utils.MgoDataDbName
- }
- type WhereParams struct {
- Condition string
- Pars []interface{}
- Order string `description:"排序字段"`
- }
- // GetAllDataList
- // @Description: 根据条件获取所有数据
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-26 13:42:19
- // @param sort []string
- // @param whereParams interface{}
- // @return result []BaseFromBusinessData
- // @return err error
- func (m *BaseFromBusinessData) GetAllDataList(condition string, pars []interface{}, order string) (result []*BaseFromBusinessData, err error) {
- sql := `SELECT * FROM base_from_business_data WHERE 1=1 `
- if condition != `` {
- sql += ` ` + condition
- }
- if order != `` {
- sql += ` ORDER BY ` + order
- }
- err = global.DmSQL["data"].Raw(sql, pars...).Scan(&result).Error
- return
- }
- // GetLimitDataList
- // @Description: 根据条件获取指定数量数据列表
- // @author: Roc
- // @receiver m
- // @datetime 2024-05-06 17:08:32
- // @param whereParams interface{}
- // @param size int64
- // @return result []*BaseFromBusinessData
- // @return err error
- func (m *BaseFromBusinessData) GetLimitDataList(condition string, pars []interface{}, order string, size int64) (result []*BaseFromBusinessData, err error) {
- o := global.DmSQL["data"]
- sql := `SELECT * FROM base_from_business_data WHERE 1=1 `
- if condition != `` {
- sql += ` ` + condition
- }
- if order != `` {
- sql += ` ORDER BY ` + order
- }
- sql += fmt.Sprintf(` LIMIT %d`, size)
- err = o.Raw(sql, pars...).Scan(&result).Error
- return
- }
- // GetPageDataList
- // @Description: 根据条件获取分页数据列表
- // @author: Roc
- // @receiver m
- // @datetime 2024-05-07 10:21:07
- // @param whereParams interface{}
- // @param startSize int64
- // @param size int64
- // @param sort []string
- // @return result []*BaseFromBusinessData
- // @return err error
- func (m *BaseFromBusinessData) GetPageDataList(condition []string, pars []interface{}, order string, startSize, size int64) (result []*BaseFromBusinessData, err error) {
- sql := `SELECT * FROM base_from_business_data `
- if len(condition) > 0 {
- sql += ` WHERE ` + strings.Join(condition, " AND ")
- }
- if order != `` {
- sql += ` ORDER BY ` + order
- }
- sql += fmt.Sprintf(` LIMIT %d,%d`, startSize, size)
- err = global.DmSQL["data"].Raw(sql, pars...).Scan(&result).Error
- return
- }
- // GetCountDataList
- // @Description: 根据条件获取数据列表总数
- // @author: Roc
- // @receiver m
- // @datetime 2024-05-07 10:29:00
- // @param whereParams interface{}
- // @return count int64
- // @return err error
- func (m *BaseFromBusinessData) GetCountDataList(condition []string, pars []interface{}) (count int64, err error) {
- sql := `SELECT COUNT(1) FROM base_from_business_data `
- if len(condition) > 0 {
- sql += ` WHERE ` + strings.Join(condition, " AND ")
- }
- err = global.DmSQL["data"].Raw(sql, pars...).Scan(&count).Error
- return
- }
- // InsertDataByColl
- // @Description: 写入单条数据(外部传入集合)
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-26 14:22:18
- // @param addData interface{}
- // @return err error
- func (m *BaseFromBusinessData) InsertDataByColl(addData interface{}) (err error) {
- err = global.DmSQL["data"].Create(addData).Error
- return
- }
- // BatchInsertData
- // @Description: 批量写入数据
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-26 14:22:18
- // @param bulk int 每次请求保存的数据量
- // @param dataList []interface{}
- // @return err error
- func (m *BaseFromBusinessData) BatchInsertData(bulk int, dataList []interface{}) (err error) {
- err = global.DmSQL["data"].CreateInBatches(dataList, bulk).Error
- return
- }
- // UpdateData
- // @Description: 单条数据修改
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-26 15:01:51
- // @param whereParams interface{}
- // @param updateParams interface{}
- // @return err error
- func (m *BaseFromBusinessData) UpdateData(updateCols []string) (err error) {
- err = global.DmSQL["data"].Select(updateCols).Updates(m).Error
- if err != nil {
- fmt.Println("UpdateDataByColl:Err:" + err.Error())
- return
- }
- return
- }
- // GetEdbInfoMaxAndMinInfo
- // @Description: 获取当前指标的最大最小值
- // @author: Roc
- // @receiver m
- // @datetime 2024-04-30 17:15:39
- // @param whereParams interface{}
- // @return result EdbInfoMaxAndMinInfo
- // @return err error
- func (m *BaseFromBusinessData) GetEdbInfoMaxAndMinInfo(indexCode string) (result EdbInfoMaxAndMinInfo, err error) {
- o := global.DmSQL["data"]
- sql := ``
- sql = ` SELECT MIN(data_time) AS min_date,MAX(data_time) AS max_date,MIN(value) AS min_value,MAX(value) AS max_value FROM base_from_business_data WHERE index_code = ? `
- err = o.Raw(sql, indexCode).Scan(&result).Error
- if err != nil {
- return
- }
- var latestValue float64
- sql = ` SELECT value AS latest_value FROM base_from_business_data WHERE index_code = ? ORDER BY data_time DESC LIMIT 1 `
- err = o.Raw(sql, indexCode).Scan(&latestValue).Error
- result.LatestValue = latestValue
- return
- }
|