2025-07-11 21:05:58 +08:00
|
|
|
package repositories
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"context"
|
|
|
|
|
"tyapi-server/internal/domains/admin/entities"
|
2025-07-13 16:36:20 +08:00
|
|
|
"tyapi-server/internal/domains/admin/repositories/queries"
|
2025-07-11 21:05:58 +08:00
|
|
|
"tyapi-server/internal/shared/interfaces"
|
|
|
|
|
)
|
|
|
|
|
|
2025-07-13 16:36:20 +08:00
|
|
|
// AdminStats 管理员统计
|
|
|
|
|
type AdminStats struct {
|
|
|
|
|
TotalAdmins int64
|
|
|
|
|
ActiveAdmins int64
|
|
|
|
|
TodayLogins int64
|
|
|
|
|
TotalOperations int64
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-11 21:05:58 +08:00
|
|
|
// AdminRepository 管理员仓储接口
|
|
|
|
|
type AdminRepository interface {
|
|
|
|
|
interfaces.Repository[entities.Admin]
|
|
|
|
|
|
|
|
|
|
// 管理员认证
|
|
|
|
|
FindByUsername(ctx context.Context, username string) (*entities.Admin, error)
|
|
|
|
|
FindByEmail(ctx context.Context, email string) (*entities.Admin, error)
|
|
|
|
|
|
|
|
|
|
// 管理员管理
|
2025-07-13 16:36:20 +08:00
|
|
|
ListAdmins(ctx context.Context, query *queries.ListAdminsQuery) ([]*entities.Admin, int64, error)
|
|
|
|
|
GetStats(ctx context.Context, query *queries.GetAdminInfoQuery) (*AdminStats, error)
|
2025-07-11 21:05:58 +08:00
|
|
|
|
|
|
|
|
// 权限管理
|
|
|
|
|
GetPermissionsByRole(ctx context.Context, role entities.AdminRole) ([]entities.AdminPermission, error)
|
|
|
|
|
UpdatePermissions(ctx context.Context, adminID string, permissions []string) error
|
|
|
|
|
|
|
|
|
|
// 统计信息
|
|
|
|
|
UpdateLoginStats(ctx context.Context, adminID string) error
|
|
|
|
|
UpdateReviewStats(ctx context.Context, adminID string, approved bool) error
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AdminLoginLogRepository 管理员登录日志仓储接口
|
|
|
|
|
type AdminLoginLogRepository interface {
|
|
|
|
|
interfaces.Repository[entities.AdminLoginLog]
|
|
|
|
|
|
|
|
|
|
// 日志查询
|
2025-07-13 16:36:20 +08:00
|
|
|
ListLogs(ctx context.Context, query *queries.ListAdminLoginLogQuery) ([]*entities.AdminLoginLog, int64, error)
|
2025-07-11 21:05:58 +08:00
|
|
|
|
|
|
|
|
// 统计查询
|
|
|
|
|
GetTodayLoginCount(ctx context.Context) (int64, error)
|
|
|
|
|
GetLoginCountByAdmin(ctx context.Context, adminID string, days int) (int64, error)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AdminOperationLogRepository 管理员操作日志仓储接口
|
|
|
|
|
type AdminOperationLogRepository interface {
|
|
|
|
|
interfaces.Repository[entities.AdminOperationLog]
|
|
|
|
|
|
|
|
|
|
// 日志查询
|
2025-07-13 16:36:20 +08:00
|
|
|
ListLogs(ctx context.Context, query *queries.ListAdminOperationLogQuery) ([]*entities.AdminOperationLog, int64, error)
|
2025-07-11 21:05:58 +08:00
|
|
|
|
|
|
|
|
// 统计查询
|
|
|
|
|
GetTotalOperations(ctx context.Context) (int64, error)
|
|
|
|
|
GetOperationsByAdmin(ctx context.Context, adminID string, days int) (int64, error)
|
|
|
|
|
|
|
|
|
|
// 批量操作
|
|
|
|
|
BatchCreate(ctx context.Context, logs []entities.AdminOperationLog) error
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// AdminPermissionRepository 管理员权限仓储接口
|
|
|
|
|
type AdminPermissionRepository interface {
|
|
|
|
|
interfaces.Repository[entities.AdminPermission]
|
|
|
|
|
|
|
|
|
|
// 权限查询
|
|
|
|
|
FindByCode(ctx context.Context, code string) (*entities.AdminPermission, error)
|
|
|
|
|
FindByModule(ctx context.Context, module string) ([]entities.AdminPermission, error)
|
|
|
|
|
ListActive(ctx context.Context) ([]entities.AdminPermission, error)
|
|
|
|
|
|
|
|
|
|
// 角色权限管理
|
|
|
|
|
GetPermissionsByRole(ctx context.Context, role entities.AdminRole) ([]entities.AdminPermission, error)
|
|
|
|
|
AssignPermissionsToRole(ctx context.Context, role entities.AdminRole, permissionIDs []string) error
|
|
|
|
|
RemovePermissionsFromRole(ctx context.Context, role entities.AdminRole, permissionIDs []string) error
|
|
|
|
|
}
|