diff --git a/internal/common/helper.go b/internal/common/helper.go index 73be484..703898f 100644 --- a/internal/common/helper.go +++ b/internal/common/helper.go @@ -36,6 +36,11 @@ func BuildAdminPageData(c *gin.Context, extra gin.H) gin.H { if role, exists := c.Get("role"); exists { roleStr := role.(string) data["Role"] = roleStr + if name, ok := model.RoleDisplayNames[roleStr]; ok { + data["RoleDisplayName"] = name + } else { + data["RoleDisplayName"] = roleStr + } data["CanManageUsers"] = model.HasMinRole(roleStr, model.RoleAdmin) data["CanManageSettings"] = model.HasMinRole(roleStr, model.RoleOwner) data["IsOwner"] = model.HasMinRole(roleStr, model.RoleOwner) diff --git a/internal/controller/admin/admin_controller.go b/internal/controller/admin/admin_controller.go index a75244f..79630da 100644 --- a/internal/controller/admin/admin_controller.go +++ b/internal/controller/admin/admin_controller.go @@ -25,8 +25,13 @@ func NewAdminController(adminService adminUseCase) *AdminController { // Dashboard 管理首页(欢迎页) func (ac *AdminController) Dashboard(c *gin.Context) { + totalUsers, err := ac.adminService.CountUsers() + if err != nil { + totalUsers = 0 + } c.HTML(http.StatusOK, "admin/dashboard/index.html", common.BuildAdminPageData(c, gin.H{ - "Title": "管理首页", + "Title": "管理首页", + "TotalUsers": totalUsers, })) } diff --git a/internal/controller/admin/interfaces.go b/internal/controller/admin/interfaces.go index cd6f984..505f36c 100644 --- a/internal/controller/admin/interfaces.go +++ b/internal/controller/admin/interfaces.go @@ -2,9 +2,10 @@ package admin import "metazone.cc/metalab/internal/service" -// adminUseCase AdminController 对 AdminService 的最小依赖(ISP:3 个方法) +// adminUseCase AdminController 对 AdminService 的最小依赖(ISP:4 个方法) type adminUseCase interface { ListUsers(params service.ListUsersParams) (*service.ListUsersResult, error) UpdateUserStatus(operatorUID, targetUID uint, newStatus string) error ResetUserToken(operatorUID, targetUID uint) error + CountUsers() (int64, error) } diff --git a/internal/service/admin_service.go b/internal/service/admin_service.go index 919fcf1..efeb1d9 100644 --- a/internal/service/admin_service.go +++ b/internal/service/admin_service.go @@ -112,6 +112,11 @@ func (s *AdminService) ResetUserToken(operatorUID, targetUID uint) error { }) } +// CountUsers 统计用户总数(管理首页用) +func (s *AdminService) CountUsers() (int64, error) { + return s.userRepo.CountSearchUsers("", "", "") +} + // checkAndOperate 通用权限检查 + 执行操作 func (s *AdminService) checkAndOperate(operatorUID, targetUID uint, operate func(*model.User, *model.User) error) error { // 1. 不可操作自己 diff --git a/templates/admin/html/dashboard/index.html b/templates/admin/html/dashboard/index.html index 665b002..a0948be 100644 --- a/templates/admin/html/dashboard/index.html +++ b/templates/admin/html/dashboard/index.html @@ -7,7 +7,7 @@
-
用户总数
+
用户总数
{{.TotalUsers}}
@@ -15,7 +15,7 @@
-
当前角色
{{.Role}}
+
当前角色
{{.RoleDisplayName}}
diff --git a/templates/admin/html/layout/base.html b/templates/admin/html/layout/base.html index 32ccebb..30840bf 100644 --- a/templates/admin/html/layout/base.html +++ b/templates/admin/html/layout/base.html @@ -4,7 +4,7 @@ {{if .CSRFToken}}{{end}} -{{.Title}} - MetaLab CP +{{.Title}} - MetaLab 管理面板 {{if .ExtraCSS}}