|
@@ -1,7 +1,12 @@
|
|
|
package data_manage
|
|
|
|
|
|
import (
|
|
|
+ "eta/eta_api/services/alarm_msg"
|
|
|
+ "eta/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -60,3 +65,106 @@ func GetMultipleGraphConfigChartMappingListById(configId int) (items []*Multiple
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// ReplaceMultipleGraphConfigChartEdb 替换配置中的指标
|
|
|
+func ReplaceMultipleGraphConfigChartEdb(oldEdbInfo, newEdbInfo *EdbInfo) (replaceConfigTotal int, err error) {
|
|
|
+ var errmsg string
|
|
|
+ logMsg := `` // 记录替换的日志
|
|
|
+
|
|
|
+ o := orm.NewOrmUsingDB("data")
|
|
|
+ to, err := o.Begin()
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ _ = to.Rollback()
|
|
|
+ } else {
|
|
|
+ _ = to.Commit()
|
|
|
+ if logMsg != `` {
|
|
|
+ utils.FileLog.Info(fmt.Sprintf("替换替换配置中的指标记录,旧的指标id:%d,新的指标id:%d;%s", oldEdbInfo.EdbInfoId, newEdbInfo.EdbInfoId, logMsg))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if errmsg != "" {
|
|
|
+ fmt.Println("errmsg:" + errmsg)
|
|
|
+ }
|
|
|
+ if err != nil && errmsg != "" {
|
|
|
+ go alarm_msg.SendAlarmMsg("替换替换配置中的指标记录失败提醒,errmsg:"+errmsg, 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ //替换multiple_graph_config中的指标
|
|
|
+ {
|
|
|
+ multipleGraphConfigList := make([]*MultipleGraphConfig, 0)
|
|
|
+ csql := `SELECT * FROM multiple_graph_config WHERE (edb_info_id_a=? or edb_info_id_b=?)`
|
|
|
+ _, err = to.Raw(csql, oldEdbInfo.EdbInfoId, oldEdbInfo.EdbInfoId).QueryRows(&multipleGraphConfigList)
|
|
|
+ if err != nil {
|
|
|
+ errmsg = "获取指标关联图表配置信息失败:Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ replaceConfigTotal = len(multipleGraphConfigList)
|
|
|
+ configIdMap := make(map[int]int)
|
|
|
+ configIds := make([]int, 0)
|
|
|
+ configIdStr := make([]string, 0)
|
|
|
+ for _, mv := range multipleGraphConfigList {
|
|
|
+ if _, ok := configIdMap[mv.MultipleGraphConfigId]; !ok {
|
|
|
+ //判断如果达到1000个数,则执行更新语句
|
|
|
+ if len(configIds) >= 1000 {
|
|
|
+ //更新配置中的指标A
|
|
|
+ sql := `UPDATE multiple_graph_config SET edb_info_id_a=?, update_time=? WHERE multiple_graph_config_id IN (?) and edb_info_id_a=?`
|
|
|
+ _, err = to.Raw(sql, newEdbInfo.EdbInfoId, time.Now(), configIds, oldEdbInfo.EdbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ errmsg = "更新指标A关联图表配置信息失败:Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //更新配置中的指标B
|
|
|
+ sql = `UPDATE multiple_graph_config SET edb_info_id_b=?, update_time=? WHERE multiple_graph_config_id IN (?) and edb_info_id_b=?`
|
|
|
+ _, err = to.Raw(sql, newEdbInfo.EdbInfoId, time.Now(), configIds, oldEdbInfo.EdbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ errmsg = "更新指标B关联图表配置信息失败:Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 更新指标id
|
|
|
+ sql = `UPDATE multiple_graph_config_edb_mapping SET edb_info_id=?, modify_time=? WHERE multiple_graph_config_id IN (?) and edb_info_id=?`
|
|
|
+ _, err = to.Raw(sql, newEdbInfo.EdbInfoId, time.Now(), configIds, oldEdbInfo.EdbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ errmsg = "更新指标id关联图表配置信息失败:Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ logMsg += `涉及到的配置id:` + strings.Join(configIdStr, ",") + ";"
|
|
|
+ configIds = make([]int, 0)
|
|
|
+ configIdStr = make([]string, 0)
|
|
|
+ }
|
|
|
+ configIds = append(configIds, mv.MultipleGraphConfigId)
|
|
|
+ configIdStr = append(configIdStr, strconv.Itoa(mv.MultipleGraphConfigId))
|
|
|
+ configIdMap[mv.MultipleGraphConfigId] = mv.MultipleGraphConfigId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(configIds) >= 1000 {
|
|
|
+ //更新配置中的指标A
|
|
|
+ sql := `UPDATE multiple_graph_config SET edb_info_id_a=?, update_time=? WHERE multiple_graph_config_id IN (?) and edb_info_id_a=?`
|
|
|
+ _, err = to.Raw(sql, newEdbInfo.EdbInfoId, time.Now(), configIds, oldEdbInfo.EdbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ errmsg = "更新指标A关联图表配置信息失败:Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //更新配置中的指标B
|
|
|
+ sql = `UPDATE multiple_graph_config SET edb_info_id_b=?, update_time=? WHERE multiple_graph_config_id IN (?) and edb_info_id_b=?`
|
|
|
+ _, err = to.Raw(sql, newEdbInfo.EdbInfoId, time.Now(), configIds, oldEdbInfo.EdbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ errmsg = "更新指标B关联图表配置信息失败:Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 更新指标id
|
|
|
+ sql = `UPDATE multiple_graph_config_edb_mapping SET edb_info_id=?, modify_time=? WHERE multiple_graph_config_id IN (?) and edb_info_id=?`
|
|
|
+ _, err = to.Raw(sql, newEdbInfo.EdbInfoId, time.Now(), configIds, oldEdbInfo.EdbInfoId).Exec()
|
|
|
+ if err != nil {
|
|
|
+ errmsg = "更新指标id关联图表配置信息失败:Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ logMsg += `涉及到的配置id:` + strings.Join(configIdStr, ",") + ";"
|
|
|
+ configIds = make([]int, 0)
|
|
|
+ configIdStr = make([]string, 0)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|