Roc 11 месяцев назад
Родитель
Сommit
89905f64fe

+ 43 - 41
controllers/data_manage/edb_info.go

@@ -2090,64 +2090,66 @@ func (this *EdbInfoController) EdbInfoList() {
 	button.AddButton = false
 	edbInfoItem.Button = button
 
-	//获取指标数据
-	var dataCondition string
-	var dataPars []interface{}
+	// 如果有数据权限,那么就去获取指标数据
+	if edbInfoItem.HaveOperaAuth {
+		var dataCondition string
+		var dataPars []interface{}
 
-	dataCondition += ` AND edb_info_id=? `
-	dataPars = append(dataPars, edbInfoItem.EdbInfoId)
+		dataCondition += ` AND edb_info_id=? `
+		dataPars = append(dataPars, edbInfoItem.EdbInfoId)
 
-	if edbInfoItem.SubSource == utils.DATA_SUB_SOURCE_DATE {
-		if edbInfoItem.Source == utils.DATA_SOURCE_WIND {
-			dataCount, err := data_manage.GetEdbWsdDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
-			if err != nil && err.Error() != utils.ErrNoRow() {
-				br.Msg = "获取指标信息失败"
-				br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
-				return
-			}
-			page = paging.GetPaging(currentIndex, pageSize, dataCount)
-			dataList, err := data_manage.GetEdbWsdDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
-			if err != nil {
-				br.Msg = "获取指标信息失败"
-				br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+		if edbInfoItem.SubSource == utils.DATA_SUB_SOURCE_DATE {
+			if edbInfoItem.Source == utils.DATA_SOURCE_WIND {
+				dataCount, err := data_manage.GetEdbWsdDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取指标信息失败"
+					br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
+					return
+				}
+				page = paging.GetPaging(currentIndex, pageSize, dataCount)
+				dataList, err := data_manage.GetEdbWsdDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
+				if err != nil {
+					br.Msg = "获取指标信息失败"
+					br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+					return
+				}
+				edbInfoItem.DataList = dataList
+			} else if edbInfoItem.Source == utils.DATA_SOURCE_THS {
+				dataCount, err := data_manage.GetTHsDsDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
+				if err != nil && err.Error() != utils.ErrNoRow() {
+					br.Msg = "获取指标信息失败"
+					br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
+					return
+				}
+				page = paging.GetPaging(currentIndex, pageSize, dataCount)
+				dataList, err := data_manage.GetThsDsDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
+				if err != nil {
+					br.Msg = "获取指标信息失败"
+					br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
+					return
+				}
+				edbInfoItem.DataList = dataList
+			} else {
+				br.Msg = "指标数据源id错误"
+				br.ErrMsg = "指标数据源id错误"
 				return
 			}
-			edbInfoItem.DataList = dataList
-		} else if edbInfoItem.Source == utils.DATA_SOURCE_THS {
-			dataCount, err := data_manage.GetTHsDsDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source)
+		} else {
+			dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource)
 			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "获取指标信息失败"
 				br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
 				return
 			}
 			page = paging.GetPaging(currentIndex, pageSize, dataCount)
-			dataList, err := data_manage.GetThsDsDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, pageSize, startSize)
+			dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource, pageSize, startSize)
 			if err != nil {
 				br.Msg = "获取指标信息失败"
 				br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
 				return
 			}
 			edbInfoItem.DataList = dataList
-		} else {
-			br.Msg = "指标数据源id错误"
-			br.ErrMsg = "指标数据源id错误"
-			return
-		}
-	} else {
-		dataCount, err := data_manage.GetEdbDataCountByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取指标信息失败"
-			br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
-			return
-		}
-		page = paging.GetPaging(currentIndex, pageSize, dataCount)
-		dataList, err := data_manage.GetEdbDataListByCondition(dataCondition, dataPars, edbInfoItem.Source, edbInfoItem.SubSource, pageSize, startSize)
-		if err != nil {
-			br.Msg = "获取指标信息失败"
-			br.ErrMsg = "获取指标数据失败,Err:" + err.Error()
-			return
 		}
-		edbInfoItem.DataList = dataList
 	}
 
 	// 获取指标插入配置

+ 25 - 32
models/data_manage/data_manage_permission/chart.go

@@ -30,12 +30,14 @@ type ChartClassifyPermission struct {
 	CreateTime                time.Time `json:"create_time"`       // 关系建立时间
 }
 
-// SetIsPermissionChartChartByChartClassifyIdList
-// @Description: 设置指标分类是否涉密
+// SetIsPermissionByChartClassifyIdList
+// @Description: 设置图表分类是否涉密
 // @author: Roc
-// @datetime 2024-03-27 14:15:42
+// @datetime 2024-04-01 10:53:23
 // @param classifyIdList []int
-func SetIsPermissionChartChartByChartClassifyIdList(classifyIdList []int, classifyType int) (err error) {
+// @param chartClassifySource int
+// @return err error
+func SetIsPermissionByChartClassifyIdList(classifyIdList []int, chartClassifySource int) (err error) {
 	num := len(classifyIdList)
 	if num <= 0 {
 		return
@@ -66,7 +68,7 @@ func SetIsPermissionChartChartByChartClassifyIdList(classifyIdList []int, classi
 
 	// 先将所有已经设置了涉密的分类设置为不涉密
 	sql := `UPDATE chart_classify SET is_join_permission=?,modify_time=now() WHERE is_join_permission = 1 AND source = ?`
-	_, err = o.Raw(sql, 0, classifyType).Exec()
+	_, err = o.Raw(sql, 0, chartClassifySource).Exec()
 	if err != nil {
 		return
 	}
@@ -74,7 +76,7 @@ func SetIsPermissionChartChartByChartClassifyIdList(classifyIdList []int, classi
 	if len(classifyIdList) > 0 {
 		// 将对应的分类设置为涉密
 		sql = `UPDATE chart_classify SET is_join_permission=?,modify_time=now() WHERE source = ? AND chart_classify_id in (` + utils.GetOrmInReplace(num) + `) `
-		_, err = o.Raw(sql, 1, classifyType, classifyIdList).Exec()
+		_, err = o.Raw(sql, 1, chartClassifySource, classifyIdList).Exec()
 		if err != nil {
 			return
 		}
@@ -85,15 +87,15 @@ func SetIsPermissionChartChartByChartClassifyIdList(classifyIdList []int, classi
 	return
 }
 
-// SetPermissionChartChartByChartIdList
-// @Description: 根据图表ID列表设置指标的用户权限
+// SetPermissionByChartIdList
+// @Description: 根据图表ID列表设置图表的用户权限
 // @author: Roc
 // @datetime 2024-04-01 10:26:17
 // @param chartIdList []string
 // @param userIdList []int
 // @param source int
 // @return err error
-func SetPermissionChartChartByChartIdList(chartIdList []string, userIdList []int, source int) (err error) {
+func SetPermissionByChartIdList(chartIdList []string, userIdList []int, source int) (err error) {
 	chartNum := len(chartIdList)
 	if chartNum <= 0 {
 		return
@@ -110,7 +112,7 @@ func SetPermissionChartChartByChartIdList(chartIdList []string, userIdList []int
 		}
 	}()
 
-	// 获取已经配置的指标权限用户
+	// 获取已经配置的图表权限用户
 	chartInfoPermissionList := make([]*ChartInfoPermission, 0)
 	sql := `SELECT * FROM chart_info_permission WHERE source = ? AND chart_info_id in (` + utils.GetOrmInReplace(chartNum) + `) `
 	_, err = o.Raw(sql, source, chartIdList).QueryRows(&chartInfoPermissionList)
@@ -122,13 +124,13 @@ func SetPermissionChartChartByChartIdList(chartIdList []string, userIdList []int
 		chartInfoPermissionMap[fmt.Sprint(v.ChartInfoId, "_", v.SysUserId)] = v
 	}
 
-	// 标记指标是否纳入权限管控
+	// 标记图表是否纳入权限管控
 	{
-		// 默认 标记指标为纳入权限管控
+		// 默认 标记图表为纳入权限管控
 		isJoinPermission := 1
-		// 用户不选的情况下,说明是要给这些指标移除权限管控
+		// 用户不选的情况下,说明是要给这些图表移除权限管控
 		if len(userIdList) <= 0 {
-			// 标记指标为不纳入权限管控
+			// 标记图表为不纳入权限管控
 			isJoinPermission = 0
 		}
 		sql = `UPDATE chart_info SET is_join_permission=?,modify_time=now() WHERE source = ? AND chart_info_id in (` + utils.GetOrmInReplace(chartNum) + `) `
@@ -141,7 +143,7 @@ func SetPermissionChartChartByChartIdList(chartIdList []string, userIdList []int
 	// 待添加的配置项
 	addList := make([]*ChartInfoPermission, 0)
 
-	// 遍历待配置的指标和用户,筛选出需要添加的配置项
+	// 遍历待配置的图表和用户,筛选出需要添加的配置项
 	for _, chartInfoIdStr := range chartIdList {
 		chartInfoId, tmpErr := strconv.ParseInt(chartInfoIdStr, 10, 64)
 		if tmpErr != nil {
@@ -195,23 +197,14 @@ func SetPermissionChartChartByChartIdList(chartIdList []string, userIdList []int
 	return
 }
 
-// SetChartChartClassifyPermissionReq
-// @Description: 设置数据分类权限请求
-type SetChartChartClassifyPermissionReq struct {
-	Source         int   `description:"来源id"`
-	SubSource      int   `description:"子来源id"`
-	UserList       []int `description:"赋权用户id列表,如果为空,说明要给这些数据分类移除权限管控"`
-	ClassifyIdList []int `description:"指标/图表/表格分类唯一id列表"`
-}
-
-// SetPermissionChartChartClassifyIdByClassifyIdList
-// @Description: 根据指标分类ID列表设置分类的用户权限
+// SetPermissionByChartClassifyIdList
+// @Description: 根据图表分类ID列表设置分类的用户权限
 // @author: Roc
 // @datetime 2024-03-28 14:53:04
 // @param classifyIdList []int
 // @param userIdList []int
 // @return err error
-func SetPermissionChartChartClassifyIdByClassifyIdList(classifyIdList []int, userIdList []int, classifyType int) (err error) {
+func SetPermissionByChartClassifyIdList(classifyIdList []int, userIdList []int, classifyType int) (err error) {
 	userNum := len(userIdList)
 	if userNum <= 0 {
 		return
@@ -228,7 +221,7 @@ func SetPermissionChartChartClassifyIdByClassifyIdList(classifyIdList []int, use
 		}
 	}()
 
-	// 获取当前选择用户已经配置的指标分类权限
+	// 获取当前选择用户已经配置的图表分类权限
 	classifyPermissionList := make([]*ChartClassifyPermission, 0)
 	sql := `SELECT * FROM chart_classify_permission WHERE source = ? AND sys_user_id in (` + utils.GetOrmInReplace(userNum) + `) `
 	_, err = o.Raw(sql, classifyType, userIdList).QueryRows(&classifyPermissionList)
@@ -243,7 +236,7 @@ func SetPermissionChartChartClassifyIdByClassifyIdList(classifyIdList []int, use
 	// 待添加的配置项
 	addList := make([]*ChartClassifyPermission, 0)
 
-	// 遍历待配置的指标和用户,筛选出需要添加的配置项
+	// 遍历待配置的图表和用户,筛选出需要添加的配置项
 	for _, userId := range userIdList {
 		for _, classifyId := range classifyIdList {
 			key := fmt.Sprint(classifyId, "_", userId)
@@ -310,7 +303,7 @@ func GetPermissionChartClassifyIdListByUserId(userId int, classifyType int) (cha
 }
 
 // GetPermissionChartIdListByDataId
-// @Description: 根据资产(指标、图表、表格)ID获取已经配置的用户id列表
+// @Description: 根据资产(图表、图表、表格)ID获取已经配置的用户id列表
 // @author: Roc
 // @datetime 2024-03-29 16:24:46
 // @param dataId int
@@ -326,7 +319,7 @@ func GetPermissionChartIdListByDataId(dataId int, source int) (chartIdList []int
 }
 
 // GetPermissionChartIdList
-// @Description: 获取用户权限的指标列表
+// @Description: 获取用户权限的图表列表
 // @author: Roc
 // @datetime 2024-03-28 16:50:47
 // @param userId int
@@ -347,7 +340,7 @@ func GetPermissionChartIdList(userId, chartInfoId int) (idList []int, err error)
 }
 
 // GetPermissionChartClassifyIdList
-// @Description: 获取用户权限的指标分类列表
+// @Description: 获取用户权限的图表分类列表
 // @author: Roc
 // @datetime 2024-03-28 16:50:47
 // @param userId int

+ 4 - 13
models/data_manage/data_manage_permission/edb.go

@@ -85,7 +85,7 @@ func SetIsPermissionEdbChartByEdbClassifyIdList(classifyIdList []int, classifyTy
 	return
 }
 
-// SetPermissionEdbChartByEdbIdList
+// SetPermissionByEdbIdList
 // @Description: 根据指标ID列表设置指标的用户权限
 // @author: Roc
 // @datetime 2024-03-27 14:03:42
@@ -93,7 +93,7 @@ func SetIsPermissionEdbChartByEdbClassifyIdList(classifyIdList []int, classifyTy
 // @param userIdList []int
 // @param chartInfoType int
 // @return err error
-func SetPermissionEdbChartByEdbIdList(edbIdList []string, userIdList []int, edbInfoType int) (err error) {
+func SetPermissionByEdbIdList(edbIdList []string, userIdList []int, edbInfoType int) (err error) {
 	edbNum := len(edbIdList)
 	if edbNum <= 0 {
 		return
@@ -195,23 +195,14 @@ func SetPermissionEdbChartByEdbIdList(edbIdList []string, userIdList []int, edbI
 	return
 }
 
-// SetEdbChartClassifyPermissionReq
-// @Description: 设置数据分类权限请求
-type SetEdbChartClassifyPermissionReq struct {
-	Source         int   `description:"来源id"`
-	SubSource      int   `description:"子来源id"`
-	UserList       []int `description:"赋权用户id列表,如果为空,说明要给这些数据分类移除权限管控"`
-	ClassifyIdList []int `description:"指标/图表/表格分类唯一id列表"`
-}
-
-// SetPermissionEdbChartClassifyIdByClassifyIdList
+// SetPermissionByEdbClassifyIdList
 // @Description: 根据指标分类ID列表设置分类的用户权限
 // @author: Roc
 // @datetime 2024-03-28 14:53:04
 // @param classifyIdList []int
 // @param userIdList []int
 // @return err error
-func SetPermissionEdbChartClassifyIdByClassifyIdList(classifyIdList []int, userIdList []int, classifyType int) (err error) {
+func SetPermissionByEdbClassifyIdList(classifyIdList []int, userIdList []int, classifyType int) (err error) {
 	userNum := len(userIdList)
 	if userNum <= 0 {
 		return

+ 9 - 0
models/data_manage/data_manage_permission/req_and_resp.go

@@ -21,3 +21,12 @@ type SetEdbChartPermissionReq struct {
 	ClassifyId   string   `description:"分类id,支持多选,用英文,隔开"`
 	Keyword      string   `description:"关键字"`
 }
+
+// SetEdbChartClassifyPermissionReq
+// @Description: 设置数据分类权限请求
+type SetEdbChartClassifyPermissionReq struct {
+	Source         int   `description:"来源id"`
+	SubSource      int   `description:"子来源id"`
+	UserList       []int `description:"赋权用户id列表,如果为空,说明要给这些数据分类移除权限管控"`
+	ClassifyIdList []int `description:"指标/图表/表格分类唯一id列表"`
+}

+ 155 - 0
services/data/data_manage_permission/chart.go

@@ -0,0 +1,155 @@
+package data_manage_permission
+
+import (
+	"eta/eta_api/models/data_manage"
+	"eta/eta_api/models/data_manage/data_manage_permission"
+	"eta/eta_api/utils"
+	"fmt"
+)
+
+// CheckChartPermissionByPermissionIdList
+// @Description: 检查ETA图库(只包含ETA图库,不包含统计分析等模块)权限
+// @author: Roc
+// @datetime 2024-03-28 16:12:08
+// @param chartIsJoinPermission int
+// @param chartClassifyIsJoinPermission int
+// @param chartInfoId int
+// @param chartClassifyId int
+// @param permissionChartInfoIdList []int
+// @param permissionChartClassifyIdList []int
+// @return hasAuth bool
+func CheckChartPermissionByPermissionIdList(chartIsJoinPermission, chartClassifyIsJoinPermission, chartInfoId, chartClassifyId int, permissionChartInfoIdList, permissionChartClassifyIdList []int) (hasAuth bool) {
+	//hasAuth = true
+
+	// 判断 分类是否纳入权限管控
+	if chartClassifyIsJoinPermission == 1 {
+		// 不属于已授权的分类,那么就无权限
+		if !utils.InArrayByInt(permissionChartClassifyIdList, chartClassifyId) {
+			return false
+		}
+	}
+
+	// 判断 指标是否纳入权限管控
+	if chartIsJoinPermission == 1 {
+		// 不属于已授权的指标,那么就无权限
+		if !utils.InArrayByInt(permissionChartInfoIdList, chartInfoId) {
+			return false
+		}
+	}
+
+	hasAuth = true
+
+	return
+}
+
+// CheckChartClassifyPermissionByPermissionIdList
+// @Description: 检查EDB分类权限
+// @author: Roc
+// @datetime 2024-03-29 14:35:19
+// @param chartClassifyIsJoinPermission int
+// @param chartClassifyId int
+// @param permissionChartClassifyIdList []int
+// @return hasAuth bool
+func CheckChartClassifyPermissionByPermissionIdList(chartClassifyIsJoinPermission, chartClassifyId int, permissionChartClassifyIdList []int) (hasAuth bool) {
+	// 判断 分类是否纳入权限管控
+	if chartClassifyIsJoinPermission == 1 {
+		// 不属于已授权的分类,那么就无权限
+		if !utils.InArrayByInt(permissionChartClassifyIdList, chartClassifyId) {
+			return
+		}
+	}
+
+	hasAuth = true
+
+	return
+}
+
+// GetUserChartAndClassifyPermissionList
+// @Description: 根据用户获取已经授权指标ID列表和指标分类ID列表
+// @author: Roc
+// @datetime 2024-03-28 17:20:36
+// @param userId int
+// @param chartInfoId int 如果传递了chartInfoId,则只返回该chartInfoId的权限列表(其实也就是为了判断是否存在该指标权限了,目的是为了少获取数据)
+// @param classifyId int  classifyId,则只返回该classifyId的权限列表(其实也就是为了判断是否存在该指标分类权限了,目的是为了少获取数据)
+// @return chartIdList []int
+// @return classifyIdList []int
+// @return err error
+func GetUserChartAndClassifyPermissionList(userId, chartInfoId, classifyId int) (chartIdList, classifyIdList []int, err error) {
+	// 获取有权限的指标ID列表
+	chartIdList, err = data_manage_permission.GetPermissionChartIdList(userId, chartInfoId)
+	if err != nil {
+		fmt.Println("获取授权指标列表失败, err:", err)
+		return
+	}
+
+	// 获取有权限的指标分类ID列表
+	classifyIdList, err = data_manage_permission.GetPermissionChartClassifyIdList(userId, classifyId)
+	if err != nil {
+		fmt.Println("获取授权指标分类列表失败, err:", err)
+		return
+	}
+
+	return
+}
+
+// GetUserChartClassifyPermissionList
+// @Description: 根据用户获取已经授权指标分类ID列表
+// @author: Roc
+// @datetime 2024-03-28 17:20:36
+// @param userId int
+// @param classifyId int  classifyId,则只返回该classifyId的权限列表(其实也就是为了判断是否存在该指标分类权限了,目的是为了少获取数据)
+// @return classifyIdList []int
+// @return err error
+func GetUserChartClassifyPermissionList(userId, classifyId int) (classifyIdList []int, err error) {
+	// 获取有权限的指标分类ID列表
+	classifyIdList, err = data_manage_permission.GetPermissionChartClassifyIdList(userId, classifyId)
+	if err != nil {
+		fmt.Println("获取授权指标分类列表失败, err:", err)
+		return
+	}
+
+	return
+}
+
+// CheckChartPermissionByChartInfoId
+// @Description: 根据指标id和指标分类id,检查EDB指标(含预测指标)权限(方法内部自己获取所有的指标和指标分类权限,不用额外传递)
+// @author: Roc
+// @datetime 2024-03-29 13:28:06
+// @param chartInfoId int
+// @param chartClassifyId int
+// @param chartIsJoinPermission int
+// @param userId int
+// @return hasAuth bool
+// @return err error
+func CheckChartPermissionByChartInfoId(chartInfoId, chartClassifyId, chartIsJoinPermission, userId int) (hasAuth bool, err error) {
+	currClassify, err := data_manage.GetChartClassifyById(chartClassifyId)
+	if err != nil {
+		return
+	}
+	if currClassify != nil {
+		return CheckChartPermission(chartIsJoinPermission, currClassify.IsJoinPermission, userId, chartInfoId, chartClassifyId)
+	}
+
+	return
+}
+
+// CheckChartPermission
+// @Description: 检查EDB指标(含预测指标)权限(方法内部自己获取所有的指标和指标分类权限,不用额外传递)
+// @author: Roc
+// @datetime 2024-03-28 16:12:08
+// @param chartIsJoinPermission int
+// @param chartClassifyIsJoinPermission int
+// @param chartInfoId int
+// @param chartClassifyId int
+// @return hasAuth bool
+func CheckChartPermission(chartIsJoinPermission, chartClassifyIsJoinPermission, userId, chartInfoId, chartClassifyId int) (hasAuth bool, err error) {
+	chartIdList, classifyIdList, err := GetUserChartAndClassifyPermissionList(userId, chartInfoId, chartClassifyId)
+	if err != nil {
+		fmt.Println("GetUserChartAndClassifyPermissionList err:", err)
+		return
+	}
+
+	hasAuth = CheckChartPermissionByPermissionIdList(chartIsJoinPermission, chartClassifyIsJoinPermission, chartInfoId, chartClassifyId, chartIdList, classifyIdList)
+
+	return
+}

+ 1 - 1
services/data/data_manage_permission/data_move.go

@@ -335,7 +335,7 @@ func GetMoveEdbChartList(source, subSource, userId int, keyword, classify string
 
 		// 只展示eta图库
 		condition += ` AND source = ? `
-		pars = append(pars, 1)
+		pars = append(pars, utils.CHART_SOURCE_DEFAULT)
 
 		// 关键字搜索
 		if keyword != `` {

+ 155 - 0
services/data/data_manage_permission/edb.go

@@ -0,0 +1,155 @@
+package data_manage_permission
+
+import (
+	"eta/eta_api/models/data_manage"
+	"eta/eta_api/models/data_manage/data_manage_permission"
+	"eta/eta_api/utils"
+	"fmt"
+)
+
+// CheckEdbPermissionByPermissionIdList
+// @Description: 检查EDB指标(含预测指标)权限
+// @author: Roc
+// @datetime 2024-03-28 16:12:08
+// @param edbIsJoinPermission int
+// @param edbClassifyIsJoinPermission int
+// @param edbInfoId int
+// @param edbClassifyId int
+// @param permissionEdbInfoIdList []int
+// @param permissionEdbClassifyIdList []int
+// @return hasAuth bool
+func CheckEdbPermissionByPermissionIdList(edbIsJoinPermission, edbClassifyIsJoinPermission, edbInfoId, edbClassifyId int, permissionEdbInfoIdList, permissionEdbClassifyIdList []int) (hasAuth bool) {
+	//hasAuth = true
+
+	// 判断 分类是否纳入权限管控
+	if edbClassifyIsJoinPermission == 1 {
+		// 不属于已授权的分类,那么就无权限
+		if !utils.InArrayByInt(permissionEdbClassifyIdList, edbClassifyId) {
+			return false
+		}
+	}
+
+	// 判断 指标是否纳入权限管控
+	if edbIsJoinPermission == 1 {
+		// 不属于已授权的指标,那么就无权限
+		if !utils.InArrayByInt(permissionEdbInfoIdList, edbInfoId) {
+			return false
+		}
+	}
+
+	hasAuth = true
+
+	return
+}
+
+// CheckEdbClassifyPermissionByPermissionIdList
+// @Description: 检查EDB分类权限
+// @author: Roc
+// @datetime 2024-03-29 14:35:19
+// @param edbClassifyIsJoinPermission int
+// @param edbClassifyId int
+// @param permissionEdbClassifyIdList []int
+// @return hasAuth bool
+func CheckEdbClassifyPermissionByPermissionIdList(edbClassifyIsJoinPermission, edbClassifyId int, permissionEdbClassifyIdList []int) (hasAuth bool) {
+	// 判断 分类是否纳入权限管控
+	if edbClassifyIsJoinPermission == 1 {
+		// 不属于已授权的分类,那么就无权限
+		if !utils.InArrayByInt(permissionEdbClassifyIdList, edbClassifyId) {
+			return
+		}
+	}
+
+	hasAuth = true
+
+	return
+}
+
+// GetUserEdbAndClassifyPermissionList
+// @Description: 根据用户获取已经授权指标ID列表和指标分类ID列表
+// @author: Roc
+// @datetime 2024-03-28 17:20:36
+// @param userId int
+// @param edbInfoId int 如果传递了edbInfoId,则只返回该edbInfoId的权限列表(其实也就是为了判断是否存在该指标权限了,目的是为了少获取数据)
+// @param classifyId int  classifyId,则只返回该classifyId的权限列表(其实也就是为了判断是否存在该指标分类权限了,目的是为了少获取数据)
+// @return edbIdList []int
+// @return classifyIdList []int
+// @return err error
+func GetUserEdbAndClassifyPermissionList(userId, edbInfoId, classifyId int) (edbIdList, classifyIdList []int, err error) {
+	// 获取有权限的指标ID列表
+	edbIdList, err = data_manage_permission.GetPermissionEdbIdList(userId, edbInfoId)
+	if err != nil {
+		fmt.Println("获取授权指标列表失败, err:", err)
+		return
+	}
+
+	// 获取有权限的指标分类ID列表
+	classifyIdList, err = data_manage_permission.GetPermissionEdbClassifyIdList(userId, classifyId)
+	if err != nil {
+		fmt.Println("获取授权指标分类列表失败, err:", err)
+		return
+	}
+
+	return
+}
+
+// GetUserEdbClassifyPermissionList
+// @Description: 根据用户获取已经授权指标分类ID列表
+// @author: Roc
+// @datetime 2024-03-28 17:20:36
+// @param userId int
+// @param classifyId int  classifyId,则只返回该classifyId的权限列表(其实也就是为了判断是否存在该指标分类权限了,目的是为了少获取数据)
+// @return classifyIdList []int
+// @return err error
+func GetUserEdbClassifyPermissionList(userId, classifyId int) (classifyIdList []int, err error) {
+	// 获取有权限的指标分类ID列表
+	classifyIdList, err = data_manage_permission.GetPermissionEdbClassifyIdList(userId, classifyId)
+	if err != nil {
+		fmt.Println("获取授权指标分类列表失败, err:", err)
+		return
+	}
+
+	return
+}
+
+// CheckEdbPermissionByEdbInfoId
+// @Description: 根据指标id和指标分类id,检查EDB指标(含预测指标)权限(方法内部自己获取所有的指标和指标分类权限,不用额外传递)
+// @author: Roc
+// @datetime 2024-03-29 13:28:06
+// @param edbInfoId int
+// @param edbClassifyId int
+// @param edbIsJoinPermission int
+// @param userId int
+// @return hasAuth bool
+// @return err error
+func CheckEdbPermissionByEdbInfoId(edbInfoId, edbClassifyId, edbIsJoinPermission, userId int) (hasAuth bool, err error) {
+	currClassify, err := data_manage.GetEdbClassifyById(edbClassifyId)
+	if err != nil {
+		return
+	}
+	if currClassify != nil {
+		return CheckEdbPermission(edbIsJoinPermission, currClassify.IsJoinPermission, userId, edbInfoId, edbClassifyId)
+	}
+
+	return
+}
+
+// CheckEdbPermission
+// @Description: 检查EDB指标(含预测指标)权限(方法内部自己获取所有的指标和指标分类权限,不用额外传递)
+// @author: Roc
+// @datetime 2024-03-28 16:12:08
+// @param edbIsJoinPermission int
+// @param edbClassifyIsJoinPermission int
+// @param edbInfoId int
+// @param edbClassifyId int
+// @return hasAuth bool
+func CheckEdbPermission(edbIsJoinPermission, edbClassifyIsJoinPermission, userId, edbInfoId, edbClassifyId int) (hasAuth bool, err error) {
+	edbIdList, classifyIdList, err := GetUserEdbAndClassifyPermissionList(userId, edbInfoId, edbClassifyId)
+	if err != nil {
+		fmt.Println("GetUserEdbAndClassifyPermissionList err:", err)
+		return
+	}
+
+	hasAuth = CheckEdbPermissionByPermissionIdList(edbIsJoinPermission, edbClassifyIsJoinPermission, edbInfoId, edbClassifyId, edbIdList, classifyIdList)
+
+	return
+}

+ 38 - 221
services/data/data_manage_permission/edb_permission.go

@@ -1,10 +1,8 @@
 package data_manage_permission
 
 import (
-	"eta/eta_api/models/data_manage"
 	"eta/eta_api/models/data_manage/data_manage_permission"
 	"eta/eta_api/utils"
-	"fmt"
 )
 
 // SetEdbChartPermission
@@ -66,24 +64,18 @@ func SetEdbChartPermission(source, subSource, userId int, userList []int, isSele
 		if source == 4 {
 			edbInfoType = 1
 		}
-		err = data_manage_permission.SetPermissionEdbChartByEdbIdList(dataIdList, userList, edbInfoType)
-	//case 5: //图库
-	//	tmpList, tmpErr := data_manage.GetChartInfoListGroupByUserId(dataId)
-	//	if tmpErr != nil {
-	//		err = tmpErr
-	//		return
-	//	}
-	//	if len(tmpList) > 0 {
-	//		for _, v := range tmpList {
-	//			if v.SysUserId == newUserId {
-	//				errMsg = "新创建人不可和原创建人一致"
-	//				err = errors.New(errMsg)
-	//				return
-	//			}
-	//		}
-	//		// 修改创建人
-	//		err = data_manage.ModifyChartInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
-	//	}
+		err = data_manage_permission.SetPermissionByEdbIdList(dataIdList, userList, edbInfoType)
+	case 5: //图库
+		//tmpList, tmpErr := data_manage.GetEdbInfoListGroupByUserId(dataId)
+		//if tmpErr != nil {
+		//	err = tmpErr
+		//	return
+		//}
+		//if len(tmpList) > 0 {
+		//}
+		// 重新设置权限
+		chartSource := utils.CHART_SOURCE_DEFAULT
+		err = data_manage_permission.SetPermissionByChartIdList(dataIdList, userList, chartSource)
 	//case 6: // ETA表格
 	//	tmpList, tmpErr := excel.GetNoContentExcelListGroupByUserId(dataId)
 	//	if tmpErr != nil {
@@ -135,7 +127,11 @@ func SetDataIsPermission(source, subSource int, classifyIdList []int) (err error
 			classifyType = 1
 		}
 		err = data_manage_permission.SetIsPermissionEdbChartByEdbClassifyIdList(classifyIdList, classifyType)
-	//case 5: //图库
+
+	case 5: //图库
+		// 重新设置权限
+		chartClassifySource := utils.CHART_SOURCE_DEFAULT
+		err = data_manage_permission.SetIsPermissionByChartClassifyIdList(classifyIdList, chartClassifySource)
 
 	//case 6: // ETA表格
 
@@ -177,24 +173,19 @@ func SetEdbChartClassifyPermission(source, subSource int, userList []int, classi
 		if source == 4 {
 			classifyType = 1
 		}
-		err = data_manage_permission.SetPermissionEdbChartClassifyIdByClassifyIdList(classifyIdList, userList, classifyType)
-	//case 5: //图库
-	//	tmpList, tmpErr := data_manage.GetChartInfoListGroupByUserId(dataId)
-	//	if tmpErr != nil {
-	//		err = tmpErr
-	//		return
-	//	}
-	//	if len(tmpList) > 0 {
-	//		for _, v := range tmpList {
-	//			if v.SysUserId == newUserId {
-	//				errMsg = "新创建人不可和原创建人一致"
-	//				err = errors.New(errMsg)
-	//				return
-	//			}
-	//		}
-	//		// 修改创建人
-	//		err = data_manage.ModifyChartInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
-	//	}
+		err = data_manage_permission.SetPermissionByEdbClassifyIdList(classifyIdList, userList, classifyType)
+	case 5: //图库
+
+		//tmpList, tmpErr := data_manage.GetEdbInfoListGroupByUserId(dataId)
+		//if tmpErr != nil {
+		//	err = tmpErr
+		//	return
+		//}
+		//if len(tmpList) > 0 {
+		//}
+		// 重新设置权限
+		chartClassifySource := utils.CHART_SOURCE_DEFAULT
+		err = data_manage_permission.SetPermissionByChartClassifyIdList(classifyIdList, userList, chartClassifySource)
 	//case 6: // ETA表格
 	//	tmpList, tmpErr := excel.GetNoContentExcelListGroupByUserId(dataId)
 	//	if tmpErr != nil {
@@ -219,153 +210,6 @@ func SetEdbChartClassifyPermission(source, subSource int, userList []int, classi
 	return
 }
 
-// CheckEdbPermissionByPermissionIdList
-// @Description: 检查EDB指标(含预测指标)权限
-// @author: Roc
-// @datetime 2024-03-28 16:12:08
-// @param edbIsJoinPermission int
-// @param edbClassifyIsJoinPermission int
-// @param edbInfoId int
-// @param edbClassifyId int
-// @param permissionEdbInfoIdList []int
-// @param permissionEdbClassifyIdList []int
-// @return hasAuth bool
-func CheckEdbPermissionByPermissionIdList(edbIsJoinPermission, edbClassifyIsJoinPermission, edbInfoId, edbClassifyId int, permissionEdbInfoIdList, permissionEdbClassifyIdList []int) (hasAuth bool) {
-	//hasAuth = true
-
-	// 判断 分类是否纳入权限管控
-	if edbClassifyIsJoinPermission == 1 {
-		// 不属于已授权的分类,那么就无权限
-		if !utils.InArrayByInt(permissionEdbClassifyIdList, edbClassifyId) {
-			return false
-		}
-	}
-
-	// 判断 指标是否纳入权限管控
-	if edbIsJoinPermission == 1 {
-		// 不属于已授权的指标,那么就无权限
-		if !utils.InArrayByInt(permissionEdbInfoIdList, edbInfoId) {
-			return false
-		}
-	}
-
-	hasAuth = true
-
-	return
-}
-
-// CheckEdbClassifyPermissionByPermissionIdList
-// @Description: 检查EDB分类权限
-// @author: Roc
-// @datetime 2024-03-29 14:35:19
-// @param edbClassifyIsJoinPermission int
-// @param edbClassifyId int
-// @param permissionEdbClassifyIdList []int
-// @return hasAuth bool
-func CheckEdbClassifyPermissionByPermissionIdList(edbClassifyIsJoinPermission, edbClassifyId int, permissionEdbClassifyIdList []int) (hasAuth bool) {
-	// 判断 分类是否纳入权限管控
-	if edbClassifyIsJoinPermission == 1 {
-		// 不属于已授权的分类,那么就无权限
-		if !utils.InArrayByInt(permissionEdbClassifyIdList, edbClassifyId) {
-			return
-		}
-	}
-
-	hasAuth = true
-
-	return
-}
-
-// GetUserEdbAndClassifyPermissionList
-// @Description: 根据用户获取已经授权指标ID列表和指标分类ID列表
-// @author: Roc
-// @datetime 2024-03-28 17:20:36
-// @param userId int
-// @param edbInfoId int 如果传递了edbInfoId,则只返回该edbInfoId的权限列表(其实也就是为了判断是否存在该指标权限了,目的是为了少获取数据)
-// @param classifyId int  classifyId,则只返回该classifyId的权限列表(其实也就是为了判断是否存在该指标分类权限了,目的是为了少获取数据)
-// @return edbIdList []int
-// @return classifyIdList []int
-// @return err error
-func GetUserEdbAndClassifyPermissionList(userId, edbInfoId, classifyId int) (edbIdList, classifyIdList []int, err error) {
-	// 获取有权限的指标ID列表
-	edbIdList, err = data_manage_permission.GetPermissionEdbIdList(userId, edbInfoId)
-	if err != nil {
-		fmt.Println("获取授权指标列表失败, err:", err)
-		return
-	}
-
-	// 获取有权限的指标分类ID列表
-	classifyIdList, err = data_manage_permission.GetPermissionEdbClassifyIdList(userId, classifyId)
-	if err != nil {
-		fmt.Println("获取授权指标分类列表失败, err:", err)
-		return
-	}
-
-	return
-}
-
-// GetUserEdbClassifyPermissionList
-// @Description: 根据用户获取已经授权指标分类ID列表
-// @author: Roc
-// @datetime 2024-03-28 17:20:36
-// @param userId int
-// @param classifyId int  classifyId,则只返回该classifyId的权限列表(其实也就是为了判断是否存在该指标分类权限了,目的是为了少获取数据)
-// @return classifyIdList []int
-// @return err error
-func GetUserEdbClassifyPermissionList(userId, classifyId int) (classifyIdList []int, err error) {
-	// 获取有权限的指标分类ID列表
-	classifyIdList, err = data_manage_permission.GetPermissionEdbClassifyIdList(userId, classifyId)
-	if err != nil {
-		fmt.Println("获取授权指标分类列表失败, err:", err)
-		return
-	}
-
-	return
-}
-
-// CheckEdbPermissionByEdbInfoId
-// @Description: 根据指标id和指标分类id,检查EDB指标(含预测指标)权限(方法内部自己获取所有的指标和指标分类权限,不用额外传递)
-// @author: Roc
-// @datetime 2024-03-29 13:28:06
-// @param edbInfoId int
-// @param edbClassifyId int
-// @param edbIsJoinPermission int
-// @param userId int
-// @return hasAuth bool
-// @return err error
-func CheckEdbPermissionByEdbInfoId(edbInfoId, edbClassifyId, edbIsJoinPermission, userId int) (hasAuth bool, err error) {
-	currClassify, err := data_manage.GetEdbClassifyById(edbClassifyId)
-	if err != nil {
-		return
-	}
-	if currClassify != nil {
-		return CheckEdbPermission(edbIsJoinPermission, currClassify.IsJoinPermission, userId, edbInfoId, edbClassifyId)
-	}
-
-	return
-}
-
-// CheckEdbPermission
-// @Description: 检查EDB指标(含预测指标)权限(方法内部自己获取所有的指标和指标分类权限,不用额外传递)
-// @author: Roc
-// @datetime 2024-03-28 16:12:08
-// @param edbIsJoinPermission int
-// @param edbClassifyIsJoinPermission int
-// @param edbInfoId int
-// @param edbClassifyId int
-// @return hasAuth bool
-func CheckEdbPermission(edbIsJoinPermission, edbClassifyIsJoinPermission, userId, edbInfoId, edbClassifyId int) (hasAuth bool, err error) {
-	edbIdList, classifyIdList, err := GetUserEdbAndClassifyPermissionList(userId, edbInfoId, edbClassifyId)
-	if err != nil {
-		fmt.Println("GetUserEdbAndClassifyPermissionList err:", err)
-		return
-	}
-
-	hasAuth = CheckEdbPermissionByPermissionIdList(edbIsJoinPermission, edbClassifyIsJoinPermission, edbInfoId, edbClassifyId, edbIdList, classifyIdList)
-
-	return
-}
-
 // GetEdbChartClassifyIdListPermissionByUserId
 // @Description: 根据用户id获取已经配置的分类id列表
 // @author: Roc
@@ -391,23 +235,10 @@ func GetEdbChartClassifyIdListPermissionByUserId(source, subSource, userId int)
 			classifyType = 1
 		}
 		idList, err = data_manage_permission.GetPermissionEdbClassifyIdListByUserId(userId, classifyType)
-	//case 5: //图库
-	//	tmpList, tmpErr := data_manage.GetChartInfoListGroupByUserId(dataId)
-	//	if tmpErr != nil {
-	//		err = tmpErr
-	//		return
-	//	}
-	//	if len(tmpList) > 0 {
-	//		for _, v := range tmpList {
-	//			if v.SysUserId == newUserId {
-	//				errMsg = "新创建人不可和原创建人一致"
-	//				err = errors.New(errMsg)
-	//				return
-	//			}
-	//		}
-	//		// 修改创建人
-	//		err = data_manage.ModifyChartInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
-	//	}
+	case 5:
+		//图库
+		chartClassifySource := utils.CHART_SOURCE_DEFAULT
+		idList, err = data_manage_permission.GetPermissionChartClassifyIdListByUserId(userId, chartClassifySource)
 	//case 6: // ETA表格
 	//	tmpList, tmpErr := excel.GetNoContentExcelListGroupByUserId(dataId)
 	//	if tmpErr != nil {
@@ -450,29 +281,15 @@ func GetEdbChartIdListPermissionByDataId(source, subSource, dataId int) (idList
 		//}
 		//if len(tmpList) > 0 {
 		//}
-		// 重新设置权限
 		edbInfoType := 0
 		if source == 4 {
 			edbInfoType = 1
 		}
 		idList, err = data_manage_permission.GetPermissionEdbIdListByDataId(dataId, edbInfoType)
-	//case 5: //图库
-	//	tmpList, tmpErr := data_manage.GetChartInfoListGroupByUserId(dataId)
-	//	if tmpErr != nil {
-	//		err = tmpErr
-	//		return
-	//	}
-	//	if len(tmpList) > 0 {
-	//		for _, v := range tmpList {
-	//			if v.SysUserId == newUserId {
-	//				errMsg = "新创建人不可和原创建人一致"
-	//				err = errors.New(errMsg)
-	//				return
-	//			}
-	//		}
-	//		// 修改创建人
-	//		err = data_manage.ModifyChartInfoUserIdByCodeList(dataId, adminInfo.AdminId, adminInfo.RealName)
-	//	}
+	case 5:
+		//图库
+		chartClassifySource := utils.CHART_SOURCE_DEFAULT
+		idList, err = data_manage_permission.GetPermissionChartIdListByDataId(dataId, chartClassifySource)
 	//case 6: // ETA表格
 	//	tmpList, tmpErr := excel.GetNoContentExcelListGroupByUserId(dataId)
 	//	if tmpErr != nil {