|
@@ -1546,34 +1546,85 @@ func GetFactorChartDataByChartId(chartInfoId int, extraConfig string) (xEdbIdVal
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// FormatChartEdbInfoMappings 补充指标信息
|
|
|
-func FormatChartEdbInfoMappings(chartInfoId int, mappings []*data_manage.ChartEdbInfoMapping) (edbList []*data_manage.ChartEdbInfoMapping, err error) {
|
|
|
- edbList = make([]*data_manage.ChartEdbInfoMapping, 0)
|
|
|
- if len(mappings) == 0 {
|
|
|
+// RemoveCorrelationRelate 删除相关性图表关联信息
|
|
|
+func RemoveCorrelationRelate(chartInfoId int) (err error) {
|
|
|
+ if chartInfoId <= 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 相关性图表
|
|
|
+ chartCorrelate := new(data_manage.ChartInfoCorrelation)
|
|
|
+ if e := chartCorrelate.GetItemById(chartInfoId); e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = fmt.Errorf("获取相关性图表信息失败, %v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if chartCorrelate == nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- for _, v := range mappings {
|
|
|
- if chartInfoId <= 0 {
|
|
|
- v.IsAxis = 1
|
|
|
- v.LeadValue = 0
|
|
|
- v.LeadUnit = ""
|
|
|
- v.ChartEdbMappingId = 0
|
|
|
- v.ChartInfoId = 0
|
|
|
- v.IsOrder = false
|
|
|
- v.EdbInfoType = 1
|
|
|
- v.ChartStyle = ""
|
|
|
- v.ChartColor = ""
|
|
|
- v.ChartWidth = 0
|
|
|
- } else {
|
|
|
- v.LeadUnitEn = data.GetLeadUnitEn(v.LeadUnit)
|
|
|
- v.LeadUnitEn = data.GetLeadUnitEn(v.LeadUnit)
|
|
|
+ // 删除相关性图
|
|
|
+ if e := chartCorrelate.Delete(); e != nil {
|
|
|
+ err = fmt.Errorf("删除相关性图表失败, %v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 多因子
|
|
|
+ if chartCorrelate.AnalysisMode != 1 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ seriesIds := make([]int, 0)
|
|
|
+
|
|
|
+ // 删除图表关联
|
|
|
+ chartMappingOb := new(data_manage.FactorEdbSeriesChartMapping)
|
|
|
+ {
|
|
|
+ cond := fmt.Sprintf(" AND %s = ?", chartMappingOb.Cols().ChartInfoId)
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, chartCorrelate.CorrelationChartInfoId)
|
|
|
+ items, e := chartMappingOb.GetItemsByCondition(cond, pars, []string{}, "")
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf("获取图表关联指标系列失败, %v", e)
|
|
|
+ return
|
|
|
}
|
|
|
- v.FrequencyEn = data.GetFrequencyEn(v.Frequency)
|
|
|
- if v.Unit == `无` {
|
|
|
- v.Unit = ``
|
|
|
+ for _, v := range items {
|
|
|
+ if !utils.InArrayByInt(seriesIds, v.FactorEdbSeriesId) {
|
|
|
+ seriesIds = append(seriesIds, v.FactorEdbSeriesId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ removeCond := fmt.Sprintf(" %s = ?", chartMappingOb.Cols().ChartInfoId)
|
|
|
+ if e = chartMappingOb.RemoveByCondition(removeCond, pars); e != nil {
|
|
|
+ err = fmt.Errorf("删除图表关联指标系列失败, %v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除系列
|
|
|
+ if len(seriesIds) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ seriesOb := new(data_manage.FactorEdbSeries)
|
|
|
+ if e := seriesOb.MultiRemove(seriesIds); e != nil {
|
|
|
+ err = fmt.Errorf("删除系列失败, %v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbMappingOb := new(data_manage.FactorEdbSeriesMapping)
|
|
|
+ {
|
|
|
+ cond := fmt.Sprintf(" %s IN (%s)", edbMappingOb.Cols().FactorEdbSeriesId, utils.GetOrmInReplace(len(seriesIds)))
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, seriesIds)
|
|
|
+ if e := edbMappingOb.RemoveByCondition(cond, pars); e != nil {
|
|
|
+ err = fmt.Errorf("删除系列指标失败, %v", e)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ calculateOb := new(data_manage.FactorEdbSeriesCalculateData)
|
|
|
+ {
|
|
|
+ cond := fmt.Sprintf(" %s IN (%s)", calculateOb.Cols().FactorEdbSeriesId, utils.GetOrmInReplace(len(seriesIds)))
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, seriesIds)
|
|
|
+ if e := calculateOb.RemoveByCondition(cond, pars); e != nil {
|
|
|
+ err = fmt.Errorf("删除系列指标计算失败, %v", e)
|
|
|
+ return
|
|
|
}
|
|
|
- edbList = append(edbList, v)
|
|
|
}
|
|
|
return
|
|
|
}
|