|
@@ -1,13 +1,20 @@
|
|
|
package line_equation
|
|
|
|
|
|
import (
|
|
|
+ "encoding/json"
|
|
|
"errors"
|
|
|
+ "fmt"
|
|
|
"github.com/shopspring/decimal"
|
|
|
"hongze/hongze_ETA_mobile_api/models/data_manage"
|
|
|
+ "hongze/hongze_ETA_mobile_api/models/data_manage/line_equation"
|
|
|
"hongze/hongze_ETA_mobile_api/models/data_manage/line_equation/request"
|
|
|
+ "hongze/hongze_ETA_mobile_api/models/system"
|
|
|
"hongze/hongze_ETA_mobile_api/services/data"
|
|
|
"hongze/hongze_ETA_mobile_api/utils"
|
|
|
"math"
|
|
|
+ "sort"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -261,9 +268,9 @@ func GetChartEdbData(chartInfoId int, lineChartInfoConfig request.LineChartInfoR
|
|
|
}
|
|
|
|
|
|
// GetConfigData 获取配置数据
|
|
|
-//func GetConfigData(lineChartInfoConfig request.LineChartInfoReq) (mappingList []*data_manage.ChartEdbInfoMapping, startDate, endDate string, err error, errMsg string) {
|
|
|
-// return getConfigData(lineChartInfoConfig)
|
|
|
-//}
|
|
|
+func GetConfigData(lineChartInfoConfig request.LineChartInfoReq) (mappingList []*data_manage.ChartEdbInfoMapping, startDate, endDate string, err error, errMsg string) {
|
|
|
+ return getConfigData(lineChartInfoConfig)
|
|
|
+}
|
|
|
|
|
|
// getConfigData 获取配置数据
|
|
|
func getConfigData(lineChartInfoConfig request.LineChartInfoReq) (mappingList []*data_manage.ChartEdbInfoMapping, startDate, endDate string, err error, errMsg string) {
|
|
@@ -359,416 +366,416 @@ func handleData(baseEdbInfoId int, edbDataListMap map[int][]*data_manage.EdbData
|
|
|
}
|
|
|
|
|
|
// BatchAddChartInfo 批量添加图表
|
|
|
-//func BatchAddChartInfo(batchAddChartReq []request.AddChart, lineChartInfoConfig request.LineChartInfoReq, sysUser *system.Admin) (batchAddChartList []line_equation.BatchAddChart, err error, errMsg string, isSendEmail bool) {
|
|
|
-// source := utils.CHART_SOURCE_LINE_EQUATION
|
|
|
-// // 获取需要
|
|
|
-// for k, v := range batchAddChartReq {
|
|
|
-// v.ChartName = strings.Trim(v.ChartName, " ")
|
|
|
-// batchAddChartReq[k] = v
|
|
|
-//
|
|
|
-// if v.ChartName == "" {
|
|
|
-// errMsg = "请填写图表名称!"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-// if v.ChartClassifyId <= 0 {
|
|
|
-// errMsg = "请填写图表名称!"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// chartClassify, tmpErr := data_manage.GetChartClassifyById(v.ChartClassifyId)
|
|
|
-// if tmpErr != nil {
|
|
|
-// if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
-// errMsg = "分类不存在"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-// errMsg = "获取分类信息失败"
|
|
|
-// err = errors.New("获取分类信息失败,Err:" + tmpErr.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// if chartClassify == nil {
|
|
|
-// errMsg = "分类不存在"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 判断图表是否存在
|
|
|
-// var condition string
|
|
|
-// var pars []interface{}
|
|
|
-// condition += " AND chart_name=? AND source = ? "
|
|
|
-// pars = append(pars, v.ChartName, source)
|
|
|
-// count, tmpErr := data_manage.GetChartInfoCountByCondition(condition, pars)
|
|
|
-// if tmpErr != nil {
|
|
|
-// errMsg = "判断图表名称是否存在失败"
|
|
|
-// err = errors.New("判断图表名称是否存在失败,Err:" + tmpErr.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// if count > 0 {
|
|
|
-// errMsg = "图表已存在,请重新填写"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// edbList, _, _, err, errMsg := getConfigData(lineChartInfoConfig)
|
|
|
-//
|
|
|
-// var edbInfoIdArr []int
|
|
|
-// for _, v := range edbList {
|
|
|
-// edbInfoIdArr = append(edbInfoIdArr, v.EdbInfoId)
|
|
|
-// }
|
|
|
-// disableVal := data.CheckIsDisableChart(edbInfoIdArr)
|
|
|
-//
|
|
|
-// sort.Ints(edbInfoIdArr)
|
|
|
-// var edbInfoIdArrStr []string
|
|
|
-// for _, v := range edbInfoIdArr {
|
|
|
-// edbInfoIdArrStr = append(edbInfoIdArrStr, strconv.Itoa(v))
|
|
|
-// }
|
|
|
-// edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
|
|
|
-//
|
|
|
-// // 批量配置
|
|
|
-// lineChartInfoConfigByte, err := json.Marshal(lineChartInfoConfig)
|
|
|
-// if err != nil {
|
|
|
-// return
|
|
|
-// }
|
|
|
-// multipleGraphConfig := &data_manage.MultipleGraphConfig{
|
|
|
-// Curve: string(lineChartInfoConfigByte),
|
|
|
-// SysUserId: sysUser.AdminId,
|
|
|
-// SysUserRealName: sysUser.RealName,
|
|
|
-// ModifyTime: time.Now(),
|
|
|
-// CreateTime: time.Now(),
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 多图
|
|
|
-// batchAddChartList = make([]line_equation.BatchAddChart, 0)
|
|
|
-// for _, v := range batchAddChartReq {
|
|
|
-// tmpLineChartInfoConfig := lineChartInfoConfig
|
|
|
-// tmpLineChartInfoConfig.Source = v.Source
|
|
|
-// tmpLineChartInfoConfigByte, tmpErr := json.Marshal(tmpLineChartInfoConfig)
|
|
|
-// if tmpErr != nil {
|
|
|
-// err = tmpErr
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// chartInfo := &data_manage.ChartInfo{
|
|
|
-// ChartInfoId: 0,
|
|
|
-// ChartName: v.ChartName,
|
|
|
-// //ChartNameEn: v.ChartName,
|
|
|
-// ChartClassifyId: v.ChartClassifyId,
|
|
|
-// SysUserId: sysUser.AdminId,
|
|
|
-// SysUserRealName: sysUser.RealName,
|
|
|
-// UniqueCode: utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + strconv.FormatInt(time.Now().UnixNano(), 10)),
|
|
|
-// CreateTime: time.Now(),
|
|
|
-// ModifyTime: time.Now(),
|
|
|
-// DateType: lineChartInfoConfig.DateType,
|
|
|
-// StartDate: lineChartInfoConfig.StartDate,
|
|
|
-// EndDate: lineChartInfoConfig.EndDate,
|
|
|
-// IsSetName: 0,
|
|
|
-// EdbInfoIds: edbInfoIdStr,
|
|
|
-// ChartType: 1,
|
|
|
-// Calendar: "公历",
|
|
|
-// SeasonStartDate: "",
|
|
|
-// SeasonEndDate: "",
|
|
|
-// ChartImage: v.ChartImage,
|
|
|
-// Sort: 0,
|
|
|
-// LeftMin: v.LeftMin,
|
|
|
-// LeftMax: v.LeftMax,
|
|
|
-// RightMin: "",
|
|
|
-// RightMax: "",
|
|
|
-// Disabled: disableVal,
|
|
|
-// BarConfig: "",
|
|
|
-// Source: source,
|
|
|
-// ExtraConfig: string(tmpLineChartInfoConfigByte),
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 指标信息
|
|
|
-// mapList := make([]*data_manage.ChartEdbMapping, 0)
|
|
|
-// for _, edbInfo := range edbList {
|
|
|
-// mapItem := new(data_manage.ChartEdbMapping)
|
|
|
-// mapItem.EdbInfoId = edbInfo.EdbInfoId
|
|
|
-// mapItem.CreateTime = time.Now()
|
|
|
-// mapItem.ModifyTime = time.Now()
|
|
|
-// timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
-//
|
|
|
-// mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + timestamp + "_" + strconv.Itoa(edbInfo.EdbInfoId))
|
|
|
-// mapItem.IsOrder = true
|
|
|
-// mapItem.IsAxis = 1
|
|
|
-// mapItem.EdbInfoType = 1
|
|
|
-// mapItem.Source = source
|
|
|
-// mapList = append(mapList, mapItem)
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 批量的关系图
|
|
|
-// multipleGraphConfigChartMapping := &data_manage.MultipleGraphConfigChartMapping{
|
|
|
-// //Id: 0,
|
|
|
-// //MultipleGraphConfigId: 0,
|
|
|
-// //ChartInfoId: 0,
|
|
|
-// Source: v.Source,
|
|
|
-// ModifyTime: time.Now(),
|
|
|
-// CreateTime: time.Now(),
|
|
|
-// }
|
|
|
-//
|
|
|
-// batchAddChartList = append(batchAddChartList, line_equation.BatchAddChart{
|
|
|
-// ChartInfo: chartInfo,
|
|
|
-// EdbMappingList: mapList,
|
|
|
-// MultipleGraphConfigChartMapping: multipleGraphConfigChartMapping,
|
|
|
-// })
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 批量创建
|
|
|
-// err = line_equation.CreateLineEquationChartAndEdb(multipleGraphConfig, batchAddChartList)
|
|
|
-//
|
|
|
-// // 更改es
|
|
|
-// for _, v := range batchAddChartList {
|
|
|
-// //添加es数据
|
|
|
-// go data.EsAddOrEditChartInfo(v.ChartInfo.ChartInfoId)
|
|
|
-// }
|
|
|
-//
|
|
|
-// return
|
|
|
-//}
|
|
|
+func BatchAddChartInfo(batchAddChartReq []request.AddChart, lineChartInfoConfig request.LineChartInfoReq, sysUser *system.Admin) (batchAddChartList []line_equation.BatchAddChart, err error, errMsg string, isSendEmail bool) {
|
|
|
+ source := utils.CHART_SOURCE_LINE_EQUATION
|
|
|
+ // 获取需要
|
|
|
+ for k, v := range batchAddChartReq {
|
|
|
+ v.ChartName = strings.Trim(v.ChartName, " ")
|
|
|
+ batchAddChartReq[k] = v
|
|
|
+
|
|
|
+ if v.ChartName == "" {
|
|
|
+ errMsg = "请填写图表名称!"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if v.ChartClassifyId <= 0 {
|
|
|
+ errMsg = "请填写图表名称!"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ chartClassify, tmpErr := data_manage.GetChartClassifyById(v.ChartClassifyId)
|
|
|
+ if tmpErr != nil {
|
|
|
+ if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
+ errMsg = "分类不存在"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ errMsg = "获取分类信息失败"
|
|
|
+ err = errors.New("获取分类信息失败,Err:" + tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if chartClassify == nil {
|
|
|
+ errMsg = "分类不存在"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断图表是否存在
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition += " AND chart_name=? AND source = ? "
|
|
|
+ pars = append(pars, v.ChartName, source)
|
|
|
+ count, tmpErr := data_manage.GetChartInfoCountByCondition(condition, pars)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = "判断图表名称是否存在失败"
|
|
|
+ err = errors.New("判断图表名称是否存在失败,Err:" + tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "图表已存在,请重新填写"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ edbList, _, _, err, errMsg := getConfigData(lineChartInfoConfig)
|
|
|
+
|
|
|
+ var edbInfoIdArr []int
|
|
|
+ for _, v := range edbList {
|
|
|
+ edbInfoIdArr = append(edbInfoIdArr, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ disableVal := data.CheckIsDisableChart(edbInfoIdArr)
|
|
|
+
|
|
|
+ sort.Ints(edbInfoIdArr)
|
|
|
+ var edbInfoIdArrStr []string
|
|
|
+ for _, v := range edbInfoIdArr {
|
|
|
+ edbInfoIdArrStr = append(edbInfoIdArrStr, strconv.Itoa(v))
|
|
|
+ }
|
|
|
+ edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
|
|
|
+
|
|
|
+ // 批量配置
|
|
|
+ lineChartInfoConfigByte, err := json.Marshal(lineChartInfoConfig)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ multipleGraphConfig := &data_manage.MultipleGraphConfig{
|
|
|
+ Curve: string(lineChartInfoConfigByte),
|
|
|
+ SysUserId: sysUser.AdminId,
|
|
|
+ SysUserRealName: sysUser.RealName,
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+
|
|
|
+ // 多图
|
|
|
+ batchAddChartList = make([]line_equation.BatchAddChart, 0)
|
|
|
+ for _, v := range batchAddChartReq {
|
|
|
+ tmpLineChartInfoConfig := lineChartInfoConfig
|
|
|
+ tmpLineChartInfoConfig.Source = v.Source
|
|
|
+ tmpLineChartInfoConfigByte, tmpErr := json.Marshal(tmpLineChartInfoConfig)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ chartInfo := &data_manage.ChartInfo{
|
|
|
+ ChartInfoId: 0,
|
|
|
+ ChartName: v.ChartName,
|
|
|
+ //ChartNameEn: v.ChartName,
|
|
|
+ ChartClassifyId: v.ChartClassifyId,
|
|
|
+ SysUserId: sysUser.AdminId,
|
|
|
+ SysUserRealName: sysUser.RealName,
|
|
|
+ UniqueCode: utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + strconv.FormatInt(time.Now().UnixNano(), 10)),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ DateType: lineChartInfoConfig.DateType,
|
|
|
+ StartDate: lineChartInfoConfig.StartDate,
|
|
|
+ EndDate: lineChartInfoConfig.EndDate,
|
|
|
+ IsSetName: 0,
|
|
|
+ EdbInfoIds: edbInfoIdStr,
|
|
|
+ ChartType: 1,
|
|
|
+ Calendar: "公历",
|
|
|
+ SeasonStartDate: "",
|
|
|
+ SeasonEndDate: "",
|
|
|
+ ChartImage: v.ChartImage,
|
|
|
+ Sort: 0,
|
|
|
+ LeftMin: v.LeftMin,
|
|
|
+ LeftMax: v.LeftMax,
|
|
|
+ RightMin: "",
|
|
|
+ RightMax: "",
|
|
|
+ Disabled: disableVal,
|
|
|
+ BarConfig: "",
|
|
|
+ Source: source,
|
|
|
+ ExtraConfig: string(tmpLineChartInfoConfigByte),
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标信息
|
|
|
+ mapList := make([]*data_manage.ChartEdbMapping, 0)
|
|
|
+ for _, edbInfo := range edbList {
|
|
|
+ mapItem := new(data_manage.ChartEdbMapping)
|
|
|
+ mapItem.EdbInfoId = edbInfo.EdbInfoId
|
|
|
+ mapItem.CreateTime = time.Now()
|
|
|
+ mapItem.ModifyTime = time.Now()
|
|
|
+ timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
+
|
|
|
+ mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + timestamp + "_" + strconv.Itoa(edbInfo.EdbInfoId))
|
|
|
+ mapItem.IsOrder = true
|
|
|
+ mapItem.IsAxis = 1
|
|
|
+ mapItem.EdbInfoType = 1
|
|
|
+ mapItem.Source = source
|
|
|
+ mapList = append(mapList, mapItem)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量的关系图
|
|
|
+ multipleGraphConfigChartMapping := &data_manage.MultipleGraphConfigChartMapping{
|
|
|
+ //Id: 0,
|
|
|
+ //MultipleGraphConfigId: 0,
|
|
|
+ //ChartInfoId: 0,
|
|
|
+ Source: v.Source,
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+
|
|
|
+ batchAddChartList = append(batchAddChartList, line_equation.BatchAddChart{
|
|
|
+ ChartInfo: chartInfo,
|
|
|
+ EdbMappingList: mapList,
|
|
|
+ MultipleGraphConfigChartMapping: multipleGraphConfigChartMapping,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量创建
|
|
|
+ err = line_equation.CreateLineEquationChartAndEdb(multipleGraphConfig, batchAddChartList)
|
|
|
+
|
|
|
+ // 更改es
|
|
|
+ for _, v := range batchAddChartList {
|
|
|
+ //添加es数据
|
|
|
+ go data.EsAddOrEditChartInfo(v.ChartInfo.ChartInfoId)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
|
|
|
// BatchSaveChartInfo 批量添加编辑图表
|
|
|
-//func BatchSaveChartInfo(multipleGraphConfigId int, batchAddChartReq []request.AddChart, lineChartInfoConfig request.LineChartInfoReq, sysUser *system.Admin) (batchAddChartList []line_equation.BatchAddChart, err error, errMsg string, isSendEmail bool) {
|
|
|
-// // 获取统一配置
|
|
|
-// multipleGraphConfig, err := data_manage.GetMultipleGraphConfigById(multipleGraphConfigId)
|
|
|
-// if err != nil {
|
|
|
-// errMsg = `获取失败`
|
|
|
-// err = errors.New(`获取配置失败,ERR:` + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// // 获取已经关联的图表
|
|
|
-// chartMappingList, err := data_manage.GetMultipleGraphConfigChartMappingListById(multipleGraphConfig.MultipleGraphConfigId)
|
|
|
-// if err != nil {
|
|
|
-// errMsg = `获取失败`
|
|
|
-// err = errors.New(`获取关联图表配置失败,ERR:` + err.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 已经存在关联的图表map
|
|
|
-// existSourceChartMap := make(map[int]*data_manage.MultipleGraphConfigChartMapping)
|
|
|
-// // 已经存在的图表map
|
|
|
-// existChartInfoMap := make(map[int]*data_manage.ChartInfo)
|
|
|
-// for _, v := range chartMappingList {
|
|
|
-// existSourceChartMap[v.Source] = v
|
|
|
-//
|
|
|
-// chartInfo, tmpErr := data_manage.GetChartInfoById(v.ChartInfoId)
|
|
|
-// if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
|
|
|
-// err = tmpErr
|
|
|
-// return
|
|
|
-// }
|
|
|
-// if chartInfo != nil {
|
|
|
-// existChartInfoMap[v.Source] = chartInfo
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// source := utils.CHART_SOURCE_LINE_EQUATION
|
|
|
-// // 获取需要
|
|
|
-// for k, v := range batchAddChartReq {
|
|
|
-// v.ChartName = strings.Trim(v.ChartName, " ")
|
|
|
-// batchAddChartReq[k] = v
|
|
|
-//
|
|
|
-// if v.ChartName == "" {
|
|
|
-// errMsg = "请填写图表名称!"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-// if v.ChartClassifyId <= 0 {
|
|
|
-// errMsg = "请填写图表名称!"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// chartClassify, tmpErr := data_manage.GetChartClassifyById(v.ChartClassifyId)
|
|
|
-// if tmpErr != nil {
|
|
|
-// if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
-// errMsg = "分类不存在"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-// errMsg = "获取分类信息失败"
|
|
|
-// err = errors.New("获取分类信息失败,Err:" + tmpErr.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-// if chartClassify == nil {
|
|
|
-// errMsg = "分类不存在"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 判断图表是否存在
|
|
|
-// var condition string
|
|
|
-// var pars []interface{}
|
|
|
-// condition += " AND chart_name=? AND source = ? "
|
|
|
-// pars = append(pars, v.ChartName, source)
|
|
|
-//
|
|
|
-// // 已经创建了图表的类型
|
|
|
-// if sourceChart, ok := existChartInfoMap[v.Source]; ok {
|
|
|
-// condition += " AND chart_info_id != ? "
|
|
|
-// pars = append(pars, sourceChart.ChartInfoId)
|
|
|
-// }
|
|
|
-//
|
|
|
-// count, tmpErr := data_manage.GetChartInfoCountByCondition(condition, pars)
|
|
|
-// if tmpErr != nil {
|
|
|
-// errMsg = "判断图表名称是否存在失败"
|
|
|
-// err = errors.New("判断图表名称是否存在失败,Err:" + tmpErr.Error())
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// if count > 0 {
|
|
|
-// errMsg = "图表已存在,请重新填写"
|
|
|
-// err = errors.New(errMsg)
|
|
|
-// isSendEmail = false
|
|
|
-// return
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// edbList, _, _, err, errMsg := getConfigData(lineChartInfoConfig)
|
|
|
-//
|
|
|
-// var edbInfoIdArr []int
|
|
|
-// for _, v := range edbList {
|
|
|
-// edbInfoIdArr = append(edbInfoIdArr, v.EdbInfoId)
|
|
|
-// }
|
|
|
-// disableVal := data.CheckIsDisableChart(edbInfoIdArr)
|
|
|
-//
|
|
|
-// sort.Ints(edbInfoIdArr)
|
|
|
-// var edbInfoIdArrStr []string
|
|
|
-// for _, v := range edbInfoIdArr {
|
|
|
-// edbInfoIdArrStr = append(edbInfoIdArrStr, strconv.Itoa(v))
|
|
|
-// }
|
|
|
-// edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
|
|
|
-//
|
|
|
-// // 批量配置
|
|
|
-// lineChartInfoConfigByte, err := json.Marshal(lineChartInfoConfig)
|
|
|
-// if err != nil {
|
|
|
-// return
|
|
|
-// }
|
|
|
-// multipleGraphConfig.Curve = string(lineChartInfoConfigByte)
|
|
|
-// multipleGraphConfig.ModifyTime = time.Now()
|
|
|
-// updateMultipleGraphConfigCols := []string{"Curve", "ModifyTime"}
|
|
|
-// updateChartCols := []string{"ChartName", "DateType", "StartDate", "EndDate", "EdbInfoIds", "LeftMin", "LeftMax", "Disabled", "ExtraConfig"}
|
|
|
-//
|
|
|
-// // 多图
|
|
|
-// batchAddChartList = make([]line_equation.BatchAddChart, 0)
|
|
|
-// for _, v := range batchAddChartReq {
|
|
|
-// tmpLineChartInfoConfig := lineChartInfoConfig
|
|
|
-// tmpLineChartInfoConfig.Source = v.Source
|
|
|
-// tmpLineChartInfoConfigByte, tmpErr := json.Marshal(tmpLineChartInfoConfig)
|
|
|
-// if tmpErr != nil {
|
|
|
-// err = tmpErr
|
|
|
-// return
|
|
|
-// }
|
|
|
-//
|
|
|
-// var multipleGraphConfigChartMapping *data_manage.MultipleGraphConfigChartMapping
|
|
|
-// // 已经创建了图表的类型
|
|
|
-// chartInfo, ok := existChartInfoMap[v.Source]
|
|
|
-// if ok {
|
|
|
-// chartInfo.ChartName = v.ChartName
|
|
|
-// chartInfo.DateType = lineChartInfoConfig.DateType
|
|
|
-// chartInfo.StartDate = lineChartInfoConfig.StartDate
|
|
|
-// chartInfo.EndDate = lineChartInfoConfig.EndDate
|
|
|
-// chartInfo.EdbInfoIds = edbInfoIdStr
|
|
|
-// chartInfo.LeftMin = v.LeftMin
|
|
|
-// chartInfo.LeftMax = v.LeftMax
|
|
|
-// chartInfo.Disabled = disableVal
|
|
|
-// chartInfo.ExtraConfig = string(tmpLineChartInfoConfigByte)
|
|
|
-// //updateChartInfoList
|
|
|
-//
|
|
|
-// tmpMultipleGraphConfigChartMapping, ok2 := existSourceChartMap[v.Source]
|
|
|
-// if !ok2 {
|
|
|
-// err = errors.New("找不到对应的统一配置关系")
|
|
|
-// return
|
|
|
-// }
|
|
|
-// multipleGraphConfigChartMapping = tmpMultipleGraphConfigChartMapping
|
|
|
-// } else {
|
|
|
-// chartInfo = &data_manage.ChartInfo{
|
|
|
-// ChartInfoId: 0,
|
|
|
-// ChartName: v.ChartName,
|
|
|
-// //ChartNameEn: v.ChartName,
|
|
|
-// ChartClassifyId: v.ChartClassifyId,
|
|
|
-// SysUserId: sysUser.AdminId,
|
|
|
-// SysUserRealName: sysUser.RealName,
|
|
|
-// UniqueCode: utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + strconv.FormatInt(time.Now().UnixNano(), 10)),
|
|
|
-// CreateTime: time.Now(),
|
|
|
-// ModifyTime: time.Now(),
|
|
|
-// DateType: lineChartInfoConfig.DateType,
|
|
|
-// StartDate: lineChartInfoConfig.StartDate,
|
|
|
-// EndDate: lineChartInfoConfig.EndDate,
|
|
|
-// IsSetName: 0,
|
|
|
-// EdbInfoIds: edbInfoIdStr,
|
|
|
-// ChartType: 1,
|
|
|
-// Calendar: "公历",
|
|
|
-// SeasonStartDate: "",
|
|
|
-// SeasonEndDate: "",
|
|
|
-// ChartImage: "",
|
|
|
-// Sort: 0,
|
|
|
-// LeftMin: v.LeftMin,
|
|
|
-// LeftMax: v.LeftMax,
|
|
|
-// RightMin: "",
|
|
|
-// RightMax: "",
|
|
|
-// Disabled: disableVal,
|
|
|
-// BarConfig: "",
|
|
|
-// Source: source,
|
|
|
-// ExtraConfig: string(tmpLineChartInfoConfigByte),
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 批量配置的关系图
|
|
|
-// if tmpMultipleGraphConfigChartMapping, ok2 := existSourceChartMap[v.Source]; ok2 {
|
|
|
-// multipleGraphConfigChartMapping = tmpMultipleGraphConfigChartMapping
|
|
|
-// } else {
|
|
|
-// multipleGraphConfigChartMapping = &data_manage.MultipleGraphConfigChartMapping{
|
|
|
-// //Id: 0,
|
|
|
-// //MultipleGraphConfigId: 0,
|
|
|
-// //ChartInfoId: 0,
|
|
|
-// Source: v.Source,
|
|
|
-// ModifyTime: time.Now(),
|
|
|
-// CreateTime: time.Now(),
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 指标信息
|
|
|
-// mapList := make([]*data_manage.ChartEdbMapping, 0)
|
|
|
-// for _, edbInfo := range edbList {
|
|
|
-// mapItem := new(data_manage.ChartEdbMapping)
|
|
|
-// mapItem.EdbInfoId = edbInfo.EdbInfoId
|
|
|
-// mapItem.CreateTime = time.Now()
|
|
|
-// mapItem.ModifyTime = time.Now()
|
|
|
-// timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
-//
|
|
|
-// mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + timestamp + "_" + strconv.Itoa(edbInfo.EdbInfoId))
|
|
|
-// mapItem.IsOrder = true
|
|
|
-// mapItem.IsAxis = 1
|
|
|
-// mapItem.EdbInfoType = 1
|
|
|
-// mapItem.Source = source
|
|
|
-// mapList = append(mapList, mapItem)
|
|
|
-// }
|
|
|
-//
|
|
|
-// batchAddChartList = append(batchAddChartList, line_equation.BatchAddChart{
|
|
|
-// ChartInfo: chartInfo,
|
|
|
-// EdbMappingList: mapList,
|
|
|
-// MultipleGraphConfigChartMapping: multipleGraphConfigChartMapping,
|
|
|
-// })
|
|
|
-// }
|
|
|
-//
|
|
|
-// // 批量创建
|
|
|
-// err = line_equation.CreateAndEditLineEquationChartAndEdb(multipleGraphConfig, batchAddChartList, updateMultipleGraphConfigCols, updateChartCols)
|
|
|
-//
|
|
|
-// // 更改es
|
|
|
-// for _, v := range batchAddChartList {
|
|
|
-// //添加es数据
|
|
|
-// go data.EsAddOrEditChartInfo(v.ChartInfo.ChartInfoId)
|
|
|
-// }
|
|
|
-// return
|
|
|
-//}
|
|
|
+func BatchSaveChartInfo(multipleGraphConfigId int, batchAddChartReq []request.AddChart, lineChartInfoConfig request.LineChartInfoReq, sysUser *system.Admin) (batchAddChartList []line_equation.BatchAddChart, err error, errMsg string, isSendEmail bool) {
|
|
|
+ // 获取统一配置
|
|
|
+ multipleGraphConfig, err := data_manage.GetMultipleGraphConfigById(multipleGraphConfigId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = `获取失败`
|
|
|
+ err = errors.New(`获取配置失败,ERR:` + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 获取已经关联的图表
|
|
|
+ chartMappingList, err := data_manage.GetMultipleGraphConfigChartMappingListById(multipleGraphConfig.MultipleGraphConfigId)
|
|
|
+ if err != nil {
|
|
|
+ errMsg = `获取失败`
|
|
|
+ err = errors.New(`获取关联图表配置失败,ERR:` + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 已经存在关联的图表map
|
|
|
+ existSourceChartMap := make(map[int]*data_manage.MultipleGraphConfigChartMapping)
|
|
|
+ // 已经存在的图表map
|
|
|
+ existChartInfoMap := make(map[int]*data_manage.ChartInfo)
|
|
|
+ for _, v := range chartMappingList {
|
|
|
+ existSourceChartMap[v.Source] = v
|
|
|
+
|
|
|
+ chartInfo, tmpErr := data_manage.GetChartInfoById(v.ChartInfoId)
|
|
|
+ if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if chartInfo != nil {
|
|
|
+ existChartInfoMap[v.Source] = chartInfo
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ source := utils.CHART_SOURCE_LINE_EQUATION
|
|
|
+ // 获取需要
|
|
|
+ for k, v := range batchAddChartReq {
|
|
|
+ v.ChartName = strings.Trim(v.ChartName, " ")
|
|
|
+ batchAddChartReq[k] = v
|
|
|
+
|
|
|
+ if v.ChartName == "" {
|
|
|
+ errMsg = "请填写图表名称!"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if v.ChartClassifyId <= 0 {
|
|
|
+ errMsg = "请填写图表名称!"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ chartClassify, tmpErr := data_manage.GetChartClassifyById(v.ChartClassifyId)
|
|
|
+ if tmpErr != nil {
|
|
|
+ if tmpErr.Error() == utils.ErrNoRow() {
|
|
|
+ errMsg = "分类不存在"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ errMsg = "获取分类信息失败"
|
|
|
+ err = errors.New("获取分类信息失败,Err:" + tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if chartClassify == nil {
|
|
|
+ errMsg = "分类不存在"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断图表是否存在
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ condition += " AND chart_name=? AND source = ? "
|
|
|
+ pars = append(pars, v.ChartName, source)
|
|
|
+
|
|
|
+ // 已经创建了图表的类型
|
|
|
+ if sourceChart, ok := existChartInfoMap[v.Source]; ok {
|
|
|
+ condition += " AND chart_info_id != ? "
|
|
|
+ pars = append(pars, sourceChart.ChartInfoId)
|
|
|
+ }
|
|
|
+
|
|
|
+ count, tmpErr := data_manage.GetChartInfoCountByCondition(condition, pars)
|
|
|
+ if tmpErr != nil {
|
|
|
+ errMsg = "判断图表名称是否存在失败"
|
|
|
+ err = errors.New("判断图表名称是否存在失败,Err:" + tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if count > 0 {
|
|
|
+ errMsg = "图表已存在,请重新填写"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ edbList, _, _, err, errMsg := getConfigData(lineChartInfoConfig)
|
|
|
+
|
|
|
+ var edbInfoIdArr []int
|
|
|
+ for _, v := range edbList {
|
|
|
+ edbInfoIdArr = append(edbInfoIdArr, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ disableVal := data.CheckIsDisableChart(edbInfoIdArr)
|
|
|
+
|
|
|
+ sort.Ints(edbInfoIdArr)
|
|
|
+ var edbInfoIdArrStr []string
|
|
|
+ for _, v := range edbInfoIdArr {
|
|
|
+ edbInfoIdArrStr = append(edbInfoIdArrStr, strconv.Itoa(v))
|
|
|
+ }
|
|
|
+ edbInfoIdStr := strings.Join(edbInfoIdArrStr, ",")
|
|
|
+
|
|
|
+ // 批量配置
|
|
|
+ lineChartInfoConfigByte, err := json.Marshal(lineChartInfoConfig)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ multipleGraphConfig.Curve = string(lineChartInfoConfigByte)
|
|
|
+ multipleGraphConfig.ModifyTime = time.Now()
|
|
|
+ updateMultipleGraphConfigCols := []string{"Curve", "ModifyTime"}
|
|
|
+ updateChartCols := []string{"ChartName", "DateType", "StartDate", "EndDate", "EdbInfoIds", "LeftMin", "LeftMax", "Disabled", "ExtraConfig"}
|
|
|
+
|
|
|
+ // 多图
|
|
|
+ batchAddChartList = make([]line_equation.BatchAddChart, 0)
|
|
|
+ for _, v := range batchAddChartReq {
|
|
|
+ tmpLineChartInfoConfig := lineChartInfoConfig
|
|
|
+ tmpLineChartInfoConfig.Source = v.Source
|
|
|
+ tmpLineChartInfoConfigByte, tmpErr := json.Marshal(tmpLineChartInfoConfig)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var multipleGraphConfigChartMapping *data_manage.MultipleGraphConfigChartMapping
|
|
|
+ // 已经创建了图表的类型
|
|
|
+ chartInfo, ok := existChartInfoMap[v.Source]
|
|
|
+ if ok {
|
|
|
+ chartInfo.ChartName = v.ChartName
|
|
|
+ chartInfo.DateType = lineChartInfoConfig.DateType
|
|
|
+ chartInfo.StartDate = lineChartInfoConfig.StartDate
|
|
|
+ chartInfo.EndDate = lineChartInfoConfig.EndDate
|
|
|
+ chartInfo.EdbInfoIds = edbInfoIdStr
|
|
|
+ chartInfo.LeftMin = v.LeftMin
|
|
|
+ chartInfo.LeftMax = v.LeftMax
|
|
|
+ chartInfo.Disabled = disableVal
|
|
|
+ chartInfo.ExtraConfig = string(tmpLineChartInfoConfigByte)
|
|
|
+ //updateChartInfoList
|
|
|
+
|
|
|
+ tmpMultipleGraphConfigChartMapping, ok2 := existSourceChartMap[v.Source]
|
|
|
+ if !ok2 {
|
|
|
+ err = errors.New("找不到对应的统一配置关系")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ multipleGraphConfigChartMapping = tmpMultipleGraphConfigChartMapping
|
|
|
+ } else {
|
|
|
+ chartInfo = &data_manage.ChartInfo{
|
|
|
+ ChartInfoId: 0,
|
|
|
+ ChartName: v.ChartName,
|
|
|
+ //ChartNameEn: v.ChartName,
|
|
|
+ ChartClassifyId: v.ChartClassifyId,
|
|
|
+ SysUserId: sysUser.AdminId,
|
|
|
+ SysUserRealName: sysUser.RealName,
|
|
|
+ UniqueCode: utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + strconv.FormatInt(time.Now().UnixNano(), 10)),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ DateType: lineChartInfoConfig.DateType,
|
|
|
+ StartDate: lineChartInfoConfig.StartDate,
|
|
|
+ EndDate: lineChartInfoConfig.EndDate,
|
|
|
+ IsSetName: 0,
|
|
|
+ EdbInfoIds: edbInfoIdStr,
|
|
|
+ ChartType: 1,
|
|
|
+ Calendar: "公历",
|
|
|
+ SeasonStartDate: "",
|
|
|
+ SeasonEndDate: "",
|
|
|
+ ChartImage: "",
|
|
|
+ Sort: 0,
|
|
|
+ LeftMin: v.LeftMin,
|
|
|
+ LeftMax: v.LeftMax,
|
|
|
+ RightMin: "",
|
|
|
+ RightMax: "",
|
|
|
+ Disabled: disableVal,
|
|
|
+ BarConfig: "",
|
|
|
+ Source: source,
|
|
|
+ ExtraConfig: string(tmpLineChartInfoConfigByte),
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量配置的关系图
|
|
|
+ if tmpMultipleGraphConfigChartMapping, ok2 := existSourceChartMap[v.Source]; ok2 {
|
|
|
+ multipleGraphConfigChartMapping = tmpMultipleGraphConfigChartMapping
|
|
|
+ } else {
|
|
|
+ multipleGraphConfigChartMapping = &data_manage.MultipleGraphConfigChartMapping{
|
|
|
+ //Id: 0,
|
|
|
+ //MultipleGraphConfigId: 0,
|
|
|
+ //ChartInfoId: 0,
|
|
|
+ Source: v.Source,
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标信息
|
|
|
+ mapList := make([]*data_manage.ChartEdbMapping, 0)
|
|
|
+ for _, edbInfo := range edbList {
|
|
|
+ mapItem := new(data_manage.ChartEdbMapping)
|
|
|
+ mapItem.EdbInfoId = edbInfo.EdbInfoId
|
|
|
+ mapItem.CreateTime = time.Now()
|
|
|
+ mapItem.ModifyTime = time.Now()
|
|
|
+ timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
+
|
|
|
+ mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + fmt.Sprint(v.Source) + "_" + timestamp + "_" + strconv.Itoa(edbInfo.EdbInfoId))
|
|
|
+ mapItem.IsOrder = true
|
|
|
+ mapItem.IsAxis = 1
|
|
|
+ mapItem.EdbInfoType = 1
|
|
|
+ mapItem.Source = source
|
|
|
+ mapList = append(mapList, mapItem)
|
|
|
+ }
|
|
|
+
|
|
|
+ batchAddChartList = append(batchAddChartList, line_equation.BatchAddChart{
|
|
|
+ ChartInfo: chartInfo,
|
|
|
+ EdbMappingList: mapList,
|
|
|
+ MultipleGraphConfigChartMapping: multipleGraphConfigChartMapping,
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量创建
|
|
|
+ err = line_equation.CreateAndEditLineEquationChartAndEdb(multipleGraphConfig, batchAddChartList, updateMultipleGraphConfigCols, updateChartCols)
|
|
|
+
|
|
|
+ // 更改es
|
|
|
+ for _, v := range batchAddChartList {
|
|
|
+ //添加es数据
|
|
|
+ go data.EsAddOrEditChartInfo(v.ChartInfo.ChartInfoId)
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|