123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package line_equation
- import (
- "eta/eta_api/models/data_manage"
- "github.com/beego/beego/v2/client/orm"
- )
- type BatchAddChart struct {
- ChartInfo *data_manage.ChartInfo
- EdbMappingList []*data_manage.ChartEdbMapping
- MultipleGraphConfigChartMapping *data_manage.MultipleGraphConfigChartMapping
- }
- // CreateLineEquationChartAndEdb 批量新增拟合方程图表
- func CreateLineEquationChartAndEdb(multipleGraphConfig *data_manage.MultipleGraphConfig, batchAddChartList []BatchAddChart) (err error) {
- o := orm.NewOrmUsingDB("data")
- tx, err := o.Begin()
- if err != nil {
- return
- }
- defer func() {
- if err != nil {
- _ = tx.Rollback()
- } else {
- _ = tx.Commit()
- }
- }()
- // 新增批量配置
- newMultipleGraphConfigId, err := tx.Insert(multipleGraphConfig)
- if err != nil {
- return
- }
- multipleGraphConfig.MultipleGraphConfigId = int(newMultipleGraphConfigId)
- for k, v := range batchAddChartList {
- // 新增图表信息
- chartInfo := v.ChartInfo
- newId, tmpErr := tx.Insert(chartInfo)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- chartInfo.ChartInfoId = int(newId)
- batchAddChartList[k].ChartInfo = chartInfo
- // 指标mapping
- edbMappingList := v.EdbMappingList
- if len(edbMappingList) > 0 {
- for i := range edbMappingList {
- edbMappingList[i].ChartInfoId = chartInfo.ChartInfoId
- }
- _, err = tx.InsertMulti(len(edbMappingList), edbMappingList)
- if err != nil {
- return
- }
- }
- batchAddChartList[k].EdbMappingList = edbMappingList
- // 批量配置的关系表
- multipleGraphConfigChartMapping := v.MultipleGraphConfigChartMapping
- multipleGraphConfigChartMapping.ChartInfoId = chartInfo.ChartInfoId
- multipleGraphConfigChartMapping.MultipleGraphConfigId = multipleGraphConfig.MultipleGraphConfigId
- newMultipleGraphConfigChartMappingId, tmpErr := tx.Insert(v.MultipleGraphConfigChartMapping)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- multipleGraphConfigChartMapping.Id = int(newMultipleGraphConfigChartMappingId)
- }
- return
- }
- // CreateAndEditLineEquationChartAndEdb 批量新增/编辑拟合方程图表
- func CreateAndEditLineEquationChartAndEdb(multipleGraphConfig *data_manage.MultipleGraphConfig, batchAddChartList []BatchAddChart, updateMultipleGraphConfigCols, updateChartCols []string) (err error) {
- o := orm.NewOrmUsingDB("data")
- tx, err := o.Begin()
- if err != nil {
- return
- }
- defer func() {
- if err != nil {
- _ = tx.Rollback()
- } else {
- _ = tx.Commit()
- }
- }()
- // 编辑批量配置
- _, err = tx.Update(multipleGraphConfig, updateMultipleGraphConfigCols...)
- if err != nil {
- return
- }
- for k, v := range batchAddChartList {
- // 新增图表信息
- chartInfo := v.ChartInfo
- var isDelMapping bool
- {
- if chartInfo.ChartInfoId <= 0 {
- newId, tmpErr := tx.Insert(chartInfo)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- chartInfo.ChartInfoId = int(newId)
- batchAddChartList[k].ChartInfo = chartInfo
- } else {
- // 更改图表信息
- _, err = tx.Update(chartInfo, updateChartCols...)
- if err != nil {
- return
- }
- isDelMapping = true
- }
- }
- // 图表与指标的关系表
- {
- // 先删除图表关联的指标关系,然后再新增
- if isDelMapping {
- sql := ` DELETE FROM chart_edb_mapping WHERE chart_info_id=? `
- _, err = tx.Raw(sql, chartInfo.ChartInfoId).Exec()
- if err != nil {
- return
- }
- }
- // 指标mapping
- edbMappingList := v.EdbMappingList
- if len(edbMappingList) > 0 {
- for i := range edbMappingList {
- edbMappingList[i].ChartInfoId = chartInfo.ChartInfoId
- }
- _, err = tx.InsertMulti(len(edbMappingList), edbMappingList)
- if err != nil {
- return
- }
- }
- batchAddChartList[k].EdbMappingList = edbMappingList
- }
- // 批量配置的关系表
- {
- multipleGraphConfigChartMapping := v.MultipleGraphConfigChartMapping
- if multipleGraphConfigChartMapping.Id <= 0 {
- multipleGraphConfigChartMapping.ChartInfoId = chartInfo.ChartInfoId
- multipleGraphConfigChartMapping.MultipleGraphConfigId = multipleGraphConfig.MultipleGraphConfigId
- newMultipleGraphConfigChartMappingId, tmpErr := tx.Insert(v.MultipleGraphConfigChartMapping)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- multipleGraphConfigChartMapping.Id = int(newMultipleGraphConfigChartMappingId)
- } else {
- if multipleGraphConfigChartMapping.ChartInfoId != chartInfo.ChartInfoId {
- multipleGraphConfigChartMapping.ChartInfoId = chartInfo.ChartInfoId
- _, err = tx.Update(multipleGraphConfigChartMapping, "ChartInfoId")
- if err != nil {
- return
- }
- }
- }
- batchAddChartList[k].MultipleGraphConfigChartMapping = multipleGraphConfigChartMapping
- }
- }
- return
- }
|