Browse Source

Merge branch 'ETA_2.2.2' into debug

zwxi 6 months ago
parent
commit
477c967db1
3 changed files with 119 additions and 0 deletions
  1. 99 0
      controllers/bi_dashboard.go
  2. 11 0
      models/system/sys_menu.go
  3. 9 0
      routers/commentsRouter.go

+ 99 - 0
controllers/bi_dashboard.go

@@ -1215,3 +1215,102 @@ func (this *BIDaShboardController) Editing() {
 	br.Success = true
 	br.Msg = "操作成功"
 }
+
+// GroupList
+// @Title 获取我拥有的图库表格菜单权限
+// @Description 获取我拥有的图库表格菜单权限接口
+// @Success 200 {object} models.RespGroupList
+// @router /chart_excel_permission [get]
+func (this *BIDaShboardController) ChartExcelPermission() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	roleId := sysUser.RoleId
+	//roleId=1
+	if roleId <= 0 {
+		br.Msg = "参数错误"
+		return
+	}
+	roleIds := strconv.Itoa(roleId)
+	//查询账号绑定的其他角色
+	otherRoles, err := system.GetRoleIdsByAdminId(sysUser.AdminId)
+	if err != nil {
+		br.Msg = "获取其他角色失败"
+		br.ErrMsg = "获取其他角色失败,Err:" + err.Error()
+		return
+	}
+	if len(otherRoles) > 0 {
+		for _, v := range otherRoles {
+			roleIds += "," + strconv.Itoa(v.RoleId)
+		}
+	}
+	groupId := 0
+	if utils.RunMode == "release" {
+		groupId = 37
+	} else {
+		groupId = 61
+	}
+	//共享客户组下的用户
+	shareSellerMap := make(map[int]bool, 0)
+	subAdmins, err := system.GetAdminByGroupId(groupId)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取销售失败"
+		br.ErrMsg = "获取销售失败,Err:" + err.Error()
+		return
+	}
+	for _, admin := range subAdmins {
+		shareSellerMap[admin.AdminId] = true
+	}
+
+	list, err := system.GetMenuByRoleIds(roleIds)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	lenList := len(list)
+
+	menuList := make([]*system.SysMenu, 0)
+
+
+	chartExcelTypes, e := models.GetBusinessConfByKey("ChartExcelType")
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取商家配置失败, Err: " + e.Error()
+		return
+	}
+	types := strings.Split(chartExcelTypes.ConfVal, ",")
+	typeMap := map[string]bool{}
+	for _, v := range types {
+		typeMap[v] = true
+	}
+
+
+	for i := 0; i < lenList; i++ {
+		item := list[i]
+		if !typeMap[item.LevelPath] && !typeMap[item.Path] {
+			continue
+		}
+		menuList = append(menuList, list[i])
+	}
+
+
+
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "查询成功"
+	br.Data = menuList
+	return
+}

+ 11 - 0
models/system/sys_menu.go

@@ -191,3 +191,14 @@ func GetMenuButtonApisByRoleId(roleId int) (items []*SysMenu, err error) {
 	_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
 	return
 }
+
+// GetMenuByRoleIds 根据管理员多个角色查询菜单ID
+func GetMenuByRoleIds(roleIds string) (items []*SysMenu, err error) {
+	sql := ` SELECT DISTINCT a.* FROM sys_menu AS a
+			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id AND b.type = 0
+			INNER JOIN sys_role AS c ON b.role_id=c.role_id
+			WHERE c.role_id in (` + roleIds + `)
+            ORDER BY a.sort ASC, create_time DESC, menu_id DESC`
+	_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -8728,6 +8728,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:BIDaShboardController"],
+        beego.ControllerComments{
+            Method: "ChartExcelPermission",
+            Router: `/chart_excel_permission`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers:BIDaShboardController"],
         beego.ControllerComments{
             Method: "AddDashboardClassify",