基础架构
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"context"
|
||||
"tyapi-server/internal/domains/admin/entities"
|
||||
"tyapi-server/internal/domains/admin/repositories/queries"
|
||||
"tyapi-server/internal/shared/interfaces"
|
||||
)
|
||||
|
||||
// AdminStats 管理员统计
|
||||
type AdminStats struct {
|
||||
TotalAdmins int64
|
||||
ActiveAdmins int64
|
||||
TodayLogins int64
|
||||
TotalOperations int64
|
||||
}
|
||||
|
||||
// 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)
|
||||
|
||||
// 管理员管理
|
||||
ListAdmins(ctx context.Context, query *queries.ListAdminsQuery) ([]*entities.Admin, int64, error)
|
||||
GetStats(ctx context.Context, query *queries.GetAdminInfoQuery) (*AdminStats, error)
|
||||
|
||||
// 权限管理
|
||||
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]
|
||||
|
||||
// 日志查询
|
||||
ListLogs(ctx context.Context, query *queries.ListAdminLoginLogQuery) ([]*entities.AdminLoginLog, int64, error)
|
||||
|
||||
// 统计查询
|
||||
GetTodayLoginCount(ctx context.Context) (int64, error)
|
||||
GetLoginCountByAdmin(ctx context.Context, adminID string, days int) (int64, error)
|
||||
}
|
||||
|
||||
// AdminOperationLogRepository 管理员操作日志仓储接口
|
||||
type AdminOperationLogRepository interface {
|
||||
interfaces.Repository[entities.AdminOperationLog]
|
||||
|
||||
// 日志查询
|
||||
ListLogs(ctx context.Context, query *queries.ListAdminOperationLogQuery) ([]*entities.AdminOperationLog, int64, error)
|
||||
|
||||
// 统计查询
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user