|
@@ -2214,15 +2214,50 @@ func (this *ChartInfoController) CalculateMultiChoice() {
|
|
|
|
|
|
resp := new(data_manage.CalculateMultiChoiceResp)
|
|
|
|
|
|
- for _, info := range list {
|
|
|
- searchItem := data_manage.EdbInfoBase{
|
|
|
- Frequency: info.Frequency,
|
|
|
- Unit: info.Unit,
|
|
|
- EdbName: info.EdbName,
|
|
|
- EdbInfoId: info.EdbInfoId,
|
|
|
- ClassifyId: info.ClassifyId,
|
|
|
+ if len(list) > 0 {
|
|
|
+ // 当前列表中的分类map
|
|
|
+ classifyMap := make(map[int]*data_manage.EdbClassify)
|
|
|
+ {
|
|
|
+ classifyIdList := make([]int, 0)
|
|
|
+ for _, info := range list {
|
|
|
+ classifyIdList = append(classifyIdList, info.ClassifyId)
|
|
|
+ }
|
|
|
+ classifyList, err := data_manage.GetEdbClassifyByIdList(classifyIdList)
|
|
|
+ if err != nil {
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取分类列表失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range classifyList {
|
|
|
+ classifyMap[v.ClassifyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取所有有权限的指标和分类
|
|
|
+ permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserEdbAndClassifyPermissionList(this.SysUser.AdminId, 0, 0)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, info := range list {
|
|
|
+ var haveOperaAuth bool
|
|
|
+ if currClassify, ok := classifyMap[info.ClassifyId]; ok {
|
|
|
+ haveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(info.IsJoinPermission, currClassify.IsJoinPermission, info.EdbInfoId, info.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
|
|
|
+ }
|
|
|
+ searchItem := data_manage.EdbInfoBase{
|
|
|
+ Frequency: info.Frequency,
|
|
|
+ Unit: info.Unit,
|
|
|
+ EdbName: info.EdbName,
|
|
|
+ EdbInfoId: info.EdbInfoId,
|
|
|
+ ClassifyId: info.ClassifyId,
|
|
|
+ HaveOperaAuth: haveOperaAuth,
|
|
|
+ }
|
|
|
+ searchItemList = append(searchItemList, searchItem)
|
|
|
}
|
|
|
- searchItemList = append(searchItemList, searchItem)
|
|
|
}
|
|
|
|
|
|
resp.SearchItem = searchItemList
|
|
@@ -2324,11 +2359,37 @@ func (this *ChartInfoController) CalculateMultiSearch() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- for _, v := range edbList {
|
|
|
- edbIdArr = append(edbIdArr, v.EdbInfoId)
|
|
|
- }
|
|
|
+ if len(edbList) > 0 {
|
|
|
+ classifyIdList := make([]int, 0)
|
|
|
+ for _, v := range edbList {
|
|
|
+ edbIdArr = append(edbIdArr, v.EdbInfoId)
|
|
|
+ classifyIdList = append(classifyIdList, v.ClassifyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 当前列表中的分类map
|
|
|
+ classifyMap := make(map[int]*data_manage.EdbClassify)
|
|
|
+ {
|
|
|
+ classifyList, err := data_manage.GetEdbClassifyByIdList(classifyIdList)
|
|
|
+ if err != nil {
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取分类列表失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, v := range classifyList {
|
|
|
+ classifyMap[v.ClassifyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取所有有权限的指标和分类
|
|
|
+ permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserEdbAndClassifyPermissionList(this.SysUser.AdminId, 0, 0)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- if len(edbIdArr) > 0 {
|
|
|
list, err := data_manage.GetEdbInfoByIdList(edbIdArr)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取指标列表失败"
|
|
@@ -2336,6 +2397,10 @@ func (this *ChartInfoController) CalculateMultiSearch() {
|
|
|
return
|
|
|
}
|
|
|
for _, info := range list {
|
|
|
+ var haveOperaAuth bool
|
|
|
+ if currClassify, ok := classifyMap[info.ClassifyId]; ok {
|
|
|
+ haveOperaAuth = data_manage_permission.CheckEdbPermissionByPermissionIdList(info.IsJoinPermission, currClassify.IsJoinPermission, info.EdbInfoId, info.ClassifyId, permissionEdbIdList, permissionClassifyIdList)
|
|
|
+ }
|
|
|
searchItem := data_manage.CalculateMultiEdbSearchItem{
|
|
|
Frequency: info.Frequency,
|
|
|
Unit: info.Unit,
|
|
@@ -2346,6 +2411,7 @@ func (this *ChartInfoController) CalculateMultiSearch() {
|
|
|
SysUserId: info.SysUserId,
|
|
|
EndDate: info.EndDate,
|
|
|
EndValue: info.EndValue,
|
|
|
+ HaveOperaAuth: haveOperaAuth,
|
|
|
}
|
|
|
searchItemList = append(searchItemList, searchItem)
|
|
|
}
|