|
@@ -430,6 +430,14 @@ func (c *ExcelInfoController) List() {
|
|
|
}
|
|
|
//只看我的
|
|
|
isShowMe, _ := c.GetBool("IsShowMe")
|
|
|
+ // 获取所有有权限的指标和分类
|
|
|
+ permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserExcelAndClassifyPermissionList(c.SysUser.AdminId, 0, 0)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ hasCheck := make(map[int]bool)
|
|
|
if isShowMe {
|
|
|
if source == utils.BALANCE_TABLE { //平衡表的,显示同时需要显示协作人相关的图表
|
|
|
//找到当前协作人相关的表格ID
|
|
@@ -440,17 +448,73 @@ func (c *ExcelInfoController) List() {
|
|
|
br.ErrMsg = "获取表格协作人失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ var excelIds []int
|
|
|
+ newCondition := condition
|
|
|
+ newPars := pars
|
|
|
if len(existList) > 0 {
|
|
|
- var excelIds []int
|
|
|
for _, v := range existList {
|
|
|
excelIds = append(excelIds, v.ExcelInfoId)
|
|
|
}
|
|
|
- condition += fmt.Sprintf(` AND ( excel_info_id IN (%s) or sys_user_id = ?)`, utils.GetOrmInReplace(len(excelIds)))
|
|
|
- pars = append(pars, excelIds, sysUser.AdminId)
|
|
|
+ newCondition += fmt.Sprintf(` AND ( excel_info_id IN (%s) or sys_user_id = ?)`, utils.GetOrmInReplace(len(excelIds)))
|
|
|
+ newPars = append(newPars, excelIds, sysUser.AdminId)
|
|
|
+ } else {
|
|
|
+ newCondition += ` AND sys_user_id = ? `
|
|
|
+ newPars = append(newPars, sysUser.AdminId)
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取表格信息
|
|
|
+ tmpList, e := excel3.GetNoContentExcelListByConditionNoPage(newCondition, newPars)
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取表格信息失败"
|
|
|
+ br.ErrMsg = "获取表格信息失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyIdListTmp := make([]int, 0)
|
|
|
+ for _, v := range tmpList {
|
|
|
+ classifyIdListTmp = append(classifyIdListTmp, v.ExcelClassifyId)
|
|
|
+ }
|
|
|
+ classifyMap := make(map[int]*excel3.ExcelClassify)
|
|
|
+
|
|
|
+ // 分类信息
|
|
|
+ if len(classifyIdListTmp) > 0 {
|
|
|
+ classifyListTmp, e := excel3.GetClassifyByIdList(classifyIdListTmp)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取表格分类信息失败"
|
|
|
+ br.ErrMsg = "获取表格分类列表数据失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range classifyListTmp {
|
|
|
+ classifyMap[v.ExcelClassifyId] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ excelIds = make([]int, 0)
|
|
|
+ for _, v := range tmpList {
|
|
|
+ // 数据权限
|
|
|
+ if classifyInfo, ok := classifyMap[v.ExcelClassifyId]; ok {
|
|
|
+ v.HaveOperaAuth = data_manage_permission.CheckExcelPermissionByPermissionIdList(v.IsJoinPermission, classifyInfo.IsJoinPermission, v.ExcelInfoId, v.ExcelClassifyId, permissionEdbIdList, permissionClassifyIdList)
|
|
|
+ if v.HaveOperaAuth {
|
|
|
+ excelIds = append(excelIds, v.ExcelInfoId)
|
|
|
+ }
|
|
|
+ hasCheck[v.ExcelInfoId] = v.HaveOperaAuth
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(excelIds) > 0 {
|
|
|
+ condition += fmt.Sprintf(` AND excel_info_id IN (%s)`, utils.GetOrmInReplace(len(excelIds)))
|
|
|
+ pars = append(pars, excelIds)
|
|
|
} else {
|
|
|
- condition += " AND sys_user_id = ? "
|
|
|
- pars = append(pars, sysUser.AdminId)
|
|
|
+ list := make([]*excel3.MyExcelInfoList, 0)
|
|
|
+ resp := response.ExcelListResp{
|
|
|
+ Paging: page,
|
|
|
+ List: list,
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
} else {
|
|
|
condition += " AND sys_user_id = ? "
|
|
|
pars = append(pars, sysUser.AdminId)
|
|
@@ -490,18 +554,15 @@ func (c *ExcelInfoController) List() {
|
|
|
classifyMap[v.ExcelClassifyId] = v
|
|
|
}
|
|
|
}
|
|
|
- // 获取所有有权限的指标和分类
|
|
|
- permissionEdbIdList, permissionClassifyIdList, err := data_manage_permission.GetUserExcelAndClassifyPermissionList(c.SysUser.AdminId, 0, 0)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取所有有权限的指标和分类失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
|
|
|
for k, v := range list {
|
|
|
// 数据权限
|
|
|
- if classifyInfo, ok := classifyMap[v.ExcelClassifyId]; ok {
|
|
|
- v.HaveOperaAuth = data_manage_permission.CheckExcelPermissionByPermissionIdList(v.IsJoinPermission, classifyInfo.IsJoinPermission, v.ExcelInfoId, v.ExcelClassifyId, permissionEdbIdList, permissionClassifyIdList)
|
|
|
+ if authCheck, ok1 := hasCheck[v.ExcelInfoId]; ok1 {
|
|
|
+ v.HaveOperaAuth = authCheck
|
|
|
+ } else {
|
|
|
+ if classifyInfo, ok := classifyMap[v.ExcelClassifyId]; ok {
|
|
|
+ v.HaveOperaAuth = data_manage_permission.CheckExcelPermissionByPermissionIdList(v.IsJoinPermission, classifyInfo.IsJoinPermission, v.ExcelInfoId, v.ExcelClassifyId, permissionEdbIdList, permissionClassifyIdList)
|
|
|
+ }
|
|
|
}
|
|
|
if v.Source == utils.BALANCE_TABLE {
|
|
|
//处理按钮权限和编辑状态
|
|
@@ -601,11 +662,6 @@ func (c *ExcelInfoController) Detail() {
|
|
|
excelDetail.Editor = markStatus.Editor
|
|
|
}
|
|
|
|
|
|
- // excel表格按钮权限
|
|
|
- if excelDetail.Source != utils.BALANCE_TABLE {
|
|
|
- excelDetail.Button = excel2.GetExcelInfoOpButton(sysUser, excelDetail.SysUserId, excelDetail.Source, excelDetail.HaveOperaAuth)
|
|
|
- }
|
|
|
-
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|