123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- package chart
- import (
- "fmt"
- "hongze/hongze_yb/global"
- chartEdbMappingModel "hongze/hongze_yb/models/tables/chart_edb_mapping"
- chartInfoModel "hongze/hongze_yb/models/tables/chart_info"
- "hongze/hongze_yb/utils"
- "strconv"
- "strings"
- "time"
- )
- // ModifyChartInfoAndMapping 修改图表信息
- func ModifyChartInfoAndMapping(edbInfoIdStr string, req *chartInfoModel.SaveChartInfoReq, chartType int) (err error) {
- // 开启事务
- tx := global.MYSQL["data"].Begin()
- defer func() {
- if err != nil {
- tx.Rollback()
- } else {
- tx.Commit()
- }
- }()
- // 更新图表信息
- if chartType == 1 {
- sql := ` UPDATE chart_info
- SET
- edb_info_ids = ?,
- modify_time = NOW(),
- date_type = ?,
- start_date = ?,
- end_date = ?,
- left_min = ?,
- left_max = ?,
- right_min = ?,
- right_max = ?
- WHERE chart_info_id = ?`
- err = tx.Exec(sql, edbInfoIdStr, req.DateType, req.StartDate, req.EndDate, req.LeftMin, req.LeftMax, req.RightMin, req.RightMax, req.ChartInfoId).Error
- } else {
- sql := ` UPDATE chart_info
- SET
- edb_info_ids = ?,
- modify_time = NOW(),
- calendar = ?,
- season_start_date = ?,
- season_end_date = ?,
- left_min = ?,
- left_max = ?,
- right_min = ?,
- right_max = ?
- WHERE chart_info_id = ?`
- err = tx.Exec(sql, edbInfoIdStr, req.Calendar, req.SeasonStartDate, req.SeasonEndDate, req.LeftMin, req.LeftMax, req.RightMin, req.RightMax, req.ChartInfoId).Error
- }
- if err != nil {
- fmt.Println("UPDATE chart_info Err:", err.Error())
- return
- }
- var edbInfoIdArr []string
- mapList := make([]*chartEdbMappingModel.ChartEdbMapping, 0)
- for _, v := range req.ChartEdbInfoList {
- edbInfoIdArr = append(edbInfoIdArr, strconv.Itoa(v.EdbInfoId))
- var count int
- csql := `SELECT COUNT(1) AS count FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id=? `
- err = tx.Exec(csql, req.ChartInfoId, v.EdbInfoId).Scan(&count).Error
- if err != nil {
- fmt.Println("QueryRow Err:", err.Error())
- return err
- }
- if count > 0 {
- // 更新指标
- msql := `UPDATE chart_edb_mapping
- SET
- modify_time = NOW(),
- max_data = ?,
- min_data = ?,
- is_order = ?,
- is_axis = ?,
- edb_info_type = ?,
- lead_value = ?,
- lead_unit = ?,
- chart_style = ?,
- chart_color = ?,
- chart_width = ?
- WHERE chart_info_id =? AND edb_info_id=? `
- err = tx.Exec(msql, v.MaxData, v.MinData, v.IsOrder, v.IsAxis, v.EdbInfoType, v.LeadValue, v.LeadUnit, v.ChartStyle, v.ChartColor, v.ChartWidth, req.ChartInfoId, v.EdbInfoId).Error
- if err != nil {
- fmt.Println("chart_edb_mapping Err:" + err.Error())
- return err
- }
- } else {
- mapItem := new(chartEdbMappingModel.ChartEdbMapping)
- mapItem.ChartInfoId = req.ChartInfoId
- mapItem.EdbInfoId = v.EdbInfoId
- mapItem.CreateTime = time.Now()
- mapItem.ModifyTime = time.Now()
- timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
- mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp)
- mapItem.MaxData = v.MaxData
- mapItem.MinData = v.MinData
- mapItem.IsOrder = 0
- if v.IsOrder {
- mapItem.IsOrder = 1
- }
- mapItem.IsAxis = v.IsAxis
- mapItem.EdbInfoType = v.EdbInfoType
- mapItem.LeadValue = v.LeadValue
- mapItem.LeadUnit = v.LeadUnit
- mapItem.ChartStyle = v.ChartStyle
- mapItem.ChartColor = v.ChartColor
- mapItem.ChartWidth = v.ChartWidth
- mapList = append(mapList, mapItem)
- }
- }
- // 批量新增指标
- if len(mapList) > 0 {
- err = tx.Create(mapList).Error
- if err != nil {
- fmt.Println("AddChartEdbMapping Err:" + err.Error())
- return err
- }
- }
- // 清除原图表指标
- if len(edbInfoIdArr) > 0 {
- edbInfoIdStr := strings.Join(edbInfoIdArr, ",")
- if edbInfoIdStr != "" {
- dsql := `DELETE FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id NOT IN(` + edbInfoIdStr + `)`
- err = tx.Exec(dsql, req.ChartInfoId).Error
- if err != nil {
- fmt.Println("delete err:" + err.Error())
- return err
- }
- }
- }
- return
- }
|