Browse Source

fix:表格详情权限

Roc 11 months ago
parent
commit
e95fce511b
2 changed files with 30 additions and 29 deletions
  1. 16 16
      controllers/data_manage/excel/excel_info.go
  2. 14 13
      services/data/excel/excel_info.go

+ 16 - 16
controllers/data_manage/excel/excel_info.go

@@ -2341,13 +2341,13 @@ func decompressZip(src string) error {
 // @Param	request	body request.MarkEditSandbox true "type json string"
 // @Success 200 标记成功 ;202 标记成功
 // @router /excel_info/mark [post]
-func (this *ExcelInfoController) MarkEditStatus() {
+func (c *ExcelInfoController) MarkEditStatus() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
+		c.Data["json"] = br
+		c.ServeJSON()
 	}()
-	sysUser := this.SysUser
+	sysUser := c.SysUser
 	if sysUser == nil {
 		br.Msg = "请登录"
 		br.ErrMsg = "请登录,SysUser Is Empty"
@@ -2355,7 +2355,7 @@ func (this *ExcelInfoController) MarkEditStatus() {
 		return
 	}
 	var req request.MarkEditExcel
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
 	if err != nil {
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
@@ -2395,16 +2395,16 @@ func (this *ExcelInfoController) MarkEditStatus() {
 // @Param	request	body excel3.BatchRefreshExcelReq true "type json string"
 // @Success Ret=200 刷新成功
 // @router /excel_info/table/batch_refresh [post]
-func (this *ExcelInfoController) BatchRefresh() {
+func (c *ExcelInfoController) BatchRefresh() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
 		if br.ErrMsg == "" {
 			br.IsSendEmail = false
 		}
-		this.Data["json"] = br
-		this.ServeJSON()
+		c.Data["json"] = br
+		c.ServeJSON()
 	}()
-	sysUser := this.SysUser
+	sysUser := c.SysUser
 	if sysUser == nil {
 		br.Msg = "请登录"
 		br.ErrMsg = "请登录,SysUser Is Empty"
@@ -2412,7 +2412,7 @@ func (this *ExcelInfoController) BatchRefresh() {
 		return
 	}
 	var req excel3.BatchRefreshExcelReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
 	if err != nil {
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
@@ -2426,7 +2426,7 @@ func (this *ExcelInfoController) BatchRefresh() {
 	}
 
 	// 获取表格关联的指标IDs
-	edbIds, e := excel2.GetEdbIdsFromExcelCodes(req.ExcelCodes)
+	edbIds, e := excel2.GetEdbIdsFromExcelCodes(req.ExcelCodes, sysUser.AdminId)
 	if e != nil {
 		br.Msg = "刷新失败"
 		br.ErrMsg = "获取表格关联的指标IDs失败, Err: " + e.Error()
@@ -2461,13 +2461,13 @@ func (this *ExcelInfoController) BatchRefresh() {
 // @Param	request	body excel3.BatchRefreshExcelReq true "type json string"
 // @Success Ret=200 刷新成功
 // @router /excel_info/table/batch_refresh/result [post]
-func (this *ExcelInfoController) GetBatchChartRefreshResult() {
+func (c *ExcelInfoController) GetBatchChartRefreshResult() {
 	br := new(models.BaseResponse).Init()
 	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
+		c.Data["json"] = br
+		c.ServeJSON()
 	}()
-	sysUser := this.SysUser
+	sysUser := c.SysUser
 	if sysUser == nil {
 		br.Msg = "请登录"
 		br.ErrMsg = "请登录,SysUser Is Empty"
@@ -2475,7 +2475,7 @@ func (this *ExcelInfoController) GetBatchChartRefreshResult() {
 		return
 	}
 	var req excel3.BatchRefreshExcelReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
 	if err != nil {
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()

+ 14 - 13
services/data/excel/excel_info.go

@@ -34,18 +34,11 @@ func GetExcelDetailInfoByExcelInfoId(excelInfoId, sysUserId int) (excelDetail re
 		return
 	}
 
-	// 数据权限
-	haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, sysUserId)
-	if err != nil {
-		err = errors.New("获取表格权限信息失败,Err" + err.Error())
-		return
-	}
-
-	return formatExcelInfo2Detail(excelInfo, haveOperaAuth)
+	return formatExcelInfo2Detail(excelInfo, sysUserId)
 }
 
 // GetExcelDetailInfoByUnicode 根据表格编码获取表格详情
-func GetExcelDetailInfoByUnicode(unicode string) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
+func GetExcelDetailInfoByUnicode(unicode string, sysUserId int) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
 	errMsg = `获取失败`
 	// 获取eta表格信息
 	excelInfo, err := excel.GetExcelInfoByUnicode(unicode)
@@ -58,10 +51,17 @@ func GetExcelDetailInfoByUnicode(unicode string) (excelDetail response.ExcelInfo
 		return
 	}
 
-	return formatExcelInfo2Detail(excelInfo)
+	return formatExcelInfo2Detail(excelInfo, sysUserId)
 }
 
-func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, haveOperaAuth bool) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
+func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, sysUserId int) (excelDetail response.ExcelInfoDetail, errMsg string, err error) {
+	// 数据权限
+	haveOperaAuth, err := data_manage_permission.CheckExcelPermissionByExcelInfoId(excelInfo.ExcelInfoId, excelInfo.ExcelClassifyId, excelInfo.IsJoinPermission, sysUserId)
+	if err != nil {
+		err = errors.New("获取表格权限信息失败,Err" + err.Error())
+		return
+	}
+
 	excelDetail = response.ExcelInfoDetail{
 		ExcelInfoId:     excelInfo.ExcelInfoId,
 		Source:          excelInfo.Source,
@@ -79,6 +79,7 @@ func formatExcelInfo2Detail(excelInfo *excel.ExcelInfo, haveOperaAuth bool) (exc
 		ModifyTime:      excelInfo.ModifyTime,
 		CreateTime:      excelInfo.CreateTime,
 		TableData:       nil,
+		HaveOperaAuth:   haveOperaAuth,
 	}
 
 	// 无权限,不需要返回数据
@@ -1301,12 +1302,12 @@ func calculate(calculateFormula string, TagMap map[string]float64) (calVal, errM
 }
 
 // GetEdbIdsFromExcelCodes 获取表格中的指标IDs
-func GetEdbIdsFromExcelCodes(excelCodes []string) (edbIds []int, err error) {
+func GetEdbIdsFromExcelCodes(excelCodes []string, sysUserId int) (edbIds []int, err error) {
 	edbIds = make([]int, 0)
 	edbIdExist := make(map[int]bool)
 	for _, v := range excelCodes {
 		// 表格详情
-		detail, msg, e := GetExcelDetailInfoByUnicode(v)
+		detail, msg, e := GetExcelDetailInfoByUnicode(v, sysUserId)
 		if e != nil {
 			err = fmt.Errorf("GetExcelDetailInfoByExcelInfoId err: %s, errMsg: %s", e.Error(), msg)
 			return