From 50a89b6fc160e69677df55c7ba84d69e7d6bc9af Mon Sep 17 00:00:00 2001 From: qhd <1766646056@qq.com> Date: Sat, 9 May 2026 10:30:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E4=B8=BA=E7=AE=A1=E7=90=86=E5=91=98=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/v1/system/sys_user.go | 5 ++++ internal/app/system/consts/role.go | 4 +-- internal/app/system/controller/sys_user.go | 6 +++++ internal/app/system/logic/sysUser/sys_user.go | 26 +++++++++++++++++++ internal/app/system/service/sys_user.go | 1 + 5 files changed, 40 insertions(+), 2 deletions(-) diff --git a/api/v1/system/sys_user.go b/api/v1/system/sys_user.go index 3fee522..e26ba39 100644 --- a/api/v1/system/sys_user.go +++ b/api/v1/system/sys_user.go @@ -155,6 +155,11 @@ type IsSuperAdminReq struct { commonApi.Author } +type IsAdminReq struct { + g.Meta `path:"/user/checkIsAdmin" tags:"用户管理" method:"get" summary:"是否是管理员"` + commonApi.Author +} + type IsSuperAdminRes struct { g.Meta `mime:"application/json"` IsSuperAdmin bool `json:"isSuperAdmin"` diff --git a/internal/app/system/consts/role.go b/internal/app/system/consts/role.go index 029d7b9..5c6b81c 100644 --- a/internal/app/system/consts/role.go +++ b/internal/app/system/consts/role.go @@ -2,6 +2,6 @@ package consts const ( SuperAdminId = 1 // 超级管理员 - SalesAgentId = 9 // 销售代理 - SiteAdminId = 10 // 站点管理员 + SalesAgentId = 9 // 租户代理管理员 + SiteAdminId = 10 // 租户普通管理员 ) diff --git a/internal/app/system/controller/sys_user.go b/internal/app/system/controller/sys_user.go index e90caac..043ab9b 100644 --- a/internal/app/system/controller/sys_user.go +++ b/internal/app/system/controller/sys_user.go @@ -135,3 +135,9 @@ func (c *userController) IsSuperAdmin(ctx context.Context, req *system.IsSuperAd IsSuperAdminRes.IsSuperAdmin, err = service.SysUser().IsSuperAdmin(ctx, req) return } + +func (c *userController) IsAdmin(ctx context.Context, req *system.IsAdminReq) (IsSuperAdminRes *system.IsSuperAdminRes, err error) { + IsSuperAdminRes = new(system.IsSuperAdminRes) + IsSuperAdminRes.IsSuperAdmin, err = service.SysUser().IsAdmin(ctx, req) + return +} diff --git a/internal/app/system/logic/sysUser/sys_user.go b/internal/app/system/logic/sysUser/sys_user.go index 5e843df..29c2a43 100644 --- a/internal/app/system/logic/sysUser/sys_user.go +++ b/internal/app/system/logic/sysUser/sys_user.go @@ -10,6 +10,7 @@ package sysUser import ( "context" "fmt" + "gitea.com/red-future/common/beans" "gitea.com/red-future/common/utils" "github.com/gogf/gf/v2/container/gset" @@ -782,3 +783,28 @@ func (s *sSysUser) IsSuperAdmin(ctx context.Context, req *system.IsSuperAdminReq } return } + +func (s *sSysUser) IsAdmin(ctx context.Context, req *system.IsAdminReq) (isSuperAdmin bool, err error) { + _ = req + isSuperAdmin = false + // 获取用户id + getUserInfo, err := utils.GetUserInfo(ctx) + if err != nil { + return + } + userId := getUserInfo.Id + if !g.IsEmpty(userId) { + var roleIds []uint + roleIds, err = service.SysUser().GetAdminRoleIds(ctx, gconv.Uint64(userId)) + liberr.ErrIsNil(ctx, err, "获取用户角色失败") + for _, v := range roleIds { + if v == consts.SuperAdminId || v == consts.SiteAdminId { + isSuperAdmin = true + return + } else { + isSuperAdmin = false + } + } + } + return +} diff --git a/internal/app/system/service/sys_user.go b/internal/app/system/service/sys_user.go index cbd0872..dde3c2e 100644 --- a/internal/app/system/service/sys_user.go +++ b/internal/app/system/service/sys_user.go @@ -49,6 +49,7 @@ type ( Delete(ctx context.Context, ids []int) (err error) GetUsers(ctx context.Context, ids []int) (users []*model.SysUserSimpleRes, err error) IsSuperAdmin(ctx context.Context, req *system.IsSuperAdminReq) (isSuperAdmin bool, err error) + IsAdmin(ctx context.Context, req *system.IsAdminReq) (isSuperAdmin bool, err error) } )