Эх сурвалжийг харах

fix:区间分析只看我

zqbao 6 сар өмнө
parent
commit
3d3bd0fba5

+ 9 - 0
controllers/data_manage/range_analysis/chart_classify.go

@@ -8,6 +8,7 @@ import (
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/data"
 	"eta/eta_api/services/data/data_manage_permission"
+	"eta/eta_api/services/data/range_analysis"
 	"eta/eta_api/utils"
 	"fmt"
 	"sort"
@@ -127,6 +128,14 @@ func (this *RangeChartClassifyController) ChartClassifyList() {
 			nodeAll = append(nodeAll, v)
 		}
 	}
+	if isShowMe {
+		nodeAll, err = range_analysis.GetClassifyListByIsShowMe(this.SysUser.AdminId, parentId, source, nodeAll)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,Err:" + err.Error()
+			return
+		}
+	}
 
 	// 整体排序
 	if len(nodeAll) > 0 {

+ 2 - 1
models/data_manage/chart_classify.go

@@ -3,8 +3,9 @@ package data_manage
 import (
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
+
+	"github.com/beego/beego/v2/client/orm"
 )
 
 type ChartClassify struct {

+ 13 - 5
models/data_manage/chart_info.go

@@ -5,12 +5,13 @@ import (
 	"eta/eta_api/models/mgo"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
-	"github.com/rdlucklib/rdluck_tools/paging"
-	"go.mongodb.org/mongo-driver/bson"
 	"strconv"
 	"strings"
 	"time"
+
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"go.mongodb.org/mongo-driver/bson"
 )
 
 type ChartInfo struct {
@@ -1417,8 +1418,6 @@ func EditChartBaseInfoAndEdbEnInfo(req *EditChartInfoBaseReq, chartItem *ChartIn
 		updateChartCols = append(updateChartCols, "ExtraConfig")
 	}
 
-
-
 	chartItem.ModifyTime = time.Now()
 	updateChartCols = append(updateChartCols, "ModifyTime")
 	_, err = to.Update(chartItem, updateChartCols...)
@@ -2774,6 +2773,15 @@ func GetChartInfoBySourceAndParentId(source, parentId, adminId int) (items []*Ch
 	return
 }
 
+func GetChartInfoBySourceAndAdminId(source, adminId int) (items []*ChartClassifyItems, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT chart_info_id,chart_classify_id,chart_name AS chart_classify_name,chart_name_en AS chart_classify_name_en,
+             unique_code,sys_user_id,sys_user_real_name,date_type,start_date,end_date,chart_type,calendar,season_start_date,season_end_date,source
+            FROM chart_info WHERE source = ? AND sys_user_id = ? ORDER BY sort asc,chart_info_id ASC `
+	_, err = o.Raw(sql, source, adminId).QueryRows(&items)
+	return
+}
+
 // PreviewSeasonChartReq 预览季节性图的请求入参
 type PreviewSeasonChartReq struct {
 	ChartEdbInfoList  []*ChartSaveItem `description:"指标及配置信息"`

+ 58 - 0
services/data/range_analysis/range_analysis_classify.go

@@ -0,0 +1,58 @@
+package range_analysis
+
+import (
+	"eta/eta_api/models/data_manage"
+	"eta/eta_api/services/data"
+)
+
+func GetClassifyListByIsShowMe(adminId, parentId, source int, classifyList []*data_manage.ChartClassifyItems) (items []*data_manage.ChartClassifyItems, err error) {
+	chartItems, err := data_manage.GetChartInfoBySourceAndAdminId(source, adminId)
+	if err != nil {
+		return
+	}
+	classifyIdList := make([]int, 0)
+	for _, chart := range chartItems {
+		if chart.ChartClassifyId > 0 {
+			classifyIdList = append(classifyIdList, chart.ChartClassifyId)
+		}
+	}
+	if parentId > 0 {
+		for _, v := range classifyList {
+			if v.ChartClassifyId > 0 && v.ChartInfoId == 0 {
+				classifyItems, er, _ := data.GetChildChartClassifyByClassifyId(v.ChartClassifyId)
+				if er != nil {
+					err = er
+					return
+				}
+				existClassifyMap := make(map[int]struct{})
+				for _, classify := range classifyItems {
+					existClassifyMap[classify.ChartClassifyId] = struct{}{}
+				}
+				for _, edb := range chartItems {
+					if _, ok := existClassifyMap[edb.ChartClassifyId]; ok {
+						items = append(items, v)
+						break
+					}
+				}
+			} else {
+				items = append(items, v)
+			}
+		}
+	} else {
+		tmpClassify, er := data_manage.GetChartClassifyByIdList(classifyIdList)
+		if er != nil {
+			err = er
+			return
+		}
+		existClassifyIdMap := make(map[int]struct{})
+		for _, classify := range tmpClassify {
+			existClassifyIdMap[classify.RootId] = struct{}{}
+		}
+		for _, classify := range classifyList {
+			if _, ok := existClassifyIdMap[classify.ChartClassifyId]; ok {
+				items = append(items, classify)
+			}
+		}
+	}
+	return
+}