Browse Source

同步组合图数据

xyxie 9 months ago
parent
commit
ed815137df

+ 35 - 0
models/chart_series.go

@@ -0,0 +1,35 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type ChartSeries struct {
+	ChartSeriesId int       `orm:"column(chart_series_id);pk"`
+	SeriesName    string    `description:"系列名称"`
+	SeriesNameEn  string    `description:"系列英文名称"`
+	ChartInfoId   int       `description:"图表ID"`
+	ChartStyle    string    `description:"图表类型"`
+	ChartColor    string    `description:"颜色"`
+	ChartWidth    int       `description:"线条大小"`
+	IsPoint       int       `description:"是否用数据点展示(0 否,1是)"`
+	IsNumber      int       `description:"是否用数值展示(0 否,1是)"`
+	IsAxis        int       `description:"1:左轴,0:右轴"`
+	MaxData       float64   `description:"上限"`
+	MinData       float64   `description:"下限"`
+	IsOrder       bool      `description:"true:正序,false:逆序"`
+	CreateTime    time.Time `description:"创建时间"`
+	ModifyTime    time.Time `description:"修改时间"`
+}
+
+func (c *ChartSeries) TableName() string {
+	return "chart_series"
+}
+
+func GetChartSeriesByChartInfoId(chartInfoId int) (items []*ChartSeries, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT * FROM chart_series WHERE chart_info_id = ?"
+	_, err = o.Raw(sql, chartInfoId).QueryRows(&items)
+	return
+}

+ 31 - 0
models/chart_series_edb_mapping.go

@@ -0,0 +1,31 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type ChartSeriesEdbMapping struct {
+	ChartSeriesEdbMappingId int       `orm:"column(chart_series_edb_mapping_id);pk"`
+	ChartSeriesId           int       `description:"系列ID"`
+	ChartInfoId             int       `description:"图表ID"`
+	EdbInfoId               int       `description:"指标id"`
+	EdbAliasName            string    `description:"中文别名"`
+	EdbAliasNameEn          string    `description:"英文别名"`
+	DateConfName            string    `description:"引用日期配置名称"`
+	DateConfType            int       `description:"日期类型,0指标最新日期, 1引用日期"`
+	DateConf                string    `description:"日期配置名称"`
+	ModifyTime              time.Time `description:"修改时间"`
+	CreateTime              time.Time `description:"创建时间"`
+}
+
+func (c *ChartSeriesEdbMapping) TableName() string {
+	return "chart_series_edb_mapping"
+}
+
+func GetChartSeriesEdbByChartInfoId(chartInfoId int) (items []*ChartSeriesEdbMapping, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := "SELECT * FROM chart_series_edb_mapping WHERE chart_info_id = ?"
+	_, err = o.Raw(sql, chartInfoId).QueryRows(&items)
+	return
+}

+ 20 - 1
services/chart_info.go

@@ -109,6 +109,23 @@ func UpdateChart(chartInfoId int) (err error, errMsg string) {
 	for _, v := range chartMappingList {
 		edbIds = append(edbIds, v.EdbInfoId)
 	}
+	chartSeriesList := make([]*models.ChartSeries, 0)
+	chartSeriesEdbList := make([]*models.ChartSeriesEdbMapping, 0)
+	if chartInfo.ChartType == utils.CHART_TYPE_SECTION_COMBINE {
+		chartSeriesList, err = models.GetChartSeriesByChartInfoId(chartInfoId)
+		if err != nil {
+			errMsg = "获取图表关联的系列信息失败"
+			err = fmt.Errorf("获取图表关联的系列信息失败,Err:" + err.Error())
+			return
+		}
+
+		chartSeriesEdbList, err = models.GetChartSeriesEdbByChartInfoId(chartInfoId)
+		if err != nil {
+			errMsg = "获取图表关联的系列指标信息失败"
+			err = fmt.Errorf("获取图表关联的系列指标信息失败,Err:" + err.Error())
+			return
+		}
+	}
 	var (
 		edbInfoList     []*models.EdbInfo
 		edbMappingList  []*models.EdbInfoCalculateMapping
@@ -128,6 +145,8 @@ func UpdateChart(chartInfoId int) (err error, errMsg string) {
 	req.EdbInfoList = edbInfoList
 	req.EdbInfoDataList = edbInfoDataList
 	req.EdbInfoCalculateMapping = edbMappingList
+	req.ChartSeries = chartSeriesList
+	req.ChartSeriesEdbMapping = chartSeriesEdbList
 	// 查询创建者信息
 	creatorInfo, _ := models.GetSysUserById(chartInfo.SysUserId)
 	if creatorInfo != nil {
@@ -186,7 +205,7 @@ func GetEdbListByEdbInfoId(edbInfoIds []int) (edbInfoList []*models.EdbInfo, edb
 
 	for _, v := range edbInfoList {
 		var dataList []*models.EdbDataBase
-		if v.Source == utils.DATA_SOURCE_BUSINESS {
+		if v.Source == utils.DATA_SOURCE_BUSINESS && utils.UseMongo {
 			dataList, err = models.GetEdbDataBaseMongoByEdbInfoId(v.EdbInfoId, v.Source, v.SubSource)
 		} else {
 			dataList, err = models.GetEdbDataBaseByEdbInfoId(v.EdbInfoId, v.Source, v.SubSource)

+ 2 - 0
services/eta_forum/eta_forum_hub.go

@@ -22,6 +22,8 @@ type ChartSaveLibReq struct {
 	EdbInfoDataList         []*AddEdbDataReq
 	ChartEdbMapping         []*models.ChartEdbMapping
 	EdbInfoCalculateMapping []*models.EdbInfoCalculateMapping
+	ChartSeries             []*models.ChartSeries
+	ChartSeriesEdbMapping   []*models.ChartSeriesEdbMapping
 	CreatorInfo             *models.Admin //创建者的账号信息
 }
 

+ 4 - 0
utils/config.go

@@ -66,6 +66,10 @@ var (
 // AlarmMsgUrl 报警服务地址
 var AlarmMsgUrl string
 
+var (
+	UseMongo bool // 是否使用mongo
+)
+
 func init() {
 	tmpRunMode, err := web.AppConfig.String("run_mode")
 	if err != nil {

+ 9 - 0
utils/constants.go

@@ -245,3 +245,12 @@ const (
 	CACHE_CRM_AUTH_CODE_PREFIX   = "eta_forum:crm_auth_code:"   // 免密登录Code-CRM
 	CACHE_FORUM_AUTH_CODE_PREFIX = "eta_forum:forum_auth_code:" // 免密登录Code-ETA
 )
+
+// 图表样式类型
+const (
+	CHART_TYPE_CURVE           = 1  //曲线图
+	CHART_TYPE_BAR             = 7  //柱形图
+	CHART_TYPE_SECTION_SCATTER = 10 //截面散点图样式
+	CHART_TYPE_RADAR           = 11 //雷达图
+	CHART_TYPE_SECTION_COMBINE = 14 //截面组合图
+)