|
@@ -2,9 +2,9 @@ package data_manage
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ "eta/eta_api/global"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
- "github.com/beego/beego/v2/client/orm"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
@@ -17,7 +17,7 @@ const (
|
|
|
|
|
|
// FactorEdbSeries 因子指标系列表
|
|
|
type FactorEdbSeries struct {
|
|
|
- FactorEdbSeriesId int `orm:"column(factor_edb_series_id);pk"`
|
|
|
+ FactorEdbSeriesId int `gorm:"column:factor_edb_series_id;primaryKey"`
|
|
|
SeriesName string `description:"系列名称"`
|
|
|
EdbInfoType int `description:"关联指标类型:0-普通指标;1-预测指标"`
|
|
|
CalculateStep string `description:"计算步骤-JSON"`
|
|
@@ -53,12 +53,8 @@ func (m *FactorEdbSeries) Cols() FactorEdbSeriesCols {
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) Create() (err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
- id, err := o.Insert(m)
|
|
|
- if err != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- m.FactorEdbSeriesId = int(id)
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
+ err = o.Create(m).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -66,21 +62,21 @@ func (m *FactorEdbSeries) CreateMulti(items []*FactorEdbSeries) (err error) {
|
|
|
if len(items) == 0 {
|
|
|
return
|
|
|
}
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
- _, err = o.InsertMulti(len(items), items)
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
+ err = o.CreateInBatches(items, utils.MultiAddNum).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) Update(cols []string) (err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
- _, err = o.Update(m, cols...)
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
+ err = o.Model(m).Select(cols).Updates(m).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) Remove() (err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
|
|
|
- _, err = o.Raw(sql, m.FactorEdbSeriesId).Exec()
|
|
|
+ err = o.Exec(sql, m.FactorEdbSeriesId).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -88,9 +84,9 @@ func (m *FactorEdbSeries) MultiRemove(ids []int) (err error) {
|
|
|
if len(ids) == 0 {
|
|
|
return
|
|
|
}
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.Cols().PrimaryId, utils.GetOrmInReplace(len(ids)))
|
|
|
- _, err = o.Raw(sql, ids).Exec()
|
|
|
+ err = o.Exec(sql, ids).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -98,39 +94,39 @@ func (m *FactorEdbSeries) RemoveByCondition(condition string, pars []interface{}
|
|
|
if condition == "" {
|
|
|
return
|
|
|
}
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, m.TableName(), condition)
|
|
|
- _, err = o.Raw(sql, pars).Exec()
|
|
|
+ err = o.Exec(sql, pars...).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) GetItemById(id int) (item *FactorEdbSeries, err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().PrimaryId)
|
|
|
- err = o.Raw(sql, id).QueryRow(&item)
|
|
|
+ err = o.Raw(sql, id).First(&item).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FactorEdbSeries, err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
order := ``
|
|
|
if orderRule != "" {
|
|
|
order = ` ORDER BY ` + orderRule
|
|
|
}
|
|
|
sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
|
|
|
- err = o.Raw(sql, pars).QueryRow(&item)
|
|
|
+ err = o.Raw(sql, pars...).First(&item).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
|
|
|
- err = o.Raw(sql, pars).QueryRow(&count)
|
|
|
+ err = o.Raw(sql, pars...).Scan(&count).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FactorEdbSeries, err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
fields := strings.Join(fieldArr, ",")
|
|
|
if len(fieldArr) == 0 {
|
|
|
fields = `*`
|
|
@@ -140,12 +136,12 @@ func (m *FactorEdbSeries) GetItemsByCondition(condition string, pars []interface
|
|
|
order = ` ORDER BY ` + orderRule
|
|
|
}
|
|
|
sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
|
|
|
- _, err = o.Raw(sql, pars).QueryRows(&items)
|
|
|
+ err = o.Raw(sql, pars...).Find(&items).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func (m *FactorEdbSeries) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FactorEdbSeries, err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
fields := strings.Join(fieldArr, ",")
|
|
|
if len(fieldArr) == 0 {
|
|
|
fields = `*`
|
|
@@ -155,7 +151,7 @@ func (m *FactorEdbSeries) GetPageItemsByCondition(condition string, pars []inter
|
|
|
order = ` ORDER BY ` + orderRule
|
|
|
}
|
|
|
sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
|
|
|
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
|
|
|
+ err = o.Raw(sql, append(pars, startSize, pageSize)...).Find(&items).Error
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -200,10 +196,10 @@ func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings
|
|
|
err = fmt.Errorf("series is nil")
|
|
|
return
|
|
|
}
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
- tx, e := o.Begin()
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("orm begin err: %v", e)
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
+ tx := o.Begin()
|
|
|
+ if err = tx.Error; err != nil {
|
|
|
+ err = fmt.Errorf("orm begin err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
defer func() {
|
|
@@ -214,21 +210,22 @@ func (m *FactorEdbSeries) CreateSeriesAndMapping(item *FactorEdbSeries, mappings
|
|
|
_ = tx.Commit()
|
|
|
}()
|
|
|
|
|
|
- id, e := tx.Insert(item)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("insert series err: %v", e)
|
|
|
+ // 创建系列
|
|
|
+ err = tx.Create(item).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("insert series err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
- seriesId = int(id)
|
|
|
- item.FactorEdbSeriesId = seriesId
|
|
|
+ seriesId = item.FactorEdbSeriesId
|
|
|
|
|
|
+ // 批量创建映射
|
|
|
if len(mappings) > 0 {
|
|
|
for _, v := range mappings {
|
|
|
v.FactorEdbSeriesId = seriesId
|
|
|
}
|
|
|
- _, e = tx.InsertMulti(200, mappings)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("insert multi mapping err: %v", e)
|
|
|
+ err = tx.CreateInBatches(mappings, utils.MultiAddNum).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("insert multi mapping err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -241,10 +238,10 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
|
|
|
err = fmt.Errorf("series is nil")
|
|
|
return
|
|
|
}
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
- tx, e := o.Begin()
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("orm begin err: %v", e)
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
+ tx := o.Begin()
|
|
|
+ if err = tx.Error; err != nil {
|
|
|
+ err = fmt.Errorf("orm begin err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
defer func() {
|
|
@@ -255,31 +252,31 @@ func (m *FactorEdbSeries) EditSeriesAndMapping(item *FactorEdbSeries, mappings [
|
|
|
_ = tx.Commit()
|
|
|
}()
|
|
|
|
|
|
- _, e = tx.Update(item, updateCols...)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("update series err: %v", e)
|
|
|
+ // 更新系列
|
|
|
+ err = tx.Model(item).Select(updateCols).Updates(item).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("update series err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- // 清除原指标关联
|
|
|
mappingOb := new(FactorEdbSeriesMapping)
|
|
|
cond := fmt.Sprintf("%s = ?", mappingOb.Cols().FactorEdbSeriesId)
|
|
|
pars := make([]interface{}, 0)
|
|
|
pars = append(pars, item.FactorEdbSeriesId)
|
|
|
sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, mappingOb.TableName(), cond)
|
|
|
- _, e = tx.Raw(sql, pars).Exec()
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("remove mapping err: %v", e)
|
|
|
+ err = tx.Exec(sql, pars...).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("remove mapping err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 批量创建新映射
|
|
|
if len(mappings) > 0 {
|
|
|
for _, v := range mappings {
|
|
|
v.FactorEdbSeriesId = item.FactorEdbSeriesId
|
|
|
}
|
|
|
- _, e = tx.InsertMulti(200, mappings)
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("insert multi mapping err: %v", e)
|
|
|
+ err = tx.CreateInBatches(mappings, utils.MultiAddNum).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("insert multi mapping err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -362,10 +359,10 @@ func (a FactorEdbSeriesCorrelationMatrixOrder) Less(i, j int) bool {
|
|
|
|
|
|
// RemoveSeriesAndMappingByFactorEdbSeriesId 删除系列和指标关联
|
|
|
func (m *FactorEdbSeries) RemoveSeriesAndMappingByFactorEdbSeriesId(factorEdbSeriesChartMapping *FactorEdbSeriesChartMapping) (err error) {
|
|
|
- o := orm.NewOrmUsingDB("data")
|
|
|
- tx, e := o.Begin()
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("orm begin err: %v", e)
|
|
|
+ o := global.DbMap[utils.DbNameIndex]
|
|
|
+ tx := o.Begin()
|
|
|
+ if err = tx.Error; err != nil {
|
|
|
+ err = fmt.Errorf("orm begin err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
defer func() {
|
|
@@ -375,6 +372,7 @@ func (m *FactorEdbSeries) RemoveSeriesAndMappingByFactorEdbSeriesId(factorEdbSer
|
|
|
}
|
|
|
_ = tx.Commit()
|
|
|
}()
|
|
|
+
|
|
|
factorEdbSeriesId := factorEdbSeriesChartMapping.FactorEdbSeriesId
|
|
|
err = factorEdbSeriesChartMapping.Remove()
|
|
|
if err != nil {
|
|
@@ -388,35 +386,30 @@ func (m *FactorEdbSeries) RemoveSeriesAndMappingByFactorEdbSeriesId(factorEdbSer
|
|
|
// 清除原指标关联
|
|
|
seriesOb := new(FactorEdbSeries)
|
|
|
cond := fmt.Sprintf("%s = ?", seriesOb.Cols().PrimaryId)
|
|
|
- pars := make([]interface{}, 0)
|
|
|
- pars = append(pars, factorEdbSeriesId)
|
|
|
sql := fmt.Sprintf(`DELETE FROM %s WHERE %s`, seriesOb.TableName(), cond)
|
|
|
- _, e = tx.Raw(sql, pars).Exec()
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("remove FactorEdbSeries err: %v", e)
|
|
|
+ err = tx.Exec(sql, factorEdbSeriesId).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("remove FactorEdbSeries err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// 清除原指标关联
|
|
|
mappingOb := new(FactorEdbSeriesMapping)
|
|
|
cond1 := fmt.Sprintf("%s = ?", mappingOb.Cols().FactorEdbSeriesId)
|
|
|
- pars1 := make([]interface{}, 0)
|
|
|
- pars1 = append(pars1, factorEdbSeriesId)
|
|
|
sql = fmt.Sprintf(`DELETE FROM %s WHERE %s`, mappingOb.TableName(), cond1)
|
|
|
- _, e = tx.Raw(sql, pars1).Exec()
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("remove mapping err: %v", e)
|
|
|
+ err = tx.Exec(sql, factorEdbSeriesId).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("remove mapping err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ // 删除原指标数据
|
|
|
dataOb := new(FactorEdbSeriesCalculateDataQjjs)
|
|
|
- //删除原指标数据
|
|
|
cond2 := fmt.Sprintf("%s = ?", dataOb.Cols().FactorEdbSeriesId)
|
|
|
- pars2 := make([]interface{}, 0)
|
|
|
- pars2 = append(pars2, factorEdbSeriesId)
|
|
|
sql = fmt.Sprintf(`DELETE FROM %s WHERE %s`, dataOb.TableName(), cond2)
|
|
|
- _, e = tx.Raw(sql, pars2).Exec()
|
|
|
- if e != nil {
|
|
|
- err = fmt.Errorf("remove mapping err: %v", e)
|
|
|
+ err = tx.Exec(sql, factorEdbSeriesId).Error
|
|
|
+ if err != nil {
|
|
|
+ err = fmt.Errorf("remove mapping err: %v", err)
|
|
|
return
|
|
|
}
|
|
|
return
|