|
@@ -6,6 +6,7 @@ import (
|
|
|
"eta/eta_api/models"
|
|
|
"eta/eta_api/models/data_manage"
|
|
|
"eta/eta_api/services/alarm_msg"
|
|
|
+ "eta/eta_api/services/data/data_manage_permission"
|
|
|
"eta/eta_api/services/elastic"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
@@ -1871,7 +1872,7 @@ func EdbInfoAdd(source, subSource, classifyId int, edbCode, edbName, frequency,
|
|
|
}
|
|
|
|
|
|
// TraceEdbInfoByEdbInfoId 指标追溯
|
|
|
-func TraceEdbInfoByEdbInfoId(edbInfoId int) (traceEdbInfo data_manage.TraceEdbInfoResp, err error) {
|
|
|
+func TraceEdbInfoByEdbInfoId(edbInfoId, sysUserId int) (traceEdbInfo data_manage.TraceEdbInfoResp, err error) {
|
|
|
edbInfo, err := data_manage.GetEdbInfoById(edbInfoId)
|
|
|
if err != nil {
|
|
|
return
|
|
@@ -1900,6 +1901,7 @@ func TraceEdbInfoByEdbInfoId(edbInfoId int) (traceEdbInfo data_manage.TraceEdbIn
|
|
|
for _, v := range findIdMap {
|
|
|
edbInfoIdList = append(edbInfoIdList, v)
|
|
|
}
|
|
|
+ classifyIdList := make([]int, 0)
|
|
|
edbInfoList, err := data_manage.GetEdbInfoByIdList(edbInfoIdList)
|
|
|
if err != nil {
|
|
|
return
|
|
@@ -1907,8 +1909,42 @@ func TraceEdbInfoByEdbInfoId(edbInfoId int) (traceEdbInfo data_manage.TraceEdbIn
|
|
|
edbInfoMap := make(map[int]*data_manage.EdbInfo)
|
|
|
for _, tmpEdbInfo := range edbInfoList {
|
|
|
edbInfoMap[tmpEdbInfo.EdbInfoId] = tmpEdbInfo
|
|
|
+ classifyIdList = append(classifyIdList, tmpEdbInfo.ClassifyId)
|
|
|
}
|
|
|
- traceEdbInfo, err = handleTraceEdbInfo(traceEdbInfo, 0, edbInfoMap, edbMappingMap)
|
|
|
+
|
|
|
+ // 指标权限Map
|
|
|
+ edbInfoIdPermissionMap := make(map[int]bool)
|
|
|
+ // 指标权限
|
|
|
+ {
|
|
|
+ // 当前的分类
|
|
|
+ classifyMap := make(map[int]*data_manage.EdbClassify)
|
|
|
+ classifyList, tmpErr := data_manage.GetEdbClassifyByIdList(classifyIdList)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range classifyList {
|
|
|
+ classifyMap[v.ClassifyId] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取所有有权限的指标和分类
|
|
|
+ permissionEdbIdList, permissionClassifyIdList, tmpErr := data_manage_permission.GetUserEdbAndClassifyPermissionList(sysUserId, 0, 0)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range edbInfoMap {
|
|
|
+ if currClassify, ok := classifyMap[v.ClassifyId]; ok {
|
|
|
+ edbInfoIdPermissionMap[v.EdbInfoId] = data_manage_permission.CheckEdbPermissionByPermissionIdList(v.IsJoinPermission, currClassify.IsJoinPermission, v.EdbInfoId, v.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ traceEdbInfo, err = handleTraceEdbInfo(traceEdbInfo, 0, edbInfoMap, edbMappingMap, edbInfoIdPermissionMap)
|
|
|
+
|
|
|
+ // 权限校验
|
|
|
+
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -2025,7 +2061,7 @@ func traceEdbInfoByEdbInfoId(edbInfoId int, traceEdbInfo data_manage.TraceEdbInf
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func handleTraceEdbInfo(traceEdbInfoResp data_manage.TraceEdbInfoResp, parentEdbInfoId int, edbInfoMap map[int]*data_manage.EdbInfo, edbMappingMap map[int][]*data_manage.EdbInfoCalculateMappingInfo) (newTraceEdbInfoResp data_manage.TraceEdbInfoResp, err error) {
|
|
|
+func handleTraceEdbInfo(traceEdbInfoResp data_manage.TraceEdbInfoResp, parentEdbInfoId int, edbInfoMap map[int]*data_manage.EdbInfo, edbMappingMap map[int][]*data_manage.EdbInfoCalculateMappingInfo, edbInfoIdPermissionMap map[int]bool) (newTraceEdbInfoResp data_manage.TraceEdbInfoResp, err error) {
|
|
|
edbInfo, ok := edbInfoMap[traceEdbInfoResp.EdbInfoId]
|
|
|
if !ok {
|
|
|
err = errors.New("指标异常")
|
|
@@ -2046,12 +2082,15 @@ func handleTraceEdbInfo(traceEdbInfoResp data_manage.TraceEdbInfoResp, parentEdb
|
|
|
|
|
|
if traceEdbInfoResp.Child != nil && len(traceEdbInfoResp.Child) > 0 {
|
|
|
for k, v := range traceEdbInfoResp.Child {
|
|
|
- traceEdbInfoResp.Child[k], err = handleTraceEdbInfo(v, traceEdbInfoResp.EdbInfoId, edbInfoMap, edbMappingMap)
|
|
|
+ traceEdbInfoResp.Child[k], err = handleTraceEdbInfo(v, traceEdbInfoResp.EdbInfoId, edbInfoMap, edbMappingMap, edbInfoIdPermissionMap)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // 指标权限
|
|
|
+ traceEdbInfoResp.HaveOperaAuth, _ = edbInfoIdPermissionMap[traceEdbInfoResp.EdbInfoId]
|
|
|
+
|
|
|
newTraceEdbInfoResp = traceEdbInfoResp
|
|
|
|
|
|
return
|