Browse Source

Merge branch 'feature/eta1.8.5_excel_balance' into debug

xyxie 10 months ago
parent
commit
36b53270f9
2 changed files with 139 additions and 59 deletions
  1. 133 26
      controllers/data_manage/excel/balance_table.go
  2. 6 33
      services/data/chart_info_excel_balance.go

+ 133 - 26
controllers/data_manage/excel/balance_table.go

@@ -390,8 +390,54 @@ func (c *ExcelInfoController) BalanceChartInfoAdd() {
 		br.Msg = "请填写图表名称!"
 		return
 	}
+	// 获取表格信息
+	excelInfo, err := excel.GetExcelInfoById(req.ExcelInfoId)
+	if err != nil {
+		br.Msg = "获取ETA表格失败"
+		return
+	}
 
-	chartInfo, err, errMsg, isSendEmail := data.AddBalanceExcelChart(req, sysUser)
+	if excelInfo.Source != utils.BALANCE_TABLE {
+		br.Msg = "EXCEL类型错误!"
+		return
+	}
+	// 操作权限校验, 增加协作人判断
+	{
+		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(checkExcelInfoId)
+				if err != nil {
+					br.Msg = "获取平衡表格信息失败"
+					br.ErrMsg = "获取平衡表格信息失败,Err:" + err.Error()
+					return
+				}
+			}
+		}
+		// 数据权限
+		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.GetBalanceExcelInfoOpButton(sysUser.AdminId, checkExcelInfo.SysUserId, haveOperaAuth, checkExcelInfo.ExcelInfoId)
+		if !button.OpButton {
+			br.Msg = "无操作权限"
+			br.IsSendEmail = false
+			return
+		}
+	}
+	chartInfo, err, errMsg, isSendEmail := data.AddBalanceExcelChart(excelInfo, req, sysUser)
 	if err != nil {
 		br.Msg = "保存失败"
 		if errMsg != `` {
@@ -493,8 +539,54 @@ func (c *ExcelInfoController) BalanceChartInfoEdit() {
 		br.Msg = "请选择图表"
 		return
 	}
+	// 获取表格信息
+	excelInfo, err := excel.GetExcelInfoById(req.ExcelInfoId)
+	if err != nil {
+		br.Msg = "获取ETA表格失败"
+		return
+	}
 
-	chartItem, err, errMsg, isSendEmail := data.EditBalanceExcelChart(req, sysUser)
+	if excelInfo.Source != utils.BALANCE_TABLE {
+		br.Msg = "EXCEL类型错误!"
+		return
+	}
+	// 操作权限校验, 增加协作人判断
+	{
+		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(checkExcelInfoId)
+				if err != nil {
+					br.Msg = "获取平衡表格信息失败"
+					br.ErrMsg = "获取平衡表格信息失败,Err:" + err.Error()
+					return
+				}
+			}
+		}
+		// 数据权限
+		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.GetBalanceExcelInfoOpButton(sysUser.AdminId, checkExcelInfo.SysUserId, haveOperaAuth, checkExcelInfo.ExcelInfoId)
+		if !button.OpButton {
+			br.Msg = "无操作权限"
+			br.IsSendEmail = false
+			return
+		}
+	}
+	chartItem, err, errMsg, isSendEmail := data.EditBalanceExcelChart(excelInfo, req, sysUser)
 	if err != nil {
 		br.Msg = "保存失败"
 		if errMsg != `` {
@@ -674,33 +766,48 @@ func (c *ExcelInfoController) DeleteBalanceChart() {
 			return
 		}
 
-		// todo 查询图表权限
-		/*chartClassifyItem, err := data_manage.GetChartClassifyById(chartInfo.ChartClassifyId)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取图表分类详情数据失败,Err:" + err.Error()
-			return
-		}
-
-		// 已授权图表、分类id
-		permissionChartIdList, permissionClassifyIdList, err := data_manage_permission.GetUserChartAndClassifyPermissionList(this.SysUser.AdminId, chartInfo.ChartInfoId, chartInfo.ChartClassifyId)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取已授权分类id数据失败,Err:" + err.Error()
-			return
-		}
-
-		// 权限校验
+		// 操作权限校验, 增加协作人判断
 		{
-			haveOperaAuth := data_manage_permission.CheckChartPermissionByPermissionIdList(chartInfo.IsJoinPermission, chartClassifyItem.IsJoinPermission, chartInfo.ChartInfoId, chartInfo.ChartClassifyId, permissionChartIdList, permissionClassifyIdList)
-			//图表操作权限
-			ok := data.CheckOpChartPermission(sysUser, chartInfo.SysUserId, haveOperaAuth)
-			if !ok {
-				br.Msg = "没有该图表的操作权限"
-				br.ErrMsg = "没有该图表的操作权限"
+			// 获取表格信息
+			excelInfo, e := excel.GetExcelInfoByChartInfoId(req.ChartInfoId)
+			if e != nil {
+				br.Msg = "获取ETA表格失败"
 				return
 			}
-		}*/
+			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, e = excel.GetExcelInfoById(checkExcelInfoId)
+					if e != nil {
+						br.Msg = "获取平衡表格信息失败"
+						br.ErrMsg = "获取平衡表格信息失败,Err:" + e.Error()
+						return
+					}
+				}
+			}
+			// 数据权限
+			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.GetBalanceExcelInfoOpButton(sysUser.AdminId, checkExcelInfo.SysUserId, haveOperaAuth, checkExcelInfo.ExcelInfoId)
+			if !button.OpButton {
+				br.Msg = "无操作权限"
+				br.IsSendEmail = false
+				return
+			}
+		}
 
 		// 获取引用该图表的MyCharts, 用于ES删除
 		var myCond string

+ 6 - 33
services/data/chart_info_excel_balance.go

@@ -9,7 +9,6 @@ import (
 	"eta/eta_api/models/data_manage/excel/request"
 	"eta/eta_api/models/system"
 	"eta/eta_api/services/data/data_manage_permission"
-	excelService "eta/eta_api/services/data/excel"
 	"eta/eta_api/utils"
 	"fmt"
 	"math"
@@ -19,22 +18,9 @@ import (
 )
 
 // AddBalanceExcelChart 添加平衡表图表
-func AddBalanceExcelChart(req request.AddBalanceTableChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
-	// 获取表格信息
-	excelInfo, err := excelModel.GetExcelInfoById(req.ExcelInfoId)
-	if err != nil {
-		errMsg = "找不到该EXCEL"
-		err = fmt.Errorf("找不到该EXCEL!%s", err.Error())
-		return
-	}
-
-	if excelInfo.Source != utils.BALANCE_TABLE {
-		errMsg = "EXCEL类型错误!"
-		err = fmt.Errorf("EXCEL类型错误!")
-		return
-	}
+func AddBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanceTableChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 
-	// 操作权限校验, 增加协作人判断
+	/*// 操作权限校验, 增加协作人判断
 	{
 		checkExcelInfo := excelInfo
 		checkExcelInfoId := excelInfo.ExcelInfoId
@@ -67,7 +53,7 @@ func AddBalanceExcelChart(req request.AddBalanceTableChartReq, sysUser *system.A
 			isSendEmail = false
 			return
 		}
-	}
+	}*/
 
 	if len(req.ChartEdbInfoList) == 0 {
 		errMsg = "图表数据不能为空!"
@@ -280,26 +266,13 @@ func addBalanceExcelChart(req request.AddBalanceTableChartReq, sysUserId int, sy
 }
 
 // EditBalanceExcelChart 添加平衡表图表
-func EditBalanceExcelChart(req request.AddBalanceTableChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
-	// 获取表格信息
-	excelInfo, err := excelModel.GetExcelInfoById(req.ExcelInfoId)
-	if err != nil {
-		errMsg = "找不到该EXCEL"
-		err = fmt.Errorf("找不到该EXCEL!%s", err.Error())
-		return
-	}
-
-	if excelInfo.Source != utils.BALANCE_TABLE {
-		errMsg = "EXCEL类型错误!"
-		err = fmt.Errorf("EXCEL类型错误!")
-		return
-	}
+func EditBalanceExcelChart(excelInfo *excelModel.ExcelInfo, req request.AddBalanceTableChartReq, sysUser *system.Admin) (chartInfo *data_manage.ChartInfo, err error, errMsg string, isSendEmail bool) {
 	if len(req.ChartEdbInfoList) == 0 {
 		errMsg = "图表数据不能为空!"
 		err = fmt.Errorf("图表数据不能为空!%s", err.Error())
 		return
 	}
-	// 操作权限校验, 增加协作人判断
+	/*// 操作权限校验, 增加协作人判断
 	{
 		checkExcelInfo := excelInfo
 		checkExcelInfoId := excelInfo.ExcelInfoId
@@ -333,7 +306,7 @@ func EditBalanceExcelChart(req request.AddBalanceTableChartReq, sysUser *system.
 			return
 		}
 	}
-
+	*/
 	//查询已有的mapping
 	mapping, err := excelModel.GetExcelChartEdbMappingByChartInfoId(req.ChartInfoId)
 	if err != nil {