Browse Source

处理图表编辑权限

xyxie 10 months ago
parent
commit
d6a57a65b8

+ 28 - 11
controllers/data_manage/excel/balance_table.go

@@ -128,18 +128,37 @@ func (c *ExcelInfoController) Rename() {
 		return
 	}
 
-	// todo 操作权限校验, 增加协作人判断
+	// 操作权限校验, 增加协作人判断
 	{
+		checkExcelInfo := excelInfo
+		if excelInfo.Source == utils.BALANCE_TABLE {
+			checkExcelInfoId := excelInfo.ExcelInfoId
+			if excelInfo.BalanceType == 1 {
+				checkExcelInfoId = excelInfo.RelExcelInfoId
+			} else {
+				if excelInfo.ParentId > 0 {
+					checkExcelInfoId = excelInfo.ParentId
+				}
+			}
+			if checkExcelInfoId != excelInfo.ExcelInfoId {
+				checkExcelInfo, err = excel.GetExcelInfoById(excelInfo.ExcelInfoId)
+				if err != nil {
+					br.Msg = "获取平衡表格信息失败"
+					br.ErrMsg = "获取平衡表格信息失败,Err:" + err.Error()
+					return
+				}
+			}
+		}
 		// 数据权限
-		haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, c.SysUser.AdminId)
-		if err != nil {
-			br.Msg = "获取ETA表格失败"
-			br.ErrMsg = "获取ETA表格权限失败,Err:" + err.Error()
+		haveOperaAuth, e := data_manage_permission.CheckExcelPermissionByExcelInfoId(checkExcelInfo.ExcelInfoId, checkExcelInfo.ExcelClassifyId, checkExcelInfo.IsJoinPermission, c.SysUser.AdminId)
+		if e != nil {
+			br.Msg = "获取ETA表格权限失败"
+			br.ErrMsg = "获取表格权限信息失败,Err" + e.Error()
 			return
 		}
-		button := excelService.GetExcelInfoOpButton(sysUser, excelInfo.SysUserId, excelInfo.Source, haveOperaAuth)
+
+		button := excelService.GetBalanceExcelInfoOpButton(sysUser.AdminId, checkExcelInfo.SysUserId, haveOperaAuth, checkExcelInfo.ExcelInfoId)
 		if !button.OpButton {
-			br.Msg = "无操作权限"
 			br.Msg = "无操作权限"
 			br.IsSendEmail = false
 			return
@@ -219,7 +238,7 @@ func (c *ExcelInfoController) SaveExcelWorker() {
 		br.ErrMsg = "您没有权限操作!"
 		return
 	}
-	// todo 操作权限校验, 增加协作人判断
+	// 操作权限校验, 增加协作人判断
 	{
 		// 数据权限
 		haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, c.SysUser.AdminId)
@@ -230,7 +249,6 @@ func (c *ExcelInfoController) SaveExcelWorker() {
 		}
 		button := excelService.GetExcelInfoOpButton(sysUser, excelInfo.SysUserId, excelInfo.Source, haveOperaAuth)
 		if !button.OpButton {
-			br.Msg = "无操作权限"
 			br.Msg = "无操作权限"
 			br.IsSendEmail = false
 			return
@@ -656,7 +674,7 @@ func (c *ExcelInfoController) DeleteBalanceChart() {
 			return
 		}
 
-		// todo 查询权限
+		// todo 查询图表权限
 		/*chartClassifyItem, err := data_manage.GetChartClassifyById(chartInfo.ChartClassifyId)
 		if err != nil {
 			br.Msg = "获取失败"
@@ -795,7 +813,6 @@ func (c *ExcelInfoController) BalanceSeasonChartLegendPreview() {
 	dataList := make([]*data_manage.EdbDataList, 0)
 
 	for i, v := range req.DateArr {
-		// todo 处理DataTimestamp
 		dataTime, e := time.ParseInLocation(utils.FormatDate, v, time.Local)
 		if e != nil {
 			br.Msg = "日期格式错误"

+ 31 - 6
controllers/data_manage/excel/excel_info.go

@@ -496,7 +496,7 @@ func (c *ExcelInfoController) List() {
 				}
 
 				// excel表格按钮权限
-				list[k].Button = excel2.GetBalanceExcelInfoOpButton(sysUser.AdminId, v.SysUserId, v.HaveOperaAuth, v.ExcelInfoId, v.SysUserId)
+				list[k].Button = excel2.GetBalanceExcelInfoOpButton(sysUser.AdminId, v.SysUserId, v.HaveOperaAuth, v.ExcelInfoId)
 			}
 		}
 
@@ -655,8 +655,29 @@ func (c *ExcelInfoController) Edit() {
 		return
 	}
 
-	// todo 标记编辑状态
-	markRet, err := services.UpdateExcelEditMark(req.ExcelInfoId, sysUser.AdminId, 1, sysUser.RealName)
+	checkExcelInfoId := excelInfo.ExcelInfoId
+	checkExcelInfo := excelInfo
+	if excelInfo.Source == utils.BALANCE_TABLE {
+		checkExcelInfoId = excelInfo.ExcelInfoId
+		if excelInfo.BalanceType == 1 {
+			checkExcelInfoId = excelInfo.RelExcelInfoId
+		} else {
+			if excelInfo.ParentId > 0 {
+				checkExcelInfoId = excelInfo.ParentId
+			}
+		}
+		if checkExcelInfoId != excelInfo.ExcelInfoId {
+			checkExcelInfo, err = excel3.GetExcelInfoById(excelInfo.ExcelInfoId)
+			if err != nil {
+				br.Msg = "获取平衡表格信息失败"
+				br.ErrMsg = "获取平衡表格信息失败,Err:" + err.Error()
+				return
+			}
+		}
+	}
+
+	// 标记编辑状态
+	markRet, err := services.UpdateExcelEditMark(checkExcelInfoId, sysUser.AdminId, 1, sysUser.RealName)
 	if err != nil {
 		br.Msg = "查询标记状态失败"
 		br.ErrMsg = "查询标记状态失败,Err:" + err.Error()
@@ -729,15 +750,19 @@ func (c *ExcelInfoController) Edit() {
 	// 操作权限校验
 	{
 		// 数据权限
-		haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, c.SysUser.AdminId)
+		haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(checkExcelInfo.ExcelInfoId, checkExcelInfo.ExcelClassifyId, checkExcelInfo.IsJoinPermission, c.SysUser.AdminId)
 		if err != nil {
 			br.Msg = "获取ETA表格失败"
 			br.ErrMsg = "获取ETA表格权限失败,Err:" + err.Error()
 			return
 		}
-		button := excel2.GetExcelInfoOpButton(sysUser, excelInfo.SysUserId, excelInfo.Source, haveOperaAuth)
+		var button excel3.ExcelInfoDetailButton
+		if checkExcelInfo.Source == utils.BALANCE_TABLE {
+			button = excel2.GetBalanceExcelInfoOpButton(sysUser.AdminId, checkExcelInfo.SysUserId, haveOperaAuth, checkExcelInfo.ExcelInfoId)
+		} else {
+			button = excel2.GetExcelInfoOpButton(sysUser, excelInfo.SysUserId, excelInfo.Source, haveOperaAuth)
+		}
 		if !button.OpButton {
-			br.Msg = "无操作权限"
 			br.Msg = "无操作权限"
 			br.IsSendEmail = false
 			return

+ 1 - 2
services/data/chart_info_excel_balance.go

@@ -106,7 +106,7 @@ func addBalanceExcelChart(req request.AddBalanceTableChartReq, sysUserId int, sy
 	}
 	chartType := req.ChartType
 	extraConfig := req.ExtraConfig
-	// todo 查找默认主题设置
+	// 查找默认主题设置
 	// 查找主题类型id
 	chartThemeType, err := chart_theme.GetChartThemeTypeByChartType(chartType)
 	if err != nil {
@@ -511,7 +511,6 @@ func editBalanceExcelChart(req request.AddBalanceTableChartReq) (chartInfo *data
 }
 
 func GetBalanceExcelChartDetail(chartInfo *data_manage.ChartInfoView, mappingListTmp []*excelModel.ExcelChartEdb, sysUser *system.Admin, dataListMap map[int][]*data_manage.EdbDataList) (resp *data_manage.ChartInfoDetailResp, err error, errMsg string) {
-	// todo 图表权限处理
 	// 图表数据权限
 	{
 		// 已授权分类id

+ 3 - 4
services/data/excel/excel_info.go

@@ -178,7 +178,7 @@ func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int) (excelDet
 		excelDetail.TableData = result
 	}
 	if excelDetail.Source == utils.BALANCE_TABLE {
-		excelDetail.Button = GetBalanceExcelInfoOpButton(sysUserId, excelDetail.SysUserId, excelDetail.HaveOperaAuth, checkExcelInfo.ExcelInfoId, checkExcelInfo.SysUserId)
+		excelDetail.Button = GetBalanceExcelInfoOpButton(sysUserId, checkExcelInfo.SysUserId, excelDetail.HaveOperaAuth, checkExcelInfo.ExcelInfoId)
 	}
 	return
 }
@@ -214,7 +214,7 @@ func GetExcelInfoOpButton(sysUser *system.Admin, belongUserId, source int, haveO
 }
 
 // GetBalanceExcelInfoOpButton 获取ETA平衡表格的操作权限
-func GetBalanceExcelInfoOpButton(sysUserId, belongUserId int, haveOperaAuth bool, parentExcelInfoId, parentSysUserId int) (button excel.ExcelInfoDetailButton) {
+func GetBalanceExcelInfoOpButton(sysUserId, parentSysUserId int, haveOperaAuth bool, parentExcelInfoId int) (button excel.ExcelInfoDetailButton) {
 	// 如果没有数据权限,那么直接返回
 	if !haveOperaAuth {
 		return
@@ -224,8 +224,7 @@ func GetBalanceExcelInfoOpButton(sysUserId, belongUserId int, haveOperaAuth bool
 	button.CopyButton = true
 	button.DownloadButton = true
 
-	belongUserId = parentSysUserId
-	if sysUserId == belongUserId {
+	if sysUserId == parentSysUserId {
 		button.OpButton = true
 		button.RefreshEdbButton = true
 		button.OpWorkerButton = true

+ 1 - 1
services/data/excel/excel_op.go

@@ -54,7 +54,7 @@ func Delete(excelInfo *excelModel.ExcelInfo, sysUser *system.Admin) (err error,
 			return
 		}
 	} else if excelInfo.Source == utils.BALANCE_TABLE {
-		// todo 如果父级删除是否删除子表和静态表,同时删除图表和图表数据
+		// 如果父级删除是否删除子表和静态表,同时删除图表和图表数据
 		excelIds := make([]int, 0)
 		//查询动态表所有的子表,并复制为静态表
 		condition := " AND source=?"