123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- package models
- import (
- "errors"
- "eta/eta_index_lib/utils"
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "strings"
- "time"
- )
- type BaseFromBusinessData struct {
- BusinessDataId int `orm:"column(business_data_id);pk" json:"business_data_id"`
- BaseFromBusinessIndexId int `json:"base_from_business_index_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"`
- }
- func (m *BaseFromBusinessData) TableName() string {
- return "base_from_business_data"
- }
- func (m *BaseFromBusinessData) CollectionName() string {
- return "base_from_business_data"
- }
- func (m *BaseFromBusinessData) DataBaseName() string {
- return utils.MgoDataDbName
- }
- type WhereParams struct {
- Condition string
- Pars []interface{}
- Order string `description:"排序字段"`
- }
- func (m *BaseFromBusinessData) GetAllDataList(condition []string, pars []interface{}, order string) (result []*BaseFromBusinessData, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM base_from_business_data `
- if len(condition) > 0 {
- sql += ` WHERE ` + strings.Join(condition, " AND ")
- }
- if order != `` {
- sql += ` ORDER BY ` + order
- }
- _, err = o.Raw(sql, pars).QueryRows(&result)
- return
- }
- func (m *BaseFromBusinessData) GetLimitDataList(condition []string, pars []interface{}, order string, size int64) (result []*BaseFromBusinessData, err error) {
- o := orm.NewOrm()
- 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`, size)
- _, err = o.Raw(sql, pars).QueryRows(&result)
- return
- }
- func (m *BaseFromBusinessData) GetPageDataList(condition []string, pars []interface{}, order string, startSize, size int64) (result []*BaseFromBusinessData, err error) {
- o := orm.NewOrm()
- 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 = o.Raw(sql, pars).QueryRows(&result)
- return
- }
- func (m *BaseFromBusinessData) GetCountDataList(condition []string, pars []interface{}) (count int64, err error) {
- o := orm.NewOrm()
- sql := `SELECT COUNT(1) FROM base_from_business_data `
- if len(condition) > 0 {
- sql += ` WHERE ` + strings.Join(condition, " AND ")
- }
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- func (m *BaseFromBusinessData) InsertDataByColl(addData interface{}) (err error) {
- o := orm.NewOrm()
- _, err = o.Insert(addData)
- return
- }
- func (m *BaseFromBusinessData) BatchInsertData(bulk int, dataList []*BaseFromBusinessData) (err error) {
- o := orm.NewOrm()
- _, err = o.InsertMulti(bulk, dataList)
- return
- }
- func (m *BaseFromBusinessData) UpdateData(updateCols []string) (err error) {
- o := orm.NewOrm()
- _, err = o.Update(m, updateCols...)
- if err != nil {
- fmt.Println("UpdateDataByColl:Err:" + err.Error())
- return
- }
- return
- }
- func (m *BaseFromBusinessData) HandleData(addDataList, updateDataList []*BaseFromBusinessData) (err error) {
- o := orm.NewOrm()
- to, err := o.Begin()
- if err != nil {
- return
- }
- defer func() {
- if err != nil {
- fmt.Println("BaseFromBusinessData HandleData,Err:" + err.Error())
- _ = to.Rollback()
- } else {
- _ = to.Commit()
- }
- }()
-
- if len(addDataList) > 0 {
- _, err = to.InsertMulti(500, addDataList)
- if err != nil {
- return
- }
- }
-
- if len(updateDataList) > 0 {
- for _, v := range updateDataList {
- _, err = to.Update(v, "Value", "ModifyTime")
- if err != nil {
- fmt.Println("BaseFromBusinessData HandleData Update:Err:" + err.Error())
- return
- }
- }
- }
- return
- }
- func (m *BaseFromBusinessData) GetEdbInfoMaxAndMinInfo(indexCode string) (result EdbInfoMaxAndMinInfo, err error) {
- o := orm.NewOrm()
- 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).QueryRow(&result)
- 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).QueryRow(&latestValue)
- result.LatestValue = latestValue
- return
- }
- func (m *BaseFromBusinessData) DelDataByCond(condition []string, pars []interface{}) (err error) {
- if len(condition) <= 0 {
- err = errors.New("条件不能为空")
- return
- }
- o := orm.NewOrm()
- sql := `DELETE FROM base_from_business_data `
- sql += ` WHERE ` + strings.Join(condition, " AND ")
- _, err = o.Raw(sql, pars).Exec()
- return
- }
|