73 lines
2.6 KiB
Go
73 lines
2.6 KiB
Go
|
|
package repositories
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
|
||
|
|
"tyapi-server/internal/domains/admin/dto"
|
||
|
|
"tyapi-server/internal/domains/admin/entities"
|
||
|
|
"tyapi-server/internal/shared/interfaces"
|
||
|
|
)
|
||
|
|
|
||
|
|
// 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, req *dto.AdminListRequest) (*dto.AdminListResponse, error)
|
||
|
|
GetStats(ctx context.Context) (*dto.AdminStatsResponse, 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, req *dto.AdminLoginLogRequest) (*dto.AdminLoginLogResponse, 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, req *dto.AdminOperationLogRequest) (*dto.AdminOperationLogResponse, 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
|
||
|
|
}
|