package service import ( "github.com/druidcaesa/gotool" dao2 "ulink-admin/modules/system/dao" "ulink-admin/modules/system/models/model" ) type PermissionService struct { RoleDao *dao2.RoleDao `inject:""` MenuDao *dao2.MenuDao `inject:""` } // GetRolePermissionByUserId 查询用户角色集合 func (s PermissionService) GetRolePermissionByUserId(user *model.SysUser) *[]string { admin := model.SysUser{}.IsAdmin(user.Id) roleKeys := s.RoleDao.GetRolePermissionByUserId(user.Id) if admin && roleKeys != nil { *roleKeys = append(*roleKeys, "admin") } duplication := gotool.StrArrayUtils.ArrayDuplication(*roleKeys) return &duplication } // GetMenuPermission 获取菜单数据权限 func (s PermissionService) GetMenuPermission(user *model.SysUser) *[]string { flag := model.SysUser{}.IsAdmin(user.Id) //查询菜单数据权限 permission := s.MenuDao.GetMenuPermission(user.Id) if flag && permission != nil { *permission = append(*permission, "*:*:*") } var ret []string duplication := gotool.StrArrayUtils.ArrayDuplication(*permission) for i := 0; i < len(duplication); i++ { if (i > 0 && duplication[i-1] == duplication[i]) || len(duplication[i]) == 0 { continue } ret = append(ret, duplication[i]) } return &ret } // GetAllPermission 获取菜单数据权限 func (s PermissionService) GetAllPermission() *[]string { //查询菜单数据权限 permission := s.MenuDao.GetAllPermission() return permission }