handler

package
v0.0.0-...-5418120 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ActorManagementHandler

type ActorManagementHandler struct {
	// contains filtered or unexported fields
}

ActorManagementHandler 演员管理处理器

func NewActorManagementHandler

func NewActorManagementHandler(actorService service.ActorManagementServiceInterface) *ActorManagementHandler

NewActorManagementHandler 创建演员管理处理器

func (*ActorManagementHandler) AddTeamMember

func (h *ActorManagementHandler) AddTeamMember(c *gin.Context)

AddTeamMember 添加团队成员 @Summary 添加团队成员 @Description 向指定制作团队添加新成员 @Tags 管理后台 - 演员管理 @Accept json @Produce json @Security BearerAuth @Param team_id path int true "团队ID" @Param request body model.TeamMemberCreateRequest true "团队成员信息" @Success 201 {object} map[string]any{message=string,member=model.TeamMember} "团队成员添加成功" @Failure 400 {object} map[string]any "团队ID无效或添加失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/team-members/{team_id} [post]

func (*ActorManagementHandler) AssignActorToSeries

func (h *ActorManagementHandler) AssignActorToSeries(c *gin.Context)

AssignActorToSeries 分配演员到剧集 @Summary 分配演员到剧集 @Description 将演员分配到指定剧集并指定角色信息(角色名、类型、报酬等) @Tags 管理后台 - 演员管理 @Accept json @Produce json @Security BearerAuth @Param actor_id path int true "演员ID" @Param series_id path int true "剧集ID" @Param request body map[string]any true "角色数据(character_name, role_type, role_description, payment等)" @Success 201 {object} map[string]any{message=string,role=model.ActorRole} "演员分配成功" @Failure 400 {object} map[string]any "演员ID或剧集ID无效,或分配失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/actor-roles/{actor_id}/series/{series_id}/assign [post]

func (*ActorManagementHandler) AssignToProject

func (h *ActorManagementHandler) AssignToProject(c *gin.Context)

AssignToProject 分配到项目 @Summary 分配到项目 @Description 将演员、团队或成员分配到指定项目,包含角色、时间、预算等信息 @Tags 管理后台 - 演员管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ProjectAssignmentRequest true "项目分配信息" @Success 201 {object} map[string]any{message=string,assignment=model.ProjectAssignment} "项目分配成功" @Failure 400 {object} map[string]any "请求数据无效或分配失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/projects/assignments [post]

func (*ActorManagementHandler) CreateActor

func (h *ActorManagementHandler) CreateActor(c *gin.Context)

CreateActor 创建演员 @Summary 创建演员 @Description 创建新的演员档案,包含演员基本信息、联系方式、专业技能等 @Tags 管理后台 - 演员管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ActorCreateRequest true "演员创建信息" @Success 201 {object} map[string]any{message=string,actor=model.Actor} "演员创建成功" @Failure 400 {object} map[string]any "请求数据无效或演员创建失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/actors [post]

func (*ActorManagementHandler) CreateActorContract

func (h *ActorManagementHandler) CreateActorContract(c *gin.Context)

CreateActorContract 创建演员合同 @Summary 创建演员合同 @Description 为指定演员创建新的合同,包含合同类型、期限、薪酬等信息 @Tags 管理后台 - 演员管理 @Accept json @Produce json @Security BearerAuth @Param actor_id path int true "演员ID" @Param request body map[string]any true "合同数据(contract_type, start_date, end_date, base_payment等)" @Success 201 {object} map[string]any{message=string,contract=model.ActorContract} "演员合同创建成功" @Failure 400 {object} map[string]any "演员ID无效或创建合同失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/actor-contracts/{actor_id} [post]

func (*ActorManagementHandler) CreateProductionTeam

func (h *ActorManagementHandler) CreateProductionTeam(c *gin.Context)

CreateProductionTeam 创建制作团队 @Summary 创建制作团队 @Description 创建新的制作团队档案,包含公司信息、专业能力、联系方式等 @Tags 管理后台 - 演员管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ProductionTeamCreateRequest true "制作团队创建信息" @Success 201 {object} map[string]any{message=string,team=model.ProductionTeam} "制作团队创建成功" @Failure 400 {object} map[string]any "请求数据无效或创建失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/production-teams [post]

func (*ActorManagementHandler) DeleteActor

func (h *ActorManagementHandler) DeleteActor(c *gin.Context)

DeleteActor 删除演员 @Summary 删除演员 @Description 删除指定演员档案(需要检查演员是否有活跃项目) @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param id path int true "演员ID" @Success 200 {object} map[string]any{message=string} "演员删除成功" @Failure 400 {object} map[string]any "演员ID无效或删除失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/actors/{id} [delete]

func (*ActorManagementHandler) GetActor

func (h *ActorManagementHandler) GetActor(c *gin.Context)

GetActor 获取演员信息 @Summary 获取演员详细信息 @Description 根据演员ID获取演员的完整档案信息 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param id path int true "演员ID" @Success 200 {object} model.Actor "演员信息" @Failure 400 {object} map[string]any "演员ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 404 {object} map[string]any "演员不存在" @Router /api/v1/admin/actors/{id} [get]

func (*ActorManagementHandler) GetActorContracts

func (h *ActorManagementHandler) GetActorContracts(c *gin.Context)

GetActorContracts 获取演员合同 @Summary 获取演员合同列表 @Description 获取指定演员的所有合同记录 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param actor_id path int true "演员ID" @Success 200 {object} map[string]any{contracts=[]model.ActorContract,total=int} "合同列表" @Failure 400 {object} map[string]any "演员ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取合同失败" @Router /api/v1/admin/actor-contracts/{actor_id} [get]

func (*ActorManagementHandler) GetActorPerformanceStats

func (h *ActorManagementHandler) GetActorPerformanceStats(c *gin.Context)

GetActorPerformanceStats 获取演员表现统计 @Summary 获取演员表现统计 @Description 获取指定演员的综合表现数据统计,包括项目数、收益、评分、人气趋势等 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param actor_id path int true "演员ID" @Success 200 {object} model.ActorPerformanceStats "演员表现统计" @Failure 400 {object} map[string]any "演员ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 404 {object} map[string]any "演员不存在" @Failure 500 {object} map[string]any "获取演员统计失败" @Router /api/v1/admin/actor-stats/{actor_id} [get]

func (*ActorManagementHandler) GetActorWorks

func (h *ActorManagementHandler) GetActorWorks(c *gin.Context)

GetActorWorks 获取演员作品 @Summary 获取演员作品列表 @Description 获取指定演员参演的所有作品(剧集及角色) @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param actor_id path int true "演员ID" @Success 200 {object} map[string]any{works=[]model.ActorRole,total=int} "演员作品列表" @Failure 400 {object} map[string]any "演员ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取演员作品失败" @Router /api/v1/admin/actor-roles/{actor_id}/works [get]

func (*ActorManagementHandler) GetActors

func (h *ActorManagementHandler) GetActors(c *gin.Context)

GetActors 获取演员列表 @Summary 获取演员列表 @Description 获取演员列表,支持分页、搜索、筛选和排序 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param search query string false "搜索关键词(姓名、艺名)" @Param gender query string false "性别筛选" Enums(male, female, other) @Param status query string false "状态筛选" Enums(active, inactive, retired, banned) @Param is_verified query boolean false "是否认证" @Param is_exclusive query boolean false "是否独家" @Param sort_by query string false "排序字段" default(created_at) @Param sort_order query string false "排序方式" default(desc) Enums(asc, desc) @Success 200 {object} model.ActorListResponse "演员列表" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取演员列表失败" @Router /api/v1/admin/actors [get]

func (*ActorManagementHandler) GetExpiringContracts

func (h *ActorManagementHandler) GetExpiringContracts(c *gin.Context)

GetExpiringContracts 获取即将到期的合同 @Summary 获取即将到期的合同 @Description 获取未来指定天数内即将到期的演员合同列表,用于合同续签提醒 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param days query int false "未来天数" default(30) @Success 200 {object} map[string]any{contracts=[]model.ActorContract,total=int} "即将到期合同列表" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取即将到期合同失败" @Router /api/v1/admin/actor-contracts/expiring [get]

func (*ActorManagementHandler) GetPopularActors

func (h *ActorManagementHandler) GetPopularActors(c *gin.Context)

GetPopularActors 获取热门演员 @Summary 获取热门演员列表 @Description 获取平台热门演员排行榜,按人气分数排序 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param limit query int false "返回数量限制" default(10) @Success 200 {object} map[string]any{actors=[]model.ActorInfo,total=int} "热门演员列表" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取热门演员失败" @Router /api/v1/admin/actors/popular [get]

func (*ActorManagementHandler) GetProductionTeam

func (h *ActorManagementHandler) GetProductionTeam(c *gin.Context)

GetProductionTeam 获取制作团队 @Summary 获取制作团队详情 @Description 根据团队ID获取制作团队的完整档案信息 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param id path int true "团队ID" @Success 200 {object} model.ProductionTeam "制作团队信息" @Failure 400 {object} map[string]any "团队ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 404 {object} map[string]any "制作团队不存在" @Router /api/v1/admin/production-teams/{id} [get]

func (*ActorManagementHandler) GetProductionTeams

func (h *ActorManagementHandler) GetProductionTeams(c *gin.Context)

GetProductionTeams 获取制作团队列表 @Summary 获取制作团队列表 @Description 获取制作团队列表,支持分页、搜索和筛选 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param search query string false "搜索关键词(团队名称)" @Param company_type query string false "公司类型筛选" Enums(production_company, studio, agency, freelance) @Param status query string false "状态筛选" Enums(active, inactive, blacklisted, pending_review) @Param is_preferred query boolean false "是否优选团队" @Success 200 {object} map[string]any{teams=[]model.ProductionTeam,total=int,page=int,limit=int} "制作团队列表" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取制作团队失败" @Router /api/v1/admin/production-teams [get]

func (*ActorManagementHandler) GetProjectAssignments

func (h *ActorManagementHandler) GetProjectAssignments(c *gin.Context)

GetProjectAssignments 获取项目分配 @Summary 获取项目分配列表 @Description 获取指定剧集的所有项目分配记录 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param series_id path int true "剧集ID" @Success 200 {object} map[string]any{assignments=[]model.ProjectAssignment,total=int} "项目分配列表" @Failure 400 {object} map[string]any "剧集ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取项目分配失败" @Router /api/v1/admin/projects/{series_id}/assignments [get]

func (*ActorManagementHandler) GetSeriesActors

func (h *ActorManagementHandler) GetSeriesActors(c *gin.Context)

GetSeriesActors 获取剧集演员 @Summary 获取剧集演员列表 @Description 获取指定剧集的所有演员及角色信息 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param series_id path int true "剧集ID" @Success 200 {object} map[string]any{actors=[]model.ActorRole,total=int} "剧集演员列表" @Failure 400 {object} map[string]any "剧集ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取剧集演员失败" @Router /api/v1/admin/actor-roles/series/{series_id} [get]

func (*ActorManagementHandler) GetTeamMembers

func (h *ActorManagementHandler) GetTeamMembers(c *gin.Context)

GetTeamMembers 获取团队成员 @Summary 获取团队成员列表 @Description 获取指定制作团队的所有成员信息 @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param team_id path int true "团队ID" @Success 200 {object} map[string]any{members=[]model.TeamMember,total=int} "团队成员列表" @Failure 400 {object} map[string]any "团队ID无效" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "获取团队成员失败" @Router /api/v1/admin/team-members/{team_id} [get]

func (*ActorManagementHandler) SearchActors

func (h *ActorManagementHandler) SearchActors(c *gin.Context)

SearchActors 搜索演员 @Summary 搜索演员 @Description 根据关键词快速搜索演员(姓名、艺名等) @Tags 管理后台 - 演员管理 @Produce json @Security BearerAuth @Param keyword query string true "搜索关键词" @Param limit query int false "返回数量限制" default(10) @Success 200 {object} map[string]any{actors=[]model.ActorInfo,total=int} "搜索结果" @Failure 400 {object} map[string]any "缺少搜索关键词" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "搜索演员失败" @Router /api/v1/admin/actors/search [get]

func (*ActorManagementHandler) UpdateActor

func (h *ActorManagementHandler) UpdateActor(c *gin.Context)

UpdateActor 更新演员信息 @Summary 更新演员信息 @Description 更新指定演员的档案信息,支持部分字段更新 @Tags 管理后台 - 演员管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "演员ID" @Param request body model.ActorUpdateRequest true "演员更新信息" @Success 200 {object} map[string]any{message=string} "演员信息更新成功" @Failure 400 {object} map[string]any "演员ID无效或更新失败" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/actors/{id} [put]

type AdminHandler

type AdminHandler struct {
	// contains filtered or unexported fields
}

AdminHandler 管理员处理器

func NewAdminHandler

func NewAdminHandler(services *service.Services, adminService service.AdminServiceInterface, db *gorm.DB) *AdminHandler

NewAdminHandler 创建管理员处理器

func (*AdminHandler) BatchContentReview

func (h *AdminHandler) BatchContentReview(c *gin.Context)

BatchContentReview 批量内容审核 @Summary 批量内容审核 @Description 批量审核多个内容 @Tags 管理后台 @Accept json @Produce json @Security BearerAuth @Param request body service.BatchContentReviewRequest true "批量审核请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/batch-review [post]

func (*AdminHandler) BatchReviewEpisodes

func (h *AdminHandler) BatchReviewEpisodes(c *gin.Context)

BatchReviewEpisodes 批量审核Episodes @Summary 批量审核Episodes @Description 管理员批量审核多个Episodes @Tags 管理后台 - 内容审核 @Accept json @Produce json @Security BearerAuth @Param request body map[string]any true "批量审核请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Router /admin/content/episodes/batch-review [post]

func (*AdminHandler) BatchUpdateUsers

func (h *AdminHandler) BatchUpdateUsers(c *gin.Context)

BatchUpdateUsers 批量更新用户 @Summary 批量更新用户 @Description 批量更新多个用户的状态或角色 @Tags 管理后台 @Accept json @Produce json @Security BearerAuth @Param request body service.BatchUserUpdateRequest true "批量更新请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/batch-update [put]

func (*AdminHandler) ExportUsers

func (h *AdminHandler) ExportUsers(c *gin.Context)

ExportUsers 导出用户数据 @Summary 导出用户数据 @Description 导出用户数据为CSV格式 @Tags 管理后台 @Produce application/octet-stream @Security BearerAuth @Param format query string false "导出格式" default(csv) @Param status query string false "用户状态过滤" @Param role query string false "用户角色过滤" @Success 200 {file} binary @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/export [get]

func (*AdminHandler) GetAnalytics

func (h *AdminHandler) GetAnalytics(c *gin.Context)

GetAnalytics 获取分析数据 @Summary 获取分析数据 @Description 获取系统分析和统计数据 @Tags 管理后台 @Produce json @Security BearerAuth @Param type query string false "分析类型" Enums(user,content,revenue) default(user) @Param time_range query string false "时间范围" Enums(today,week,month,year) default(month) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/analytics [get]

func (*AdminHandler) GetContent

func (h *AdminHandler) GetContent(c *gin.Context)

GetContent 获取内容管理列表 @Summary 获取内容管理列表 @Description 获取待审核或已发布的内容列表 @Tags 管理后台 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param status query string false "内容状态" @Param category query string false "内容分类" @Success 200 {object} service.ContentModerationResponse @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content [get]

func (*AdminHandler) GetDashboard

func (h *AdminHandler) GetDashboard(c *gin.Context)

GetDashboard 获取管理后台仪表板 @Summary 获取管理后台仪表板 @Description 获取管理后台统计数据和概览信息 @Tags 管理后台 @Produce json @Security BearerAuth @Success 200 {object} service.DashboardStats @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/dashboard [get]

func (*AdminHandler) GetOperationLogs

func (h *AdminHandler) GetOperationLogs(c *gin.Context)

GetOperationLogs 获取操作日志 @Summary 获取操作日志 @Description 获取管理员操作日志记录 @Tags 管理后台 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(50) @Param action query string false "操作类型过滤" @Success 200 {object} service.OperationLogsResponse @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/logs [get]

func (*AdminHandler) GetPayments

func (h *AdminHandler) GetPayments(c *gin.Context)

GetPayments 获取支付记录 @Summary 获取支付记录 @Description 获取系统支付交易记录 @Tags 管理后台 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/payments [get]

func (*AdminHandler) GetPendingReviewEpisodes

func (h *AdminHandler) GetPendingReviewEpisodes(c *gin.Context)

GetPendingReviewEpisodes 获取待审核的Episodes @Summary 获取待审核的Episodes @Description 管理员查看所有待审核的Episodes @Tags 管理后台 - 内容审核 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param creator_id query int false "创作者ID筛选" @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Router /admin/content/pending-review [get]

func (*AdminHandler) GetRevenueStats

func (h *AdminHandler) GetRevenueStats(c *gin.Context)

GetRevenueStats 获取收入统计 @Summary 获取收入统计 @Description 获取详细的收入统计数据 @Tags 管理后台 @Produce json @Security BearerAuth @Param time_range query string false "时间范围" default(month) @Success 200 {object} service.RevenueStats @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/revenue/stats [get]

func (*AdminHandler) GetReviewStats

func (h *AdminHandler) GetReviewStats(c *gin.Context)

GetReviewStats 获取审核统计 @Summary 获取审核统计 @Description 获取Episode审核统计数据 @Tags 管理后台 - 内容审核 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Router /admin/content/review-stats [get]

func (*AdminHandler) GetSystemSettings

func (h *AdminHandler) GetSystemSettings(c *gin.Context)

GetSystemSettings 获取系统设置 @Summary 获取系统设置 @Description 获取系统配置设置 @Tags 管理后台 @Produce json @Security BearerAuth @Success 200 {object} service.SystemSettings @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/settings [get]

func (*AdminHandler) GetSystemStatus

func (h *AdminHandler) GetSystemStatus(c *gin.Context)

GetSystemStatus 获取系统状态 @Summary 获取系统状态 @Description 获取系统运行状态和健康检查 @Tags 管理后台 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/system/status [get]

func (*AdminHandler) GetUsers

func (h *AdminHandler) GetUsers(c *gin.Context)

GetUsers 获取用户列表 @Summary 获取用户列表 @Description 获取系统用户列表,支持搜索和筛选 @Tags 管理后台 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param search query string false "搜索关键词" @Param status query string false "用户状态" @Param role query string false "用户角色" @Success 200 {object} service.UserManagementResponse @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users [get]

func (*AdminHandler) ReviewContent

func (h *AdminHandler) ReviewContent(c *gin.Context)

ReviewContent 审核内容 @Summary 审核内容 @Description 批准或拒绝待审核内容 @Tags 管理后台 @Accept json @Produce json @Security BearerAuth @Param id path int true "内容ID" @Param request body map[string]any true "审核信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/{id}/review [post]

func (*AdminHandler) ReviewEpisode

func (h *AdminHandler) ReviewEpisode(c *gin.Context)

ReviewEpisode 审核单个Episode @Summary 审核单个Episode @Description 管理员审核Episode,通过或拒绝 @Tags 管理后台 - 内容审核 @Accept json @Produce json @Security BearerAuth @Param id path int true "Episode ID" @Param request body map[string]any true "审核请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/content/episodes/{id}/review [post]

func (*AdminHandler) UpdateSystemSettings

func (h *AdminHandler) UpdateSystemSettings(c *gin.Context)

UpdateSystemSettings 更新系统设置 @Summary 更新系统设置 @Description 更新系统配置设置 @Tags 管理后台 @Accept json @Produce json @Security BearerAuth @Param settings body service.SystemSettings true "系统设置" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/settings [put]

func (*AdminHandler) UpdateUserStatus

func (h *AdminHandler) UpdateUserStatus(c *gin.Context)

UpdateUserStatus 更新用户状态 @Summary 更新用户状态 @Description 更新指定用户的状态 @Tags 管理后台 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param request body map[string]string true "状态信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/status [put]

type AdvancedAnalyticsHandler

type AdvancedAnalyticsHandler struct {
	// contains filtered or unexported fields
}

AdvancedAnalyticsHandler 高级数据分析处理器

func NewAdvancedAnalyticsHandler

func NewAdvancedAnalyticsHandler(analyticsService service.AdvancedAnalyticsServiceInterface) *AdvancedAnalyticsHandler

NewAdvancedAnalyticsHandler 创建高级数据分析处理器

func (*AdvancedAnalyticsHandler) AcknowledgeInsight

func (h *AdvancedAnalyticsHandler) AcknowledgeInsight(c *gin.Context)

AcknowledgeInsight 确认洞察 @Summary 确认数据洞察 @Description 管理员确认已查看并处理某个数据洞察,将洞察状态更新为已确认 @Tags 高级分析 @Produce json @Security BearerAuth @Param insight_id path string true "洞察ID" @Success 200 {object} map[string]string{message=string} "确认成功" @Failure 400 {object} map[string]any "洞察ID无效或确认失败" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/advanced-analytics/insights/{insight_id}/acknowledge [post]

func (*AdvancedAnalyticsHandler) CreatePredictionModel

func (h *AdvancedAnalyticsHandler) CreatePredictionModel(c *gin.Context)

CreatePredictionModel 创建预测模型 @Summary 创建预测模型 @Description 创建新的预测模型配置,指定模型类型和相关参数,用于后续的预测分析 @Tags 高级分析 @Accept json @Produce json @Security BearerAuth @Param request body object{model_type=string,config=object} true "预测模型创建参数" @Success 201 {object} map[string]any{message=string,model=model.PredictionModel} "模型创建成功" @Failure 400 {object} map[string]any "请求参数错误或创建失败" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Router /api/v1/admin/advanced-analytics/predictions/models [post]

func (*AdvancedAnalyticsHandler) GenerateComprehensiveAnalytics

func (h *AdvancedAnalyticsHandler) GenerateComprehensiveAnalytics(c *gin.Context)

GenerateComprehensiveAnalytics 生成综合分析 @Summary 生成综合分析报告 @Description 根据指定的时间范围和分析类型生成综合数据分析报告,包括用户、内容、收入、推广等多维度分析,支持趋势分析、异常检测、关联分析和预测分析 @Tags 高级分析 @Accept json @Produce json @Security BearerAuth @Param request body model.AdvancedAnalyticsRequest true "综合分析请求参数" @Success 200 {object} model.AdvancedAnalyticsResponse "综合分析结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/comprehensive [post]

func (*AdvancedAnalyticsHandler) GenerateDataInsights

func (h *AdvancedAnalyticsHandler) GenerateDataInsights(c *gin.Context)

GenerateDataInsights 生成数据洞察 @Summary 生成数据洞察 @Description 基于指定的数据源和时间范围生成智能数据洞察,包括趋势分析、异常检测和关联发现,支持按置信度和可操作性过滤 @Tags 高级分析 @Accept json @Produce json @Security BearerAuth @Param request body model.InsightRequest true "数据洞察请求参数" @Success 200 {object} map[string]any{insights=[]model.DataInsightInfo,total=int,generated_at=string} "数据洞察结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/insights/generate [post]

func (*AdvancedAnalyticsHandler) GetAnalyticsReport

func (h *AdvancedAnalyticsHandler) GetAnalyticsReport(c *gin.Context)

GetAnalyticsReport 获取分析报告详情 @Summary 获取分析报告详情 @Description 根据报告ID获取高级分析报告的详细信息,包括完整的分析数据、洞察和建议 @Tags 高级分析 @Produce json @Security BearerAuth @Param report_id path string true "报告ID" @Success 200 {object} model.AdvancedAnalyticsReport "分析报告详情" @Failure 400 {object} map[string]any "报告ID无效" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 404 {object} map[string]any "报告不存在" @Router /api/v1/admin/advanced-analytics/reports/{report_id} [get]

func (*AdvancedAnalyticsHandler) GetAnalyticsReports

func (h *AdvancedAnalyticsHandler) GetAnalyticsReports(c *gin.Context)

GetAnalyticsReports 获取分析报告列表 @Summary 获取分析报告列表 @Description 获取高级分析报告列表,支持按报告类型过滤和限制返回数量 @Tags 高级分析 @Produce json @Security BearerAuth @Param report_type query string false "报告类型过滤 (comprehensive, user_behavior, content_performance, revenue_analysis, prediction)" @Param limit query int false "返回数量限制" default(20) @Success 200 {object} map[string]any{reports=[]model.AdvancedAnalyticsReport,total=int} "分析报告列表" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/reports [get]

func (*AdvancedAnalyticsHandler) GetDataInsights

func (h *AdvancedAnalyticsHandler) GetDataInsights(c *gin.Context)

GetDataInsights 获取数据洞察列表 @Summary 获取数据洞察列表 @Description 获取已生成的数据洞察列表,支持按洞察类型、状态过滤和限制返回数量 @Tags 高级分析 @Produce json @Security BearerAuth @Param insight_type query string false "洞察类型过滤 (trend, anomaly, correlation, prediction)" @Param status query string false "状态过滤 (active, acknowledged, resolved, dismissed)" @Param limit query int false "返回数量限制" default(50) @Success 200 {object} map[string]any{insights=[]model.DataInsightInfo,total=int} "数据洞察列表" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/insights [get]

func (*AdvancedAnalyticsHandler) GetInsightsDashboard

func (h *AdvancedAnalyticsHandler) GetInsightsDashboard(c *gin.Context)

GetInsightsDashboard 获取洞察仪表板 @Summary 获取洞察仪表板 @Description 获取综合洞察仪表板数据,包括最新洞察、关键指标、异常事件和关联分析等汇总信息 @Tags 高级分析 @Produce json @Security BearerAuth @Success 200 {object} map[string]any{latest_insights=[]model.DataInsightInfo,user_metrics=object,content_metrics=object,revenue_metrics=object,recent_anomalies=[]model.AnomalyEvent,key_correlations=[]model.CorrelationPair,generated_at=string} "洞察仪表板数据" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/dashboard [get]

func (*AdvancedAnalyticsHandler) GetPredictionModels

func (h *AdvancedAnalyticsHandler) GetPredictionModels(c *gin.Context)

GetPredictionModels 获取预测模型列表 @Summary 获取预测模型列表 @Description 获取系统中已配置的预测模型列表,支持按模型类型和激活状态过滤 @Tags 高级分析 @Produce json @Security BearerAuth @Param model_type query string false "模型类型过滤 (user_behavior, content_popularity, revenue_forecast, churn_prediction)" @Param is_active query boolean false "是否激活" @Success 200 {object} map[string]any{models=[]model.PredictionModel,total=int} "预测模型列表" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/predictions/models [get]

func (*AdvancedAnalyticsHandler) RunAnomalyDetection

func (h *AdvancedAnalyticsHandler) RunAnomalyDetection(c *gin.Context)

RunAnomalyDetection 运行异常检测 @Summary 运行异常检测 @Description 在指定时间范围内运行异常检测算法,识别数据中的异常波动、异常值和模式中断等情况 @Tags 高级分析 @Produce json @Security BearerAuth @Param start_date query string false "开始日期 (格式: 2006-01-02)" default(7天前) @Param end_date query string false "结束日期 (格式: 2006-01-02)" default(今天) @Success 200 {object} map[string]any{anomalies=[]model.AnomalyEvent,total=int,detected_at=string,period_start=string,period_end=string} "异常检测结果" @Failure 400 {object} map[string]any "日期格式错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/anomalies/detect [get]

func (*AdvancedAnalyticsHandler) RunCorrelationAnalysis

func (h *AdvancedAnalyticsHandler) RunCorrelationAnalysis(c *gin.Context)

RunCorrelationAnalysis 运行关联分析 @Summary 运行关联分析 @Description 在指定时间范围内分析不同指标之间的关联关系,发现跨模块的数据关联和因果关系 @Tags 高级分析 @Produce json @Security BearerAuth @Param start_date query string false "开始日期 (格式: 2006-01-02)" default(30天前) @Param end_date query string false "结束日期 (格式: 2006-01-02)" default(今天) @Success 200 {object} map[string]any{correlations=[]model.CorrelationPair,total=int,analyzed_at=string,period_start=string,period_end=string} "关联分析结果" @Failure 400 {object} map[string]any "日期格式错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/correlations [get]

func (*AdvancedAnalyticsHandler) RunPredictionAnalysis

func (h *AdvancedAnalyticsHandler) RunPredictionAnalysis(c *gin.Context)

RunPredictionAnalysis 运行预测分析 @Summary 运行预测分析 @Description 基于历史数据运行预测分析模型,支持用户增长、收入预测、内容热度等多种预测类型,返回预测数据和置信区间 @Tags 高级分析 @Accept json @Produce json @Security BearerAuth @Param request body model.PredictionRequest true "预测分析请求参数" @Success 200 {object} map[string]any{prediction_data=model.PredictionData,model_type=string,prediction_days=int,generated_at=string} "预测分析结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/admin/advanced-analytics/predictions/run [post]

type AdvertisementHandler

type AdvertisementHandler struct {
	// contains filtered or unexported fields
}

AdvertisementHandler 广告处理器

func NewAdvertisementHandler

func NewAdvertisementHandler(adService service.AdvertisementServiceInterface) *AdvertisementHandler

NewAdvertisementHandler 创建广告处理器

func (*AdvertisementHandler) GetActiveAds

func (h *AdvertisementHandler) GetActiveAds(c *gin.Context)

GetActiveAds 获取活跃广告 @Summary 获取活跃广告 @Description 获取当前活跃的广告列表,支持按类型、分类、目标年龄段、目标性别等条件筛选 @Tags 广告 @Produce json @Security BearerAuth @Param type query string false "广告类型" @Param category query string false "广告分类" @Param target_age query string false "目标年龄段" @Param target_gender query string false "目标性别" @Param limit query int false "返回数量限制" default(20) @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/advertisements/activeads [get]

func (*AdvertisementHandler) GetAdStatistics

func (h *AdvertisementHandler) GetAdStatistics(c *gin.Context)

GetAdStatistics 获取广告统计 @Summary 获取广告统计 @Description 获取指定广告的详细统计数据,包括展示次数、点击率、转化率等关键指标(需要管理员权限) @Tags 广告 @Produce json @Security BearerAuth @Param ad_id query int true "广告ID" @Param date_range query string false "时间范围" Enums(today, week, month, quarter, year) default(week) @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/advertisements/adstatistics [get]

func (*AdvertisementHandler) GetAdsByCategory

func (h *AdvertisementHandler) GetAdsByCategory(c *gin.Context)

GetAdsByCategory 获取分类广告 @Summary 获取分类广告 @Description 根据分类获取广告列表,支持banner、video、native等多种广告类型 @Tags 广告 @Produce json @Security BearerAuth @Param category query string true "广告分类" @Param limit query int false "返回数量限制" default(10) @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/advertisements/adsbycategory [get]

func (*AdvertisementHandler) ScheduleAds

func (h *AdvertisementHandler) ScheduleAds(c *gin.Context)

ScheduleAds 调度广告 @Summary 调度广告 @Description 为指定视频内容调度合适的广告,根据用户画像、设备类型、地理位置等因素智能推荐广告 @Tags 广告 @Accept json @Produce json @Security BearerAuth @Param request body service.AdScheduleRequest true "广告调度请求" @Success 200 {object} service.AdScheduleResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/advertisements/schedule [post]

func (*AdvertisementHandler) TrackAdEvent

func (h *AdvertisementHandler) TrackAdEvent(c *gin.Context)

TrackAdEvent 追踪广告事件 @Summary 追踪广告事件 @Description 记录广告的各种事件(展示、点击、跳过、完成、错误、暂停、恢复等),用于广告效果分析和计费 @Tags 广告 @Accept json @Produce json @Security BearerAuth @Param event body service.AdEventRequest true "广告事件" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/advertisements/trackadevent [post]

type AudioSubtitleHandler

type AudioSubtitleHandler struct {
	// contains filtered or unexported fields
}

AudioSubtitleHandler 音频字幕处理处理器 (用户功能)

func NewAudioSubtitleHandler

func NewAudioSubtitleHandler(audioSubtitleService service.AudioSubtitleServiceInterface) *AudioSubtitleHandler

NewAudioSubtitleHandler 创建音频字幕处理处理器

func (*AudioSubtitleHandler) AnalyzeAudio

func (h *AudioSubtitleHandler) AnalyzeAudio(c *gin.Context)

AnalyzeAudio 分析音频 @Summary 分析音频 @Description 分析音频特征,包括音量、采样率、编解码器、噪声分析、语音片段识别和语言检测 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Success 200 {object} service.AudioAnalysisResult "音频分析结果,包含详细的音频特征数据" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/audio/analyze/{episode_id} [get]

func (*AudioSubtitleHandler) CancelTask

func (h *AudioSubtitleHandler) CancelTask(c *gin.Context)

CancelTask 取消任务 @Summary 取消任务 @Description 取消正在执行或排队中的音频/字幕处理任务 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param task_id path string true "任务ID" @Success 200 {object} map[string]string "取消成功消息" @Failure 400 {object} map[string]any "取消失败" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/audio-subtitle/task/{task_id}/cancel [post]

func (*AudioSubtitleHandler) EnhanceAudio

func (h *AudioSubtitleHandler) EnhanceAudio(c *gin.Context)

EnhanceAudio 增强音频 @Summary 增强音频 @Description 增强音频质量,包括降噪、标准化音量和语音增强等操作 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param request body service.AudioProcessRequest true "音频增强请求参数(自动应用降噪、标准化和语音增强)" @Success 200 {object} service.ProcessResponse "音频增强任务已创建" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/audio/enhance [post]

func (*AudioSubtitleHandler) ExtractAudio

func (h *AudioSubtitleHandler) ExtractAudio(c *gin.Context)

ExtractAudio 提取音频 @Summary 提取音频 @Description 从视频文件中提取音频并转换为指定格式(mp3/wav/aac/flac) @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Param format query string false "音频格式(默认:mp3)" Enums(mp3, wav, aac, flac) @Success 200 {object} service.ProcessResponse "音频提取任务已创建" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/audio/extract/{episode_id} [post]

func (*AudioSubtitleHandler) GenerateSubtitle

func (h *AudioSubtitleHandler) GenerateSubtitle(c *gin.Context)

GenerateSubtitle 生成字幕 @Summary 生成字幕 @Description 通过语音识别技术自动生成视频字幕文件(支持SRT格式) @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Param language query string false "字幕语言(默认:zh-CN)" Enums(zh-CN, en-US, ja-JP, ko-KR) @Success 200 {object} service.SubtitleGenerationResult "字幕生成成功,返回字幕文件路径和详细信息" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/subtitle/generate/{episode_id} [post]

func (*AudioSubtitleHandler) GetSupportedFormats

func (h *AudioSubtitleHandler) GetSupportedFormats(c *gin.Context)

GetSupportedFormats 获取支持的格式 @Summary 获取支持的格式 @Description 获取系统支持的音频格式和字幕格式列表 @Tags 音视频字幕处理 @Accept json @Produce json @Success 200 {object} map[string][]string "支持的音频和字幕格式列表" @Router /api/v1/audio-subtitle/formats [get]

func (*AudioSubtitleHandler) GetTaskStatus

func (h *AudioSubtitleHandler) GetTaskStatus(c *gin.Context)

GetTaskStatus 获取任务状态 @Summary 获取任务状态 @Description 查询音频或字幕处理任务的当前状态和进度信息 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param task_id path string true "任务ID" @Success 200 {object} service.ProcessTask "任务详细信息,包括状态、进度、结果等" @Failure 401 {object} map[string]any "未授权访问" @Failure 404 {object} map[string]any "任务不存在" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/audio-subtitle/task/{task_id} [get]

func (*AudioSubtitleHandler) GetUserTasks

func (h *AudioSubtitleHandler) GetUserTasks(c *gin.Context)

GetUserTasks 获取用户任务 @Summary 获取用户任务列表 @Description 分页查询当前用户的所有音频/字幕处理任务 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param type query string false "任务类型(audio或subtitle)" @Param page query int false "页码(默认:1)" @Param limit query int false "每页数量(默认:20)" @Success 200 {object} object{tasks=[]service.ProcessTask,total=int,page=int,limit=int} "任务列表和分页信息" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/audio-subtitle/tasks [get]

func (*AudioSubtitleHandler) ProcessAudio

func (h *AudioSubtitleHandler) ProcessAudio(c *gin.Context)

ProcessAudio 处理音频 @Summary 处理音频 @Description 执行各种音频处理操作(提取、增强、降噪、标准化、替换等),支持异步处理 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param request body service.AudioProcessRequest true "音频处理请求参数(operation可选值:extract/enhance/denoise/normalize/replace/analyze)" @Success 200 {object} service.ProcessResponse "处理任务已创建,返回任务ID和状态" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/audio/process [post]

func (*AudioSubtitleHandler) ProcessSubtitle

func (h *AudioSubtitleHandler) ProcessSubtitle(c *gin.Context)

ProcessSubtitle 处理字幕 @Summary 处理字幕 @Description 执行各种字幕处理操作(生成、提取、翻译、同步、样式调整等) @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param request body service.SubtitleProcessRequest true "字幕处理请求参数(operation可选值:generate/extract/translate/sync/style)" @Success 200 {object} service.ProcessResponse "字幕处理任务已创建" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/subtitle/process [post]

func (*AudioSubtitleHandler) SyncSubtitle

func (h *AudioSubtitleHandler) SyncSubtitle(c *gin.Context)

SyncSubtitle 同步字幕 @Summary 同步字幕 @Description 调整字幕时间轴,使其与视频音频同步 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Param request body object{subtitle_file=string} true "字幕同步请求参数" @Success 200 {object} service.ProcessResponse "字幕同步任务已创建" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/subtitle/sync/{episode_id} [post]

func (*AudioSubtitleHandler) TranslateSubtitle

func (h *AudioSubtitleHandler) TranslateSubtitle(c *gin.Context)

TranslateSubtitle 翻译字幕 @Summary 翻译字幕 @Description 将字幕文件从源语言翻译为目标语言,保持时间轴不变 @Tags 音视频字幕处理 @Accept json @Produce json @Security BearerAuth @Param request body object{subtitle_file=string,source_lang=string,target_lang=string} true "字幕翻译请求参数" @Success 200 {object} service.ProcessResponse "字幕翻译任务已创建" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权访问" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/subtitle/translate [post]

type AudioSubtitleManagementHandler

type AudioSubtitleManagementHandler struct {
	// contains filtered or unexported fields
}

AudioSubtitleManagementHandler 音频字幕管理处理器 (管理后台)

func NewAudioSubtitleManagementHandler

func NewAudioSubtitleManagementHandler(audioSubtitleService service.AudioSubtitleManagementServiceInterface) *AudioSubtitleManagementHandler

NewAudioSubtitleManagementHandler 创建音频字幕管理处理器

func (*AudioSubtitleManagementHandler) CheckSyncStatus

func (h *AudioSubtitleManagementHandler) CheckSyncStatus(c *gin.Context)

CheckSyncStatus 检查同步状态 @Summary 检查同步状态 @Description 检查指定剧集的音频字幕同步状态,包括同步精度和偏移量 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param episode_id query int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/audio-subtitle/sync/status [get]

func (*AudioSubtitleManagementHandler) CreateAudioTrack

func (h *AudioSubtitleManagementHandler) CreateAudioTrack(c *gin.Context)

CreateAudioTrack 创建音频轨道 @Summary 创建音频轨道 @Description 为指定剧集创建新的音频轨道,支持多语言、多音轨类型(原声、配音、解说等) @Tags 音视频字幕管理 @Accept json @Produce json @Security BearerAuth @Param request body model.AudioTrackCreateRequest true "音频轨道创建请求" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-tracks [post]

func (*AudioSubtitleManagementHandler) CreateSubtitle

func (h *AudioSubtitleManagementHandler) CreateSubtitle(c *gin.Context)

CreateSubtitle 创建字幕 @Summary 创建字幕文件 @Description 为指定剧集创建新的字幕文件,支持多语言、多格式(SRT、VTT、ASS等) @Tags 音视频字幕管理 @Accept json @Produce json @Security BearerAuth @Param request body model.SubtitleCreateRequest true "字幕创建请求" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitles [post]

func (*AudioSubtitleManagementHandler) DeleteAudioTrack

func (h *AudioSubtitleManagementHandler) DeleteAudioTrack(c *gin.Context)

DeleteAudioTrack 删除音频轨道 @Summary 删除音频轨道 @Description 软删除指定的音频轨道(不会从数据库中物理删除) @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param track_id path int true "音频轨道ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-tracks/{track_id} [delete]

func (*AudioSubtitleManagementHandler) DeleteSubtitle

func (h *AudioSubtitleManagementHandler) DeleteSubtitle(c *gin.Context)

DeleteSubtitle 删除字幕 @Summary 删除字幕 @Description 软删除指定的字幕文件(不会从数据库中物理删除) @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param subtitle_id path int true "字幕ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitles/{subtitle_id} [delete]

func (*AudioSubtitleManagementHandler) GenerateQualityReport

func (h *AudioSubtitleManagementHandler) GenerateQualityReport(c *gin.Context)

GenerateQualityReport 生成媒体质量报告 @Summary 生成媒体质量报告 @Description 为指定剧集生成完整的媒体质量报告,包括所有音频轨道和字幕的质量评估 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param episode_id query int true "剧集ID" @Success 200 {object} model.MediaQualityReport @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/audio-subtitle/analytics/report [get]

func (*AudioSubtitleManagementHandler) GetAudioQualityCheck

func (h *AudioSubtitleManagementHandler) GetAudioQualityCheck(c *gin.Context)

GetAudioQualityCheck 获取音频质量检测结果 @Summary 获取音频质量检测结果 @Description 根据检测ID获取音频质量检测的详细结果,包括各项评分和问题建议 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param check_id path int true "检测ID" @Success 200 {object} model.AudioQualityCheck @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-quality/check/{check_id} [get]

func (*AudioSubtitleManagementHandler) GetAudioQualityHistory

func (h *AudioSubtitleManagementHandler) GetAudioQualityHistory(c *gin.Context)

GetAudioQualityHistory 获取音频质量检测历史 @Summary 获取音频质量检测历史 @Description 获取指定音频轨道的所有历史质量检测记录,用于跟踪质量变化趋势 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param track_id path int true "音频轨道ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-quality/history/{track_id} [get]

func (*AudioSubtitleManagementHandler) GetAudioTrack

func (h *AudioSubtitleManagementHandler) GetAudioTrack(c *gin.Context)

GetAudioTrack 获取音频轨道详情 @Summary 获取音频轨道详情 @Description 根据音频轨道ID获取详细信息,包括音频编码、比特率、质量评分等 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param track_id path int true "音频轨道ID" @Success 200 {object} model.AudioTrack @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-tracks/{track_id} [get]

func (*AudioSubtitleManagementHandler) GetAudioTracksByEpisode

func (h *AudioSubtitleManagementHandler) GetAudioTracksByEpisode(c *gin.Context)

GetAudioTracksByEpisode 获取剧集的音频轨道 @Summary 获取剧集的所有音频轨道 @Description 获取指定剧集的所有音频轨道列表,包括不同语言、不同质量级别的音轨 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param episode_id path int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-tracks/episode/{episode_id} [get]

func (*AudioSubtitleManagementHandler) GetQualityAnalytics

func (h *AudioSubtitleManagementHandler) GetQualityAnalytics(c *gin.Context)

GetQualityAnalytics 获取质量分析 @Summary 获取质量分析数据 @Description 获取指定剧集的质量分析数据和统计信息,用于质量监控和改进 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param episode_id query int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/audio-subtitle/analytics/overview [get]

func (*AudioSubtitleManagementHandler) GetSubtitle

func (h *AudioSubtitleManagementHandler) GetSubtitle(c *gin.Context)

GetSubtitle 获取字幕详情 @Summary 获取字幕详情 @Description 根据字幕ID获取详细信息,包括语言、格式、同步状态、质量评分等 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param subtitle_id path int true "字幕ID" @Success 200 {object} model.Subtitle @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitles/{subtitle_id} [get]

func (*AudioSubtitleManagementHandler) GetSubtitleQualityCheck

func (h *AudioSubtitleManagementHandler) GetSubtitleQualityCheck(c *gin.Context)

GetSubtitleQualityCheck 获取字幕质量检测结果 @Summary 获取字幕质量检测结果 @Description 根据检测ID获取字幕质量检测的详细结果,包括各项评分和发现的问题 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param check_id path int true "检测ID" @Success 200 {object} model.SubtitleQualityCheck @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitle-quality/check/{check_id} [get]

func (*AudioSubtitleManagementHandler) GetSubtitleQualityHistory

func (h *AudioSubtitleManagementHandler) GetSubtitleQualityHistory(c *gin.Context)

GetSubtitleQualityHistory 获取字幕质量检测历史 @Summary 获取字幕质量检测历史 @Description 获取指定字幕的所有历史质量检测记录,用于跟踪质量改进情况 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param subtitle_id path int true "字幕ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitle-quality/history/{subtitle_id} [get]

func (*AudioSubtitleManagementHandler) GetSubtitlesByEpisode

func (h *AudioSubtitleManagementHandler) GetSubtitlesByEpisode(c *gin.Context)

GetSubtitlesByEpisode 获取剧集的字幕 @Summary 获取剧集的所有字幕 @Description 获取指定剧集的所有字幕文件列表,包括不同语言、不同类型的字幕 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param episode_id path int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitles/episode/{episode_id} [get]

func (*AudioSubtitleManagementHandler) RunAudioQualityCheck

func (h *AudioSubtitleManagementHandler) RunAudioQualityCheck(c *gin.Context)

RunAudioQualityCheck 运行音频质量检测 @Summary 运行音频质量检测 @Description 对指定的音频轨道执行质量检测,包括音量、清晰度、噪音、失真等多维度分析 @Tags 音视频字幕管理 @Accept json @Produce json @Security BearerAuth @Param track_id path int true "音频轨道ID" @Param request body model.AudioQualityCheckRequest true "音频质量检测请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-quality/check/{track_id} [post]

func (*AudioSubtitleManagementHandler) RunSubtitleQualityCheck

func (h *AudioSubtitleManagementHandler) RunSubtitleQualityCheck(c *gin.Context)

RunSubtitleQualityCheck 运行字幕质量检测 @Summary 运行字幕质量检测 @Description 对指定的字幕文件执行质量检测,包括时间同步、拼写、语法、一致性、可读性等分析 @Tags 音视频字幕管理 @Accept json @Produce json @Security BearerAuth @Param subtitle_id path int true "字幕ID" @Param request body model.SubtitleQualityCheckRequest true "字幕质量检测请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitle-quality/check/{subtitle_id} [post]

func (*AudioSubtitleManagementHandler) SetDefaultAudioTrack

func (h *AudioSubtitleManagementHandler) SetDefaultAudioTrack(c *gin.Context)

SetDefaultAudioTrack 设置默认音频轨道 @Summary 设置默认音频轨道 @Description 将指定音频轨道设置为该剧集的默认音轨,其他音轨的默认状态将被取消 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param track_id path int true "音频轨道ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-tracks/{track_id}/set-default [post]

func (*AudioSubtitleManagementHandler) SetDefaultSubtitle

func (h *AudioSubtitleManagementHandler) SetDefaultSubtitle(c *gin.Context)

SetDefaultSubtitle 设置默认字幕 @Summary 设置默认字幕 @Description 将指定字幕设置为该剧集的默认字幕,其他字幕的默认状态将被取消 @Tags 音视频字幕管理 @Produce json @Security BearerAuth @Param subtitle_id path int true "字幕ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitles/{subtitle_id}/set-default [post]

func (*AudioSubtitleManagementHandler) SyncAudioSubtitle

func (h *AudioSubtitleManagementHandler) SyncAudioSubtitle(c *gin.Context)

SyncAudioSubtitle 音频字幕同步 @Summary 音频字幕同步 @Description 执行音频轨道和字幕的时间同步,支持自动同步和手动设置时间偏移 @Tags 音视频字幕管理 @Accept json @Produce json @Security BearerAuth @Param request body model.AudioSubtitleSyncRequest true "音频字幕同步请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/sync [post]

func (*AudioSubtitleManagementHandler) UpdateAudioTrack

func (h *AudioSubtitleManagementHandler) UpdateAudioTrack(c *gin.Context)

UpdateAudioTrack 更新音频轨道 @Summary 更新音频轨道信息 @Description 更新指定音频轨道的名称、质量级别、激活状态等信息 @Tags 音视频字幕管理 @Accept json @Produce json @Security BearerAuth @Param track_id path int true "音频轨道ID" @Param request body model.AudioTrackUpdateRequest true "音频轨道更新请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/audio-tracks/{track_id} [put]

func (*AudioSubtitleManagementHandler) UpdateSubtitle

func (h *AudioSubtitleManagementHandler) UpdateSubtitle(c *gin.Context)

UpdateSubtitle 更新字幕 @Summary 更新字幕信息 @Description 更新指定字幕的标题、同步状态、时间偏移量等信息 @Tags 音视频字幕管理 @Accept json @Produce json @Security BearerAuth @Param subtitle_id path int true "字幕ID" @Param request body model.SubtitleUpdateRequest true "字幕更新请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /api/v1/admin/audio-subtitle/subtitles/{subtitle_id} [put]

type AuditLogHandler

type AuditLogHandler struct {
	// contains filtered or unexported fields
}

AuditLogHandler 审计日志处理器

func NewAuditLogHandler

func NewAuditLogHandler(auditLogService service.AuditLogService) *AuditLogHandler

NewAuditLogHandler 创建审计日志处理器

func (*AuditLogHandler) ExportAuditLogs

func (h *AuditLogHandler) ExportAuditLogs(c *gin.Context)

ExportAuditLogs 导出审计日志(管理员) @Summary 导出审计日志 @Description 导出审计日志为CSV或Excel文件 @Tags 管理后台 - 审计 @Produce json @Security BearerAuth @Param format query string false "导出格式" default(csv) Enums(csv, xlsx) @Param user_id query int false "用户ID" @Param action_type query string false "操作类型" @Param start_date query string false "开始日期" format(date) @Param end_date query string false "结束日期" format(date) @Success 200 {object} map[string]any "导出任务已创建" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/audit/export [post]

func (*AuditLogHandler) GetAdminAuditLogs

func (h *AuditLogHandler) GetAdminAuditLogs(c *gin.Context)

GetAdminAuditLogs 获取审计日志(管理员) @Summary 获取审计日志 @Description 管理员查看系统审计日志,包括所有用户和管理员的操作记录 @Tags 管理后台 - 审计 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(50) @Param user_id query int false "用户ID" @Param action_type query string false "操作类型" @Param resource_type query string false "资源类型" Enums(user, content, comment, order) @Param start_date query string false "开始日期" format(date) @Param end_date query string false "结束日期" format(date) @Success 200 {object} map[string]any "审计日志列表" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/audit/logs [get]

func (*AuditLogHandler) GetExportTaskStatus

func (h *AuditLogHandler) GetExportTaskStatus(c *gin.Context)

GetExportTaskStatus 获取导出任务状态 @Summary 获取导出任务状态 @Description 查询审计日志导出任务的进度和下载链接 @Tags 管理后台 - 审计 @Produce json @Security BearerAuth @Param task_id path string true "任务ID" @Success 200 {object} map[string]any "任务状态" @Failure 404 {object} map[string]any "任务不存在" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/audit/export/{task_id} [get]

func (*AuditLogHandler) GetLoginHistory

func (h *AuditLogHandler) GetLoginHistory(c *gin.Context)

GetLoginHistory 获取登录历史 @Summary 获取登录历史 @Description 获取当前用户的登录历史记录,包括登录时间、IP、设备等信息 @Tags 审计日志 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any "登录历史列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/users/login-history [get]

func (*AuditLogHandler) GetUserActivityLog

func (h *AuditLogHandler) GetUserActivityLog(c *gin.Context)

GetUserActivityLog 获取用户操作日志 @Summary 获取用户操作日志 @Description 获取当前用户的操作记录,包括登录、观看、评论等行为 @Tags 审计日志 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param action_type query string false "操作类型" Enums(login, view, comment, like, download) @Param start_date query string false "开始日期" format(date) @Param end_date query string false "结束日期" format(date) @Success 200 {object} map[string]any "操作日志列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/users/activity-log [get]

func (*AuditLogHandler) GetUserAuditDetail

func (h *AuditLogHandler) GetUserAuditDetail(c *gin.Context)

GetUserAuditDetail 获取用户操作审计详情(管理员) @Summary 获取用户操作审计 @Description 管理员查看指定用户的详细操作记录 @Tags 管理后台 - 审计 @Produce json @Security BearerAuth @Param user_id path int true "用户ID" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(50) @Param start_date query string false "开始日期" format(date) @Param end_date query string false "结束日期" format(date) @Success 200 {object} map[string]any "用户审计记录" @Failure 400 {object} map[string]any "无效的用户ID" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "权限不足" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/audit/user/{user_id} [get]

func (*AuditLogHandler) GetUserDevices

func (h *AuditLogHandler) GetUserDevices(c *gin.Context)

GetUserDevices 获取已登录设备列表 @Summary 获取已登录设备列表 @Description 获取当前用户所有已登录的设备信息 @Tags 审计日志 @Produce json @Security BearerAuth @Success 200 {object} map[string]any "设备列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/users/devices [get]

func (*AuditLogHandler) LogoutDevice

func (h *AuditLogHandler) LogoutDevice(c *gin.Context)

LogoutDevice 登出指定设备 @Summary 登出指定设备 @Description 强制登出指定设备的会话 @Tags 审计日志 @Accept json @Produce json @Security BearerAuth @Param device_id path string true "设备ID" @Success 200 {object} map[string]any "登出成功" @Failure 400 {object} map[string]any "无效的设备ID" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/users/devices/{device_id}/logout [post]

type AuthHandler

type AuthHandler struct {
	// contains filtered or unexported fields
}

AuthHandler 认证处理器

func NewAuthHandler

func NewAuthHandler(services *service.Services) *AuthHandler

NewAuthHandler 创建认证处理器

func (*AuthHandler) ForgotPassword

func (h *AuthHandler) ForgotPassword(c *gin.Context)

ForgotPassword 忘记密码 @Summary 忘记密码 @Description 发送密码重置邮件 @Tags 认证 @Accept json @Produce json @Param request body model.ForgotPasswordRequest true "忘记密码请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Router /auth/forgot-password [post]

func (*AuthHandler) Login

func (h *AuthHandler) Login(c *gin.Context)

Login 用户登录 @Summary 用户登录 @Description 用户账户登录 @Tags 认证 @Accept json @Produce json @Param request body model.LoginRequest true "登录信息" @Success 200 {object} model.AuthResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /auth/login [post]

func (*AuthHandler) Logout

func (h *AuthHandler) Logout(c *gin.Context)

Logout 用户登出 @Summary 用户登出 @Description 用户账户登出,将令牌加入黑名单 @Tags 认证 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Router /auth/logout [post]

func (*AuthHandler) RefreshToken

func (h *AuthHandler) RefreshToken(c *gin.Context)

RefreshToken 刷新令牌 @Summary 刷新访问令牌 @Description 使用刷新令牌获取新的访问令牌 @Tags 认证 @Accept json @Produce json @Param request body model.RefreshTokenRequest true "刷新令牌请求" @Success 200 {object} model.AuthResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /auth/refresh [post]

func (*AuthHandler) Register

func (h *AuthHandler) Register(c *gin.Context)

Register 用户注册 @Summary 用户注册 @Description 创建新用户账户 @Tags 认证 @Accept json @Produce json @Param request body model.RegisterRequest true "注册信息" @Success 201 {object} model.AuthResponse @Failure 400 {object} map[string]any @Failure 409 {object} map[string]any @Router /auth/register [post]

func (*AuthHandler) ResetPassword

func (h *AuthHandler) ResetPassword(c *gin.Context)

ResetPassword 重置密码 @Summary 重置密码 @Description 使用重置令牌重置密码 @Tags 认证 @Accept json @Produce json @Param request body model.ResetPasswordRequest true "重置密码请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Router /auth/reset-password [post]

type BanUserRequest

type BanUserRequest struct {
	Duration int64  `json:"duration" binding:"required,min=60,max=86400"` // 禁言时长(秒),1分钟到1天
	Reason   string `json:"reason" binding:"required,min=1,max=200"`      // 禁言原因
}

BanUserRequest 禁言用户请求

type CSRFHandler

type CSRFHandler struct {
	// contains filtered or unexported fields
}

CSRFHandler CSRF令牌处理器

func NewCSRFHandler

func NewCSRFHandler(securityMiddleware *middleware.SecurityMiddleware) *CSRFHandler

NewCSRFHandler 创建CSRF处理器

func (*CSRFHandler) GetCSRFToken

func (h *CSRFHandler) GetCSRFToken(c *gin.Context)

GetCSRFToken 获取CSRF令牌 @Summary 获取CSRF令牌 @Description 为已认证用户生成CSRF(跨站请求伪造)保护令牌,用于防止CSRF攻击 @Tags 安全 @Produce json @Security BearerAuth @Success 200 {object} map[string]any "成功返回CSRF令牌和过期时间" @Failure 401 {object} map[string]any "用户未认证" @Failure 500 {object} map[string]any "服务器内部错误" @Router /api/v1/security/csrf-token [get]

type ChatHandler

type ChatHandler struct {
	// contains filtered or unexported fields
}

ChatHandler 聊天处理器

func NewChatHandler

func NewChatHandler(chatService service.ChatServiceInterface) *ChatHandler

NewChatHandler 创建聊天处理器

func (*ChatHandler) CreateRoom

func (h *ChatHandler) CreateRoom(c *gin.Context)

CreateRoom 创建聊天室 @Summary 创建聊天室 @Description 创建新的聊天室 @Tags 聊天室 @Accept json @Produce json @Security Bearer @Param request body service.CreateChatRoomRequest true "聊天室信息" @Success 201 {object} service.ChatRoomResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/rooms [post]

func (*ChatHandler) DeleteMessage

func (h *ChatHandler) DeleteMessage(c *gin.Context)

DeleteMessage 删除消息 @Summary 删除消息 @Description 删除指定的聊天消息(需要是消息作者或管理员) @Tags 聊天 @Produce json @Security Bearer @Param message_id path int true "消息ID" @Success 200 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/messages/{message_id} [delete]

func (*ChatHandler) GetEpisodeRoom

func (h *ChatHandler) GetEpisodeRoom(c *gin.Context)

GetEpisodeRoom 获取剧集聊天室 @Summary 获取剧集聊天室 @Description 获取或创建剧集专属聊天室 @Tags 聊天室 @Produce json @Param episode_id path int true "剧集ID" @Success 200 {object} service.ChatRoomResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/rooms/episode/{episode_id} [get]

func (*ChatHandler) GetMessageByID

func (h *ChatHandler) GetMessageByID(c *gin.Context)

GetMessageByID 获取单条消息 @Summary 获取单条消息 @Description 根据ID获取单条聊天消息 @Tags 聊天 @Produce json @Security Bearer @Param message_id path int true "消息ID" @Success 200 {object} service.ChatMessage @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /chat/messages/{message_id} [get]

func (*ChatHandler) GetMessages

func (h *ChatHandler) GetMessages(c *gin.Context)

GetMessages 获取聊天消息列表 @Summary 获取聊天消息列表 @Description 获取指定聊天室的消息历史 @Tags 聊天 @Accept json @Produce json @Security Bearer @Param request body service.GetChatMessagesRequest true "查询条件" @Success 200 {object} service.ChatMessageListResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/messages/list [post]

func (*ChatHandler) GetRoom

func (h *ChatHandler) GetRoom(c *gin.Context)

GetRoom 获取聊天室信息 @Summary 获取聊天室信息 @Description 获取指定聊天室的详细信息 @Tags 聊天室 @Produce json @Param room_id path string true "聊天室ID" @Success 200 {object} service.ChatRoomResponse @Failure 404 {object} map[string]any @Router /chat/rooms/{room_id} [get]

func (*ChatHandler) GetRoomUsers

func (h *ChatHandler) GetRoomUsers(c *gin.Context)

GetRoomUsers 获取房间用户列表 @Summary 获取房间用户列表 @Description 获取当前在线的房间用户 @Tags 聊天室 @Produce json @Security Bearer @Param room_id path string true "聊天室ID" @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/rooms/{room_id}/users [get]

func (*ChatHandler) GetRooms

func (h *ChatHandler) GetRooms(c *gin.Context)

GetRooms 获取聊天室列表 @Summary 获取聊天室列表 @Description 获取公开聊天室列表 @Tags 聊天室 @Produce json @Param room_type query string false "房间类型" @Param page query int false "页码" default(1) @Param page_size query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/rooms [get]

func (*ChatHandler) JoinRoom

func (h *ChatHandler) JoinRoom(c *gin.Context)

JoinRoom WebSocket连接 - 加入聊天室 @Summary WebSocket连接聊天室 @Description 建立WebSocket连接并加入聊天室进行实时通信 @Tags 聊天 @Security Bearer @Param room_id path string true "聊天室ID" @Success 101 {string} string "Switching Protocols" @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /chat/rooms/{room_id}/ws [get]

func (*ChatHandler) KickUser

func (h *ChatHandler) KickUser(c *gin.Context)

KickUser 踢出用户 @Summary 踢出用户 @Description 将用户踢出聊天室(需要管理员权限) @Tags 聊天室管理 @Accept json @Produce json @Security Bearer @Param room_id path string true "聊天室ID" @Param request body map[string]int64 true "用户ID" @Success 200 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/rooms/{room_id}/kick [post]

func (*ChatHandler) MuteUser

func (h *ChatHandler) MuteUser(c *gin.Context)

MuteUser 禁言用户 @Summary 禁言用户 @Description 禁止用户在聊天室发言(需要管理员权限) @Tags 聊天室管理 @Accept json @Produce json @Security Bearer @Param room_id path string true "聊天室ID" @Param request body map[string]any true "禁言信息" @Success 200 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/rooms/{room_id}/mute [post]

func (*ChatHandler) SendMessage

func (h *ChatHandler) SendMessage(c *gin.Context)

SendMessage 发送聊天消息 @Summary 发送聊天消息 @Description 在聊天室中发送消息 @Tags 聊天 @Accept json @Produce json @Security Bearer @Param request body service.SendChatMessageRequest true "消息内容" @Success 200 {object} service.ChatMessage @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /chat/messages [post]

type ConfigHandler

type ConfigHandler struct{}

ConfigHandler 配置处理器

func NewConfigHandler

func NewConfigHandler() *ConfigHandler

NewConfigHandler 创建配置处理器

func (*ConfigHandler) GetPublicConfig

func (h *ConfigHandler) GetPublicConfig(c *gin.Context)

GetPublicConfig 获取公共配置 @Summary 获取公共配置 @Description 获取前端需要的公共配置信息 @Tags 配置 @Produce json @Success 200 {object} map[string]any @Router /config/public [get]

type ContentHandler

type ContentHandler struct {
	// contains filtered or unexported fields
}

ContentHandler 内容处理器

func NewContentHandler

func NewContentHandler(services *service.Services) *ContentHandler

NewContentHandler 创建内容处理器

func (*ContentHandler) GetCategories

func (h *ContentHandler) GetCategories(c *gin.Context)

GetCategories 获取分类列表 @Summary 获取分类列表 @Description 获取所有可用的内容分类 @Tags 内容管理 @Produce json @Success 200 {object} model.CategoryListResponse @Failure 500 {object} map[string]any @Router /api/v1/content/categories [get]

func (*ContentHandler) GetEpisodeDetail

func (h *ContentHandler) GetEpisodeDetail(c *gin.Context)

GetEpisodeDetail 获取分集详情 @Summary 获取分集详情 @Description 获取指定分集的详细信息 @Tags 内容管理 @Produce json @Param id path int true "分集ID" @Success 200 {object} model.EpisodeResponse @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/content/episode/{id} [get]

func (*ContentHandler) GetFeatured

func (h *ContentHandler) GetFeatured(c *gin.Context)

GetFeatured 获取推荐内容 @Summary 获取推荐内容 @Description 获取首页推荐的精选内容 @Tags 内容管理 @Produce json @Success 200 {array} model.SeriesResponse @Failure 500 {object} map[string]any @Router /api/v1/content/featured [get]

func (*ContentHandler) GetLatest

func (h *ContentHandler) GetLatest(c *gin.Context)

GetLatest 获取最新内容 @Summary 获取最新内容 @Description 获取最新上线的剧集内容 @Tags 内容管理 @Produce json @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.SeriesListResponse @Failure 500 {object} map[string]any @Router /api/v1/content/latest [get]

func (*ContentHandler) GetSeriesByCategory

func (h *ContentHandler) GetSeriesByCategory(c *gin.Context)

GetSeriesByCategory 根据分类获取剧集 @Summary 根据分类获取剧集 @Description 获取指定分类下的所有剧集 @Tags 内容管理 @Produce json @Param id path int true "分类ID" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.SeriesListResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/content/category/{id}/series [get]

func (*ContentHandler) GetSeriesDetail

func (h *ContentHandler) GetSeriesDetail(c *gin.Context)

GetSeriesDetail 获取剧集详情 @Summary 获取剧集详情 @Description 获取指定剧集的详细信息 @Tags 内容管理 @Produce json @Param id path int true "剧集ID" @Success 200 {object} model.SeriesResponse @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/content/series/{id} [get]

func (*ContentHandler) GetTrending

func (h *ContentHandler) GetTrending(c *gin.Context)

GetTrending 获取热门内容 @Summary 获取热门内容 @Description 获取当前热门的剧集内容 @Tags 内容管理 @Produce json @Success 200 {object} model.TrendingResponse @Failure 500 {object} map[string]any @Router /api/v1/content/trending [get]

func (*ContentHandler) SearchContent

func (h *ContentHandler) SearchContent(c *gin.Context)

SearchContent 搜索内容 @Summary 搜索内容 @Description 根据关键词搜索剧集内容,支持多种筛选和排序方式 @Tags 内容管理 @Produce json @Param q query string true "搜索关键词" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param category query string false "分类筛选" @Param language query string false "语言筛选(ISO 639-1标准,如:zh=中文, en=英文, ja=日文, ko=韩文)" @Param country query string false "国家/地区筛选(ISO 3166-1标准,如:CN=中国, US=美国, JP=日本, KR=韩国)" @Param sort query string false "排序方式:relevance(相关度)、latest(最新)、popular(热度)、rating(评分)" default(relevance) Enums(relevance, latest, popular, rating) @Success 200 {object} model.SearchResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/content/search [get]

type ContentManagementHandler

type ContentManagementHandler struct {
	// contains filtered or unexported fields
}

ContentManagementHandler 内容管理处理器

func NewContentManagementHandler

func NewContentManagementHandler(contentMgmtService service.ContentManagementServiceInterface) *ContentManagementHandler

NewContentManagementHandler 创建内容管理处理器

func (*ContentManagementHandler) BatchCreateContent

func (h *ContentManagementHandler) BatchCreateContent(c *gin.Context)

BatchCreateContent 批量创建内容 @Summary 批量创建内容 @Description 管理员批量创建剧集或分集 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.BatchContentCreateRequest true "批量创建请求" @Success 200 {object} model.BatchContentCreateResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/batch-create [post]

func (*ContentManagementHandler) BatchUpdateContent

func (h *ContentManagementHandler) BatchUpdateContent(c *gin.Context)

BatchUpdateContent 批量更新内容 @Summary 批量更新内容 @Description 管理员批量更新内容信息 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ContentBatchUpdateRequest true "批量更新请求" @Success 200 {object} model.ContentBatchUpdateResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/batch-update [put]

func (*ContentManagementHandler) CheckContentDuplicate

func (h *ContentManagementHandler) CheckContentDuplicate(c *gin.Context)

CheckContentDuplicate 检查内容重复 @Summary 检查内容重复 @Description 检查内容是否与现有内容重复 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ContentDuplicateCheckRequest true "重复检查请求" @Success 200 {object} model.ContentDuplicateCheckResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/duplicate-check [post]

func (*ContentManagementHandler) CheckContentQuality

func (h *ContentManagementHandler) CheckContentQuality(c *gin.Context)

CheckContentQuality 检查内容质量 @Summary 检查内容质量 @Description 对指定内容进行质量检查和分析 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ContentQualityCheckRequest true "质量检查请求" @Success 200 {object} model.ContentQualityCheckResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/quality-check [post]

func (*ContentManagementHandler) CreateCategory

func (h *ContentManagementHandler) CreateCategory(c *gin.Context)

CreateCategory 创建分类 @Summary 创建分类 @Description 管理员创建新的内容分类 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body map[string]any true "分类创建请求" @Success 201 {object} model.Category @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/categories [post]

func (*ContentManagementHandler) CreateEpisode

func (h *ContentManagementHandler) CreateEpisode(c *gin.Context)

CreateEpisode 创建分集 @Summary 创建分集 @Description 管理员为指定剧集创建新的分集 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.AdminEpisodeCreateRequest true "分集创建请求" @Success 201 {object} model.ContentCreateResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/episodes [post]

func (*ContentManagementHandler) CreateSeries

func (h *ContentManagementHandler) CreateSeries(c *gin.Context)

CreateSeries 创建剧集 @Summary 创建剧集 @Description 管理员创建新的剧集内容 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.AdminContentCreateRequest true "剧集创建请求" @Success 201 {object} model.ContentCreateResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/series [post]

func (*ContentManagementHandler) DeleteCategory

func (h *ContentManagementHandler) DeleteCategory(c *gin.Context)

DeleteCategory 删除分类 @Summary 删除分类 @Description 管理员删除分类 @Tags 内容管理 @Produce json @Security BearerAuth @Param id path int true "分类ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/categories/{id} [delete]

func (*ContentManagementHandler) DeleteSeries

func (h *ContentManagementHandler) DeleteSeries(c *gin.Context)

DeleteSeries 删除剧集 @Summary 删除剧集 @Description 管理员删除剧集(软删除) @Tags 内容管理 @Produce json @Security BearerAuth @Param id path int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/series/{id} [delete]

func (*ContentManagementHandler) ExportContent

func (h *ContentManagementHandler) ExportContent(c *gin.Context)

ExportContent 导出内容 @Summary 导出内容 @Description 导出指定内容为文件 @Tags 内容管理 @Produce json @Security BearerAuth @Param content_ids query string true "内容ID列表(逗号分隔)" @Param format query string true "导出格式" Enums(csv,json,excel) @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/export [get]

func (*ContentManagementHandler) GetContentAnalytics

func (h *ContentManagementHandler) GetContentAnalytics(c *gin.Context)

GetContentAnalytics 获取内容分析 @Summary 获取内容分析 @Description 获取内容的详细分析报告 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ContentAnalyticsRequest true "分析请求" @Success 200 {object} model.ContentAnalyticsResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/analytics [post]

func (*ContentManagementHandler) GetContentPerformance

func (h *ContentManagementHandler) GetContentPerformance(c *gin.Context)

GetContentPerformance 获取内容表现 @Summary 获取内容表现 @Description 获取单个内容的表现数据 @Tags 内容管理 @Produce json @Security BearerAuth @Param id path int true "内容ID" @Param content_type query string true "内容类型" Enums(series,episode) @Param time_range query string false "时间范围" default("30d") @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/{id}/performance [get]

func (*ContentManagementHandler) GetContentSchedule

func (h *ContentManagementHandler) GetContentSchedule(c *gin.Context)

GetContentSchedule 获取内容排期 @Summary 获取内容排期 @Description 获取指定排期的详细信息 @Tags 内容管理 @Produce json @Security BearerAuth @Param schedule_id path string true "排期ID" @Success 200 {object} model.ContentScheduleResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/content/schedule/{schedule_id} [get]

func (*ContentManagementHandler) GetImportTemplate

func (h *ContentManagementHandler) GetImportTemplate(c *gin.Context)

GetImportTemplate 获取导入模板 @Summary 获取导入模板 @Description 获取内容导入的模板和说明 @Tags 内容管理 @Produce json @Security BearerAuth @Param content_type query string true "内容类型" Enums(series,episodes) @Param format query string true "格式" Enums(csv,json,excel) @Success 200 {object} model.ContentImportTemplate @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/import-template [get]

func (*ContentManagementHandler) ImportContent

func (h *ContentManagementHandler) ImportContent(c *gin.Context)

ImportContent 导入内容 @Summary 导入内容 @Description 从文件或数据导入内容 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param data formData file true "导入文件" @Param template formData string true "模板配置" @Success 200 {object} model.BatchContentCreateResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/import [post]

func (*ContentManagementHandler) ScheduleContent

func (h *ContentManagementHandler) ScheduleContent(c *gin.Context)

ScheduleContent 内容排期 @Summary 内容排期 @Description 为内容设置发布排期 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param request body model.ContentScheduleRequest true "排期请求" @Success 200 {object} model.ContentScheduleResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/schedule [post]

func (*ContentManagementHandler) UpdateCategory

func (h *ContentManagementHandler) UpdateCategory(c *gin.Context)

UpdateCategory 更新分类 @Summary 更新分类 @Description 管理员更新分类信息 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "分类ID" @Param updates body map[string]any true "更新数据" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/categories/{id} [put]

func (*ContentManagementHandler) UpdateSeries

func (h *ContentManagementHandler) UpdateSeries(c *gin.Context)

UpdateSeries 更新剧集 @Summary 更新剧集 @Description 管理员更新剧集信息 @Tags 内容管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "剧集ID" @Param request body model.AdminContentUpdateRequest true "更新请求" @Success 200 {object} model.ContentUpdateResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/content/series/{id} [put]

type ContentSecurityHandler

type ContentSecurityHandler struct {
	// contains filtered or unexported fields
}

ContentSecurityHandler 内容安全处理器

func NewContentSecurityHandler

func NewContentSecurityHandler(securityService service.ContentSecurityServiceInterface) *ContentSecurityHandler

NewContentSecurityHandler 创建内容安全处理器

func (*ContentSecurityHandler) AssignReviewTasks

func (h *ContentSecurityHandler) AssignReviewTasks(c *gin.Context)

AssignReviewTasks 分配审核任务 @Summary 分配审核任务 @Description 将审核任务分配给指定的审核员 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param request body model.ReviewTaskAssignRequest true "任务分配请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/review/assign [post]

func (*ContentSecurityHandler) CreateAIModel

func (h *ContentSecurityHandler) CreateAIModel(c *gin.Context)

CreateAIModel 创建AI模型 @Summary 创建AI审核模型 @Description 创建新的AI内容审核模型配置 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param request body map[string]any true "AI模型配置数据" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/ai-models [post]

func (*ContentSecurityHandler) CreateReviewWorkflow

func (h *ContentSecurityHandler) CreateReviewWorkflow(c *gin.Context)

CreateReviewWorkflow 创建审核工作流 @Summary 创建审核工作流 @Description 创建新的内容审核工作流,定义审核步骤和规则 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param request body model.ReviewWorkflowCreateRequest true "工作流创建请求" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/workflows [post]

func (*ContentSecurityHandler) CreateViolationReport

func (h *ContentSecurityHandler) CreateViolationReport(c *gin.Context)

CreateViolationReport 创建违规举报 @Summary 创建违规举报 @Description 用户举报违规内容,支持匿名举报 @Tags 内容安全 @Accept json @Produce json @Param request body model.ViolationReportCreateRequest true "举报请求参数" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Router /admin/security/reports [post]

func (*ContentSecurityHandler) GetAIModels

func (h *ContentSecurityHandler) GetAIModels(c *gin.Context)

GetAIModels 获取AI模型列表 @Summary 获取AI模型列表 @Description 获取所有AI审核模型配置列表,可按类型筛选 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param model_type query string false "模型类型" @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/ai-models [get]

func (*ContentSecurityHandler) GetActiveTakedowns

func (h *ContentSecurityHandler) GetActiveTakedowns(c *gin.Context)

GetActiveTakedowns 获取活跃下架记录 @Summary 获取活跃下架记录 @Description 获取所有当前处于下架状态的内容列表 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/takedowns/active [get]

func (*ContentSecurityHandler) GetComplianceMetrics

func (h *ContentSecurityHandler) GetComplianceMetrics(c *gin.Context)

GetComplianceMetrics 获取合规指标 @Summary 获取合规性指标 @Description 获取内容安全合规性相关指标数据 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/compliance-metrics [get]

func (*ContentSecurityHandler) GetPendingScans

func (h *ContentSecurityHandler) GetPendingScans(c *gin.Context)

GetPendingScans 获取待处理扫描 @Summary 获取待处理扫描列表 @Description 获取所有状态为待处理的安全扫描任务列表 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/scans/pending [get]

func (*ContentSecurityHandler) GetReviewQueue

func (h *ContentSecurityHandler) GetReviewQueue(c *gin.Context)

GetReviewQueue 获取审核队列 @Summary 获取审核队列 @Description 获取待审核内容队列,支持分页、筛选和排序 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param status query string false "审核状态" @Param priority query string false "优先级" @Param content_type query string false "内容类型" @Param assigned_to query int false "分配给指定用户ID" @Param sort_by query string false "排序字段" default(created_at) @Param sort_order query string false "排序方向" default(desc) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/review/queue [get]

func (*ContentSecurityHandler) GetReviewWorkflows

func (h *ContentSecurityHandler) GetReviewWorkflows(c *gin.Context)

GetReviewWorkflows 获取审核工作流列表 @Summary 获取审核工作流列表 @Description 获取所有审核工作流配置列表,可按类型筛选 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param workflow_type query string false "工作流类型" @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/workflows [get]

func (*ContentSecurityHandler) GetReviewerPerformance

func (h *ContentSecurityHandler) GetReviewerPerformance(c *gin.Context)

GetReviewerPerformance 获取审核员表现 @Summary 获取审核员绩效数据 @Description 获取指定审核员在指定时间段内的工作表现和绩效指标 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param reviewer_id path int true "审核员ID" @Param days query int false "统计天数" default(30) @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/reviewers/{reviewer_id}/performance [get]

func (*ContentSecurityHandler) GetSecurityAnalytics

func (h *ContentSecurityHandler) GetSecurityAnalytics(c *gin.Context)

GetSecurityAnalytics 获取安全分析 @Summary 获取安全分析数据 @Description 获取内容安全相关的统计分析数据和指标 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/analytics [get]

func (*ContentSecurityHandler) GetSecurityScan

func (h *ContentSecurityHandler) GetSecurityScan(c *gin.Context)

GetSecurityScan 获取安全扫描结果 @Summary 获取安全扫描结果 @Description 根据扫描ID获取安全扫描的详细结果信息 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param scan_id path int true "扫描ID" @Success 200 {object} model.ContentSecurityScan @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/security/scan/{scan_id} [get]

func (*ContentSecurityHandler) GetUserReviewTasks

func (h *ContentSecurityHandler) GetUserReviewTasks(c *gin.Context)

GetUserReviewTasks 获取用户的审核任务 @Summary 获取用户审核任务 @Description 获取当前用户被分配的审核任务列表 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param status query string false "任务状态" @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/review/my-tasks [get]

func (*ContentSecurityHandler) GetViolationReports

func (h *ContentSecurityHandler) GetViolationReports(c *gin.Context)

GetViolationReports 获取违规举报列表 @Summary 获取违规举报列表 @Description 获取所有违规举报记录,支持按状态筛选 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param status query string false "举报状态" @Param limit query int false "返回数量" default(50) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/security/reports [get]

func (*ContentSecurityHandler) ProcessViolationReport

func (h *ContentSecurityHandler) ProcessViolationReport(c *gin.Context)

ProcessViolationReport 处理违规举报 @Summary 处理违规举报 @Description 管理员处理违规举报,采取相应行动(驳回/调查/下架/升级) @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param report_id path int true "举报ID" @Param request body object{action=string,resolution=string} true "处理请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/reports/{report_id}/process [post]

func (*ContentSecurityHandler) RestoreContent

func (h *ContentSecurityHandler) RestoreContent(c *gin.Context)

RestoreContent 恢复内容 @Summary 恢复已下架内容 @Description 恢复之前被下架的内容,需提供恢复理由 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param takedown_id path int true "下架记录ID" @Param request body object{reason=string} true "恢复理由" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/takedowns/{takedown_id}/restore [post]

func (*ContentSecurityHandler) StartSecurityScan

func (h *ContentSecurityHandler) StartSecurityScan(c *gin.Context)

StartSecurityScan 开始安全扫描 @Summary 启动安全扫描 @Description 对指定内容启动安全扫描任务,检测违规内容 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param request body model.ContentSecurityScanRequest true "扫描请求参数" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/scan [post]

func (*ContentSecurityHandler) SubmitReviewDecision

func (h *ContentSecurityHandler) SubmitReviewDecision(c *gin.Context)

SubmitReviewDecision 提交审核决策 @Summary 提交审核决策 @Description 审核员提交对内容的审核决策(通过/拒绝等) @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param request body model.ReviewDecisionRequest true "审核决策请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /admin/security/review/decision [post]

func (*ContentSecurityHandler) TakedownContent

func (h *ContentSecurityHandler) TakedownContent(c *gin.Context)

TakedownContent 下架内容 @Summary 下架违规内容 @Description 强制下架违规内容,记录下架原因和相关信息 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param request body model.ContentTakedownRequest true "下架请求参数" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/takedown [post]

func (*ContentSecurityHandler) TrainAIModel

func (h *ContentSecurityHandler) TrainAIModel(c *gin.Context)

TrainAIModel 训练AI模型 @Summary 训练AI模型 @Description 启动AI模型训练任务,使用指定的训练数据集 @Tags 内容安全 @Accept json @Produce json @Security BearerAuth @Param request body model.AIModelTrainingRequest true "模型训练请求" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/security/ai-models/train [post]

type CopyrightManagementHandler

type CopyrightManagementHandler struct {
	// contains filtered or unexported fields
}

CopyrightManagementHandler 版权管理处理器

func NewCopyrightManagementHandler

func NewCopyrightManagementHandler(copyrightService service.CopyrightManagementServiceInterface) *CopyrightManagementHandler

NewCopyrightManagementHandler 创建版权管理处理器

func (*CopyrightManagementHandler) ApproveLicense

func (h *CopyrightManagementHandler) ApproveLicense(c *gin.Context)

ApproveLicense 批准授权 @Summary 审批授权 @Description 管理员对授权申请进行审批,可以批准(approved)或拒绝(rejected),并记录审批备注 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "授权ID" @Param request body model.LicenseApprovalRequest true "授权审批请求参数" @Success 200 {object} map[string]any{message=string} "审批成功" @Failure 400 {object} map[string]any "请求参数错误或审批失败" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/licenses/{id}/approve [post]

func (*CopyrightManagementHandler) CalculateRoyalty

func (h *CopyrightManagementHandler) CalculateRoyalty(c *gin.Context)

CalculateRoyalty 计算版税 @Summary 计算版税 @Description 根据授权和收入数据计算版税,包含总收入、版税率、扣除项、预扣税等,生成版税支付记录 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param request body model.RoyaltyCalculationRequest true "版税计算请求参数" @Success 201 {object} map[string]any{message=string,payment=model.RoyaltyPayment} "计算成功" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/royalty/calculate [post]

func (*CopyrightManagementHandler) CheckLicenseCompliance

func (h *CopyrightManagementHandler) CheckLicenseCompliance(c *gin.Context)

CheckLicenseCompliance 检查授权合规性 @Summary 检查授权合规性 @Description 检查指定授权的合规性,包括是否过期、状态是否有效、版税支付情况等 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param id path int true "授权ID" @Success 200 {object} map[string]any{license_id=int64,status=string,issues=[]string,warnings=[]string,checked_at=string} "合规检查结果" @Failure 400 {object} map[string]any "授权ID无效" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/licenses/{id}/compliance [get]

func (*CopyrightManagementHandler) CreateCopyright

func (h *CopyrightManagementHandler) CreateCopyright(c *gin.Context)

CreateCopyright 创建版权 @Summary 创建版权 @Description 创建新的版权记录,包含版权基本信息、归属信息、创作信息、期限、地域范围、权利类型等 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param request body model.CopyrightCreateRequest true "版权创建请求参数" @Success 201 {object} map[string]any{message=string,copyright=model.Copyright} "创建成功" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyrights [post]

func (*CopyrightManagementHandler) CreateDispute

func (h *CopyrightManagementHandler) CreateDispute(c *gin.Context)

CreateDispute 创建版权争议 @Summary 创建版权争议 @Description 为指定版权创建争议记录,包含争议类型、索赔方信息、索赔描述和索赔金额等 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "版权ID" @Param request body map[string]any true "争议数据(dispute_type, claimant_type, claimant_name, claim_description, damages_claimed等)" @Success 201 {object} map[string]any{message=string,dispute=model.CopyrightDispute} "创建成功" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyrights/{id}/disputes [post]

func (*CopyrightManagementHandler) CreateLicense

func (h *CopyrightManagementHandler) CreateLicense(c *gin.Context)

CreateLicense 创建授权 @Summary 创建授权 @Description 为已有版权创建授权许可,包含被许可方信息、授权类型、使用范围、期限、财务条款等 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param request body model.LicenseCreateRequest true "授权创建请求参数" @Success 201 {object} map[string]any{message=string,license=model.License} "创建成功" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/licenses [post]

func (*CopyrightManagementHandler) GenerateRoyaltyReport

func (h *CopyrightManagementHandler) GenerateRoyaltyReport(c *gin.Context)

GenerateRoyaltyReport 生成版税报告 @Summary 生成版税报告 @Description 为指定授权和时间范围生成版税报告,包含收入、版税、观看次数等统计数据 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param license_id path int true "授权ID" @Param start_date query string true "开始日期(YYYY-MM-DD格式)" @Param end_date query string true "结束日期(YYYY-MM-DD格式)" @Success 200 {object} map[string]any "版税报告数据" @Failure 400 {object} map[string]any "请求参数错误(授权ID或日期格式无效)" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/royalty/license/{license_id}/report [get]

func (*CopyrightManagementHandler) GetActiveDisputes

func (h *CopyrightManagementHandler) GetActiveDisputes(c *gin.Context)

GetActiveDisputes 获取活跃争议 @Summary 获取活跃争议列表 @Description 获取所有未解决的活跃版权争议列表 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Success 200 {object} map[string]any{disputes=[]model.CopyrightDispute,total=int} "活跃争议列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyright-disputes/active [get]

func (*CopyrightManagementHandler) GetComplianceReport

func (h *CopyrightManagementHandler) GetComplianceReport(c *gin.Context)

GetComplianceReport 获取合规报告 @Summary 获取合规报告 @Description 获取整体合规报告,包含版权和授权的合规统计、即将到期项、活跃争议、待支付版税等 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Success 200 {object} map[string]any "合规报告数据" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyright-analytics/compliance-report [get]

func (*CopyrightManagementHandler) GetCopyright

func (h *CopyrightManagementHandler) GetCopyright(c *gin.Context)

GetCopyright 获取版权信息 @Summary 获取版权详情 @Description 根据版权ID获取版权的详细信息 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param id path int true "版权ID" @Success 200 {object} model.Copyright "版权详情" @Failure 400 {object} map[string]any "版权ID无效" @Failure 401 {object} map[string]any "未授权" @Failure 404 {object} map[string]any "版权不存在" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyrights/{id} [get]

func (*CopyrightManagementHandler) GetCopyrightAnalytics

func (h *CopyrightManagementHandler) GetCopyrightAnalytics(c *gin.Context)

GetCopyrightAnalytics 获取版权分析 @Summary 获取版权分析数据 @Description 获取版权管理的综合分析数据,包含版权统计、授权统计、收入统计、合规评分、分类统计、趋势数据等 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Success 200 {object} model.CopyrightAnalytics "版权分析数据" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyright-analytics/overview [get]

func (*CopyrightManagementHandler) GetCopyrightLicenses

func (h *CopyrightManagementHandler) GetCopyrightLicenses(c *gin.Context)

GetCopyrightLicenses 获取版权的授权列表 @Summary 获取版权的授权列表 @Description 获取指定版权下的所有授权许可列表 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param id path int true "版权ID" @Success 200 {object} map[string]any{licenses=[]model.LicenseInfo,total=int} "版权授权列表" @Failure 400 {object} map[string]any "版权ID无效" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyrights/{id}/licenses [get]

func (*CopyrightManagementHandler) GetCopyrights

func (h *CopyrightManagementHandler) GetCopyrights(c *gin.Context)

GetCopyrights 获取版权列表 @Summary 获取版权列表 @Description 分页查询版权列表,支持按作品类型、所有者类型、状态、地域、到期天数等条件筛选和排序 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param search query string false "搜索关键词(标题、所有者、创作者)" @Param work_type query string false "作品类型(script/music/character/format/concept)" @Param owner_type query string false "所有者类型(individual/company/estate/collective)" @Param status query string false "版权状态(active/expired/disputed/transferred)" @Param territory query string false "地域筛选" @Param expiring_days query int false "即将到期的天数(如30表示30天内到期)" @Param sort_by query string false "排序字段" default(created_at) @Param sort_order query string false "排序方向(asc/desc)" default(desc) @Success 200 {object} model.CopyrightListResponse "版权列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyrights [get]

func (*CopyrightManagementHandler) GetExpiringCopyrights

func (h *CopyrightManagementHandler) GetExpiringCopyrights(c *gin.Context)

GetExpiringCopyrights 获取即将到期的版权 @Summary 获取即将到期的版权 @Description 获取指定天数内即将到期的版权列表,用于提前预警和处理 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param days query int false "天数(获取多少天内到期的版权)" default(30) @Success 200 {object} map[string]any{copyrights=[]model.CopyrightInfo,total=int,days=int} "即将到期的版权列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyrights/expiring [get]

func (*CopyrightManagementHandler) GetLicense

func (h *CopyrightManagementHandler) GetLicense(c *gin.Context)

GetLicense 获取授权信息 @Summary 获取授权详情 @Description 根据授权ID获取授权的详细信息 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param id path int true "授权ID" @Success 200 {object} model.License "授权详情" @Failure 400 {object} map[string]any "授权ID无效" @Failure 401 {object} map[string]any "未授权" @Failure 404 {object} map[string]any "授权不存在" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/licenses/{id} [get]

func (*CopyrightManagementHandler) GetLicenses

func (h *CopyrightManagementHandler) GetLicenses(c *gin.Context)

GetLicenses 获取授权列表 @Summary 获取授权列表 @Description 分页查询授权列表,支持按授权类型、使用类型、状态、被许可方等条件筛选和排序 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param search query string false "搜索关键词(授权编号、被许可方名称)" @Param license_type query string false "授权类型(exclusive/non_exclusive/sole)" @Param usage_type query string false "使用类型(broadcast/streaming/distribution/adaptation)" @Param status query string false "授权状态(draft/active/suspended/expired/terminated)" @Param licensee_name query string false "被许可方名称" @Param expiring_days query int false "即将到期的天数" @Param sort_by query string false "排序字段" default(created_at) @Param sort_order query string false "排序方向(asc/desc)" default(desc) @Success 200 {object} map[string]any{licenses=[]model.LicenseInfo,total=int64,page=int,limit=int} "授权列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/licenses [get]

func (*CopyrightManagementHandler) GetPendingRoyalties

func (h *CopyrightManagementHandler) GetPendingRoyalties(c *gin.Context)

GetPendingRoyalties 获取待支付版税 @Summary 获取待支付版税列表 @Description 获取所有已计算但尚未支付的版税记录列表 @Tags 管理后台 - 版权管理 @Produce json @Security BearerAuth @Success 200 {object} map[string]any{royalties=[]model.RoyaltyPayment,total=int} "待支付版税列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/royalty/pending [get]

func (*CopyrightManagementHandler) ProcessRoyaltyPayment

func (h *CopyrightManagementHandler) ProcessRoyaltyPayment(c *gin.Context)

ProcessRoyaltyPayment 处理版税支付 @Summary 处理版税支付 @Description 处理版税支付,更新支付状态、支付方式、支付参考号和支付日期 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param payment_id path int true "版税支付ID" @Param request body map[string]any true "支付数据(payment_method, payment_reference, payment_date等)" @Success 200 {object} map[string]any{message=string} "处理成功" @Failure 400 {object} map[string]any "请求参数错误或处理失败" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/royalty/payment/{payment_id}/process [post]

func (*CopyrightManagementHandler) ResolveDispute

func (h *CopyrightManagementHandler) ResolveDispute(c *gin.Context)

ResolveDispute 解决争议 @Summary 解决版权争议 @Description 管理员对版权争议进行解决,记录解决方案和解决时间 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param dispute_id path int true "争议ID" @Param request body map[string]any{resolution=string} true "解决方案" @Success 200 {object} map[string]any{message=string} "解决成功" @Failure 400 {object} map[string]any "请求参数错误或解决失败" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyright-disputes/{dispute_id}/resolve [post]

func (*CopyrightManagementHandler) VerifyCopyright

func (h *CopyrightManagementHandler) VerifyCopyright(c *gin.Context)

VerifyCopyright 验证版权 @Summary 验证版权 @Description 管理员对版权进行验证,可以通过(verified)或拒绝(rejected),并记录验证备注 @Tags 管理后台 - 版权管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "版权ID" @Param request body model.CopyrightVerificationRequest true "版权验证请求参数" @Success 200 {object} map[string]any{message=string} "验证成功" @Failure 400 {object} map[string]any "请求参数错误或验证失败" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/copyrights/{id}/verify [post]

type CreatorHandler

type CreatorHandler struct {
	// contains filtered or unexported fields
}

CreatorHandler 创作者处理器

func NewCreatorHandler

func NewCreatorHandler(
	creatorService service.CreatorServiceInterface,
	videoUploadService *service.VideoUploadService,
	db *gorm.DB,
) *CreatorHandler

NewCreatorHandler 创建创作者处理器

func (*CreatorHandler) BatchUploadEpisodes

func (h *CreatorHandler) BatchUploadEpisodes(c *gin.Context)

BatchUploadEpisodes 批量上传Episodes @Summary 批量上传Episodes @Description 创作者为指定项目批量上传Episodes @Tags 创作者工具 @Accept json @Produce json @Security BearerAuth @Param id path int true "项目ID" @Param request body map[string]any true "批量上传请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 403 {object} map[string]any @Router /creator/projects/{id}/episodes/batch-upload [post]

func (*CreatorHandler) CreateProject

func (h *CreatorHandler) CreateProject(c *gin.Context)

CreateProject 创建项目 @Summary 创建项目 @Description 创作者创建新的短剧项目 @Tags 创作者工具 @Accept json @Produce json @Security BearerAuth @Param request body service.CreateProjectRequest true "项目信息" @Success 201 {object} service.CreatorProject @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /creator/projects [post]

func (*CreatorHandler) DeleteProject

func (h *CreatorHandler) DeleteProject(c *gin.Context)

DeleteProject 删除项目 @Summary 删除项目 @Description 删除指定项目 @Tags 创作者工具 @Produce json @Security BearerAuth @Param id path int true "项目ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /creator/projects/{id} [delete]

func (*CreatorHandler) GetAnalytics

func (h *CreatorHandler) GetAnalytics(c *gin.Context)

GetAnalytics 获取创作者数据分析 @Summary 获取创作者数据分析 @Description 获取创作者的详细数据分析报告 @Tags 创作者工具 @Produce json @Security BearerAuth @Param time_range query string false "时间范围" Enums(today,week,month,year) default(month) @Success 200 {object} service.CreatorAnalytics @Failure 401 {object} map[string]any @Router /creator/analytics [get]

func (*CreatorHandler) GetEarnings

func (h *CreatorHandler) GetEarnings(c *gin.Context)

GetEarnings 获取收益信息 @Summary 获取收益信息 @Description 获取创作者的收益统计和历史记录 @Tags 创作者工具 @Produce json @Security BearerAuth @Success 200 {object} service.CreatorEarnings @Failure 401 {object} map[string]any @Router /creator/earnings [get]

func (*CreatorHandler) GetPendingReview

func (h *CreatorHandler) GetPendingReview(c *gin.Context)

GetPendingReview 获取待审核Episode列表 @Summary 获取待审核Episode列表 @Description 创作者查看自己待审核的Episodes @Tags 创作者工具 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Router /creator/pending-review [get]

func (*CreatorHandler) GetProject

func (h *CreatorHandler) GetProject(c *gin.Context)

GetProject 获取项目详情 @Summary 获取项目详情 @Description 获取指定项目的详细信息 @Tags 创作者工具 @Produce json @Security BearerAuth @Param id path int true "项目ID" @Success 200 {object} service.CreatorProject @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /creator/projects/{id} [get]

func (*CreatorHandler) GetProjectAnalytics

func (h *CreatorHandler) GetProjectAnalytics(c *gin.Context)

GetProjectAnalytics 获取项目数据分析 @Summary 获取项目数据分析 @Description 获取指定项目的详细数据分析 @Tags 创作者工具 @Produce json @Security BearerAuth @Param id path int true "项目ID" @Param time_range query string false "时间范围" default(month) @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /creator/projects/{id}/analytics [get]

func (*CreatorHandler) GetProjects

func (h *CreatorHandler) GetProjects(c *gin.Context)

GetProjects 获取项目列表 @Summary 获取项目列表 @Description 获取当前创作者的项目列表 @Tags 创作者工具 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param status query string false "项目状态" Enums(DRAFT,IN_PROGRESS,COMPLETED,PUBLISHED) @Param category query string false "项目分类" @Param search query string false "搜索关键词" @Param sort_by query string false "排序字段" default(created_at) @Param sort_desc query bool false "是否降序" default(true) @Success 200 {object} service.ProjectListResponse @Failure 401 {object} map[string]any @Router /creator/projects [get]

func (*CreatorHandler) GetReviewHistory

func (h *CreatorHandler) GetReviewHistory(c *gin.Context)

GetReviewHistory 获取审核历史 @Summary 获取审核历史 @Description 创作者查看自己的审核历史 @Tags 创作者工具 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Router /creator/review-history [get]

func (*CreatorHandler) GetWithdrawHistory

func (h *CreatorHandler) GetWithdrawHistory(c *gin.Context)

GetWithdrawHistory 获取提现历史 @Summary 获取提现历史 @Description 获取创作者的提现历史记录 @Tags 创作者工具 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Router /creator/earnings/withdraw-history [get]

func (*CreatorHandler) PublishProject

func (h *CreatorHandler) PublishProject(c *gin.Context)

PublishProject 发布项目 @Summary 发布项目 @Description 发布项目到平台 @Tags 创作者工具 @Produce json @Security BearerAuth @Param id path int true "项目ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /creator/projects/{id}/publish [post]

func (*CreatorHandler) RequestWithdraw

func (h *CreatorHandler) RequestWithdraw(c *gin.Context)

RequestWithdraw 申请提现 @Summary 申请提现 @Description 创作者申请提现收益 @Tags 创作者工具 @Accept json @Produce json @Security BearerAuth @Param request body service.WithdrawRequest true "提现信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /creator/earnings/withdraw [post]

func (*CreatorHandler) UpdateProject

func (h *CreatorHandler) UpdateProject(c *gin.Context)

UpdateProject 更新项目 @Summary 更新项目 @Description 更新项目信息 @Tags 创作者工具 @Accept json @Produce json @Security BearerAuth @Param id path int true "项目ID" @Param request body service.UpdateProjectRequest true "更新信息" @Success 200 {object} service.CreatorProject @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /creator/projects/{id} [put]

func (*CreatorHandler) UploadEpisode

func (h *CreatorHandler) UploadEpisode(c *gin.Context)

UploadEpisode 创作者上传Episode @Summary 创作者上传Episode @Description 创作者为指定项目上传Episode视频,需先创建项目 @Tags 创作者工具 @Accept multipart/form-data @Produce json @Security BearerAuth @Param id path int true "项目ID" @Param episode_number formData int true "集数" @Param title formData string true "集标题" @Param description formData string false "集简介" @Param video formData file true "视频文件" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 403 {object} map[string]any @Router /creator/projects/{id}/episodes/upload [post]

type DanmakuHandler

type DanmakuHandler struct {
	// contains filtered or unexported fields
}

func NewDanmakuHandler

func NewDanmakuHandler(danmakuService service.DanmakuServiceInterface) *DanmakuHandler

func (*DanmakuHandler) BanUser

func (h *DanmakuHandler) BanUser(c *gin.Context)

BanUser 禁言用户 @Summary 禁言用户 @Description 在指定剧集中禁言用户(仅限管理员) @Tags 弹幕 @Accept json @Produce json @Param episode_id path int true "剧集ID" @Param user_id path int true "用户ID" @Param request body BanUserRequest true "禁言请求" @Success 200 {object} map[string]any @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 403 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Security BearerAuth @Router /api/v1/danmaku/room/{episode_id}/ban/{user_id} [post]

func (*DanmakuHandler) DeleteDanmaku

func (h *DanmakuHandler) DeleteDanmaku(c *gin.Context)

DeleteDanmaku 删除弹幕 @Summary 删除弹幕 @Description 删除指定的弹幕(仅限作者或管理员) @Tags 弹幕 @Accept json @Produce json @Param danmaku_id path int true "弹幕ID" @Success 200 {object} map[string]any @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 403 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Security BearerAuth @Router /api/v1/danmaku/{danmaku_id} [delete]

func (*DanmakuHandler) GetDanmakus

func (h *DanmakuHandler) GetDanmakus(c *gin.Context)

GetDanmakus 获取弹幕列表 @Summary 获取弹幕列表 @Description 获取指定剧集的弹幕列表 @Tags 弹幕 @Accept json @Produce json @Param episode_id query int true "剧集ID" @Param start_time query number false "开始时间" @Param end_time query number false "结束时间" @Param page query int false "页码" default(1) @Param page_size query int false "每页数量" default(50) @Success 200 {object} service.DanmakuListResponse @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/danmaku/list [get]

func (*DanmakuHandler) GetDanmakusByTimeRange

func (h *DanmakuHandler) GetDanmakusByTimeRange(c *gin.Context)

GetDanmakusByTimeRange 根据时间范围获取弹幕 @Summary 根据时间范围获取弹幕 @Description 获取指定时间范围内的弹幕(用于播放器实时加载) @Tags 弹幕 @Accept json @Produce json @Param episode_id path int true "剧集ID" @Param start_time query number true "开始时间" @Param end_time query number true "结束时间" @Success 200 {array} service.DanmakuMessage @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/danmaku/episode/{episode_id}/range [get]

func (*DanmakuHandler) GetOnlineUsers

func (h *DanmakuHandler) GetOnlineUsers(c *gin.Context)

GetOnlineUsers 获取在线用户列表 @Summary 获取在线用户列表 @Description 获取弹幕房间内的在线用户列表 @Tags 弹幕 @Accept json @Produce json @Param episode_id path int true "剧集ID" @Success 200 {array} string @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/danmaku/room/{episode_id}/users [get]

func (*DanmakuHandler) GetRoomStats

func (h *DanmakuHandler) GetRoomStats(c *gin.Context)

GetRoomStats 获取房间统计 @Summary 获取弹幕房间统计 @Description 获取指定剧集的弹幕房间统计信息 @Tags 弹幕 @Accept json @Produce json @Param episode_id path int true "剧集ID" @Success 200 {object} service.DanmakuStats @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/danmaku/room/{episode_id}/stats [get]

func (*DanmakuHandler) SendDanmaku

func (h *DanmakuHandler) SendDanmaku(c *gin.Context)

SendDanmaku 发送弹幕 @Summary 发送弹幕 @Description 向指定剧集发送弹幕 @Tags 弹幕 @Accept json @Produce json @Param request body service.SendDanmakuRequest true "发送弹幕请求" @Success 200 {object} service.DanmakuMessage @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 429 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Security BearerAuth @Router /api/v1/danmaku/send [post]

func (*DanmakuHandler) WebSocketDanmaku

func (h *DanmakuHandler) WebSocketDanmaku(c *gin.Context)

WebSocketDanmaku WebSocket弹幕连接 @Summary WebSocket弹幕连接 @Description 建立WebSocket连接进行实时弹幕交互 @Tags 弹幕 @Param episode_id query int true "剧集ID" @Security BearerAuth @Router /api/v1/danmaku/ws [get]

type DownloadHandler

type DownloadHandler struct {
	// contains filtered or unexported fields
}

DownloadHandler 下载处理器

func NewDownloadHandler

func NewDownloadHandler(downloadService service.DownloadServiceInterface) *DownloadHandler

NewDownloadHandler 创建下载处理器

func (*DownloadHandler) CancelDownload

func (h *DownloadHandler) CancelDownload(c *gin.Context)

CancelDownload 取消下载 @Summary 取消下载 @Description 取消指定的下载任务 @Tags 下载 @Produce json @Security BearerAuth @Param download_id path string true "下载ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /downloads/{download_id}/cancel [post]

func (*DownloadHandler) DeleteDownload

func (h *DownloadHandler) DeleteDownload(c *gin.Context)

DeleteDownload 删除下载 @Summary 删除下载 @Description 删除指定的下载记录和文件 @Tags 下载 @Produce json @Security BearerAuth @Param download_id path string true "下载ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /downloads/{download_id} [delete]

func (*DownloadHandler) DownloadFile

func (h *DownloadHandler) DownloadFile(c *gin.Context)

DownloadFile 下载文件 @Summary 下载文件 @Description 下载已完成的文件 @Tags 下载 @Produce application/octet-stream @Security BearerAuth @Param download_id path string true "下载ID" @Success 200 {file} binary "文件内容" @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /downloads/{download_id}/file [get]

func (*DownloadHandler) GetDownloadHistory

func (h *DownloadHandler) GetDownloadHistory(c *gin.Context)

GetDownloadHistory 获取下载历史 @Summary 获取下载历史 @Description 获取用户的下载历史记录 @Tags 下载 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.DownloadHistoryResponse @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /downloads/history [get]

func (*DownloadHandler) GetDownloadProgress

func (h *DownloadHandler) GetDownloadProgress(c *gin.Context)

GetDownloadProgress 获取下载进度 @Summary 获取下载进度 @Description 获取指定下载任务的当前进度 @Tags 下载 @Produce json @Security BearerAuth @Param download_id path string true "下载ID" @Success 200 {object} service.DownloadProgress @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /downloads/{download_id}/progress [get]

func (*DownloadHandler) GetDownloadQuota

func (h *DownloadHandler) GetDownloadQuota(c *gin.Context)

GetDownloadQuota 获取下载配额 @Summary 获取下载配额 @Description 获取用户的下载配额信息 @Tags 下载 @Produce json @Security BearerAuth @Success 200 {object} service.DownloadQuota @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /downloads/quota [get]

func (*DownloadHandler) GetUserDownloads

func (h *DownloadHandler) GetUserDownloads(c *gin.Context)

GetUserDownloads 获取用户下载列表 @Summary 获取用户下载列表 @Description 获取当前用户的所有下载任务 @Tags 下载 @Produce json @Security BearerAuth @Param status query string false "下载状态筛选" Enums(pending, downloading, completed, failed, cancelled) @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} []service.DownloadSession @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /downloads [get]

func (*DownloadHandler) PauseDownload

func (h *DownloadHandler) PauseDownload(c *gin.Context)

PauseDownload 暂停下载 @Summary 暂停下载 @Description 暂停指定的下载任务 @Tags 下载 @Produce json @Security BearerAuth @Param download_id path string true "下载ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /downloads/{download_id}/pause [post]

func (*DownloadHandler) ResumeDownload

func (h *DownloadHandler) ResumeDownload(c *gin.Context)

ResumeDownload 恢复下载 @Summary 恢复下载 @Description 恢复暂停的下载任务 @Tags 下载 @Produce json @Security BearerAuth @Param download_id path string true "下载ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /downloads/{download_id}/resume [post]

func (*DownloadHandler) RetryDownload

func (h *DownloadHandler) RetryDownload(c *gin.Context)

RetryDownload 重试下载 @Summary 重试下载 @Description 重试失败的下载任务 @Tags 下载 @Produce json @Security BearerAuth @Param download_id path string true "下载ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /downloads/{download_id}/retry [post]

func (*DownloadHandler) StartDownload

func (h *DownloadHandler) StartDownload(c *gin.Context)

StartDownload 开始下载 @Summary 开始下载 @Description 开始下载指定分集的视频内容 @Tags 下载 @Accept json @Produce json @Security BearerAuth @Param request body service.DownloadRequest true "下载请求" @Success 200 {object} service.DownloadResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /downloads/start [post]

type EmailConfigHandler

type EmailConfigHandler struct {
	// contains filtered or unexported fields
}

EmailConfigHandler 邮件配置处理器

func NewEmailConfigHandler

func NewEmailConfigHandler(emailConfigService service.EmailConfigServiceInterface) *EmailConfigHandler

NewEmailConfigHandler 创建邮件配置处理器

func (*EmailConfigHandler) CreateEmailProvider

func (h *EmailConfigHandler) CreateEmailProvider(c *gin.Context)

CreateEmailProvider 创建邮件提供商配置 @Summary 创建邮件提供商配置 @Description 创建新的邮件提供商配置(SMTP/Mailgun/SendGrid/阿里云/腾讯云) @Tags Admin - 邮件配置 @Accept json @Produce json @Param request body model.CreateEmailProviderRequest true "提供商配置" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/email/providers [post]

func (*EmailConfigHandler) DeleteEmailProvider

func (h *EmailConfigHandler) DeleteEmailProvider(c *gin.Context)

DeleteEmailProvider 删除邮件提供商 @Summary 删除邮件提供商 @Description 删除指定ID的邮件提供商配置 @Tags Admin - 邮件配置 @Produce json @Param id path int true "提供商ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/email/providers/{id} [delete]

func (*EmailConfigHandler) GetEmailProvider

func (h *EmailConfigHandler) GetEmailProvider(c *gin.Context)

GetEmailProvider 获取单个邮件提供商 @Summary 获取邮件提供商详情 @Description 获取指定ID的邮件提供商配置 @Tags Admin - 邮件配置 @Produce json @Param id path int true "提供商ID" @Success 200 {object} model.EmailProviderConfig @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/email/providers/{id} [get]

func (*EmailConfigHandler) GetEmailProviders

func (h *EmailConfigHandler) GetEmailProviders(c *gin.Context)

GetEmailProviders 获取所有邮件提供商 @Summary 获取邮件提供商列表 @Description 获取所有邮件提供商配置 @Tags Admin - 邮件配置 @Produce json @Param active query bool false "仅显示激活的提供商" @Success 200 {object} model.EmailProviderListResponse @Failure 500 {object} map[string]any @Router /admin/email/providers [get]

func (*EmailConfigHandler) SetDefaultEmailProvider

func (h *EmailConfigHandler) SetDefaultEmailProvider(c *gin.Context)

SetDefaultEmailProvider 设置默认邮件提供商 @Summary 设置默认邮件提供商 @Description 将指定ID的邮件提供商设置为默认 @Tags Admin - 邮件配置 @Produce json @Param id path int true "提供商ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/email/providers/{id}/set-default [post]

func (*EmailConfigHandler) TestEmailProvider

func (h *EmailConfigHandler) TestEmailProvider(c *gin.Context)

TestEmailProvider 测试邮件提供商 @Summary 测试邮件提供商 @Description 发送测试邮件验证提供商配置 @Tags Admin - 邮件配置 @Accept json @Produce json @Param id path int true "提供商ID" @Param request body model.TestEmailProviderRequest true "测试请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/email/providers/{id}/test [post]

func (*EmailConfigHandler) ToggleEmailProviderStatus

func (h *EmailConfigHandler) ToggleEmailProviderStatus(c *gin.Context)

ToggleEmailProviderStatus 切换邮件提供商状态 @Summary 切换邮件提供商状态 @Description 启用或禁用邮件提供商 @Tags Admin - 邮件配置 @Accept json @Produce json @Param id path int true "提供商ID" @Param request body map[string]bool true "状态" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/email/providers/{id}/toggle [post]

func (*EmailConfigHandler) UpdateEmailProvider

func (h *EmailConfigHandler) UpdateEmailProvider(c *gin.Context)

UpdateEmailProvider 更新邮件提供商 @Summary 更新邮件提供商配置 @Description 更新指定ID的邮件提供商配置 @Tags Admin - 邮件配置 @Accept json @Produce json @Param id path int true "提供商ID" @Param request body model.UpdateEmailProviderRequest true "更新内容" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/email/providers/{id} [put]

type EpisodeWithCreator

type EpisodeWithCreator struct {
	*model.Episode
	CreatorID *int64 `json:"creator_id"`
}

EpisodeWithCreator 包含创作者信息的分集

type ErrorResponse

type ErrorResponse struct {
	Error   string `json:"error"`
	Message string `json:"message"`
}

ErrorResponse 错误响应结构

type FinanceManagementHandler

type FinanceManagementHandler struct {
	// contains filtered or unexported fields
}

FinanceManagementHandler 财务管理处理器

func NewFinanceManagementHandler

func NewFinanceManagementHandler(financeService service.FinanceManagementServiceInterface) *FinanceManagementHandler

NewFinanceManagementHandler 创建财务管理处理器

func (*FinanceManagementHandler) ApproveExpense

func (h *FinanceManagementHandler) ApproveExpense(c *gin.Context)

ApproveExpense 批准支出 @Summary 批准支出 @Description 管理员批准指定的支出申请 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param expense_id path int true "支出ID" @Success 200 {object} map[string]interface{} "批准成功" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/expenses/{expense_id}/approve [post]

func (*FinanceManagementHandler) CalculateCreatorEarnings

func (h *FinanceManagementHandler) CalculateCreatorEarnings(c *gin.Context)

CalculateCreatorEarnings 计算创作者收益 @Summary 计算创作者收益 @Description 管理员为指定创作者计算指定周期的收益 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request body object{creator_id=int64,period=string} true "计算收益请求" @Success 201 {object} map[string]interface{} "收益计算完成" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/creator-earnings/calculate [post]

func (*FinanceManagementHandler) ConfirmCreatorEarnings

func (h *FinanceManagementHandler) ConfirmCreatorEarnings(c *gin.Context)

ConfirmCreatorEarnings 确认创作者收益 @Summary 确认创作者收益 @Description 管理员批量确认创作者收益 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request body object{earnings_ids=[]int64} true "收益ID列表" @Success 200 {object} map[string]interface{} "确认成功" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/creator-earnings/confirm [post]

func (*FinanceManagementHandler) CreateBudget

func (h *FinanceManagementHandler) CreateBudget(c *gin.Context)

CreateBudget 创建预算 @Summary 创建预算 @Description 管理员创建新的预算计划 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request body model.BudgetCreateRequest true "预算创建请求" @Success 201 {object} map[string]interface{} "预算创建成功" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/budgets [post]

func (*FinanceManagementHandler) CreateExpense

func (h *FinanceManagementHandler) CreateExpense(c *gin.Context)

CreateExpense 创建支出 @Summary 创建支出记录 @Description 管理员创建新的支出记录 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request body model.ExpenseCreateRequest true "支出创建请求" @Success 201 {object} map[string]interface{} "支出创建成功" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/expenses [post]

func (*FinanceManagementHandler) GenerateFinancialReport

func (h *FinanceManagementHandler) GenerateFinancialReport(c *gin.Context)

GenerateFinancialReport 生成财务报表 @Summary 生成财务报表 @Description 管理员生成指定类型和周期的财务报表 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request body model.FinanceReportRequest true "报表生成请求" @Success 201 {object} map[string]interface{} "报表生成已启动" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/reports/generate [post]

func (*FinanceManagementHandler) GetBudgetAlerts

func (h *FinanceManagementHandler) GetBudgetAlerts(c *gin.Context)

GetBudgetAlerts 获取预算告警 @Summary 获取预算告警 @Description 管理员获取所有预算超支告警 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]interface{} "预算告警列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/budgets/alerts [get]

func (*FinanceManagementHandler) GetBudgetStatus

func (h *FinanceManagementHandler) GetBudgetStatus(c *gin.Context)

GetBudgetStatus 获取预算状态 @Summary 获取预算状态 @Description 管理员获取指定预算的执行状态 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param budget_id path int true "预算ID" @Success 200 {object} map[string]interface{} "预算状态" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/budgets/{budget_id}/status [get]

func (*FinanceManagementHandler) GetBudgets

func (h *FinanceManagementHandler) GetBudgets(c *gin.Context)

GetBudgets 获取预算列表 @Summary 获取预算列表 @Description 管理员获取预算列表,支持按类型和财年筛选 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param budget_type query string false "预算类型筛选" @Param fiscal_year query int false "财年筛选" @Success 200 {object} map[string]interface{} "预算列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/budgets [get]

func (*FinanceManagementHandler) GetCashFlowStatement

func (h *FinanceManagementHandler) GetCashFlowStatement(c *gin.Context)

GetCashFlowStatement 获取现金流量表 @Summary 获取现金流量表 @Description 管理员获取指定时间范围的现金流量表 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param start_date query string true "开始日期 (YYYY-MM-DD)" @Param end_date query string true "结束日期 (YYYY-MM-DD)" @Success 200 {object} map[string]interface{} "现金流量表数据" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/statements/cash-flow [get]

func (*FinanceManagementHandler) GetCreatorEarnings

func (h *FinanceManagementHandler) GetCreatorEarnings(c *gin.Context)

GetCreatorEarnings 获取创作者收益列表 @Summary 获取创作者收益列表 @Description 管理员获取创作者收益列表,支持多种筛选和排序条件 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param creator_id query int false "创作者ID" @Param source_type query string false "收益来源类型" @Param status query string false "状态" @Param payment_status query string false "支付状态" @Param min_amount query number false "最小金额" @Param sort_by query string false "排序字段" default(created_at) @Param sort_order query string false "排序方向" Enums(asc, desc) default(desc) @Success 200 {object} model.CreatorEarningsResponse "创作者收益列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/creator-earnings [get]

func (*FinanceManagementHandler) GetCreatorEarningsDetail

func (h *FinanceManagementHandler) GetCreatorEarningsDetail(c *gin.Context)

GetCreatorEarningsDetail 获取创作者收益详情 @Summary 获取创作者收益详情 @Description 管理员获取指定创作者收益的详细信息 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param id path int true "收益ID" @Success 200 {object} model.CreatorEarnings "创作者收益详情" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 404 {object} map[string]interface{} "收益记录不存在" @Router /api/v1/admin/finance/creator-earnings/{id} [get]

func (*FinanceManagementHandler) GetExpenses

func (h *FinanceManagementHandler) GetExpenses(c *gin.Context)

GetExpenses 获取支出列表 @Summary 获取支出列表 @Description 管理员获取支出列表,支持多维度筛选 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param expense_type query string false "支出类型筛选" @Param category query string false "类别筛选" @Param status query string false "状态筛选" @Param start_date query string false "开始日期 (YYYY-MM-DD)" @Param end_date query string false "结束日期 (YYYY-MM-DD)" @Param limit query int false "数量限制" default(50) @Success 200 {object} map[string]interface{} "支出列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/expenses [get]

func (*FinanceManagementHandler) GetFinancialAnalytics

func (h *FinanceManagementHandler) GetFinancialAnalytics(c *gin.Context)

GetFinancialAnalytics 获取财务分析 @Summary 获取财务分析 @Description 管理员获取指定时间范围的综合财务分析数据 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param start_date query string false "开始日期 (YYYY-MM-DD)" default(上月同期) @Param end_date query string false "结束日期 (YYYY-MM-DD)" default(今天) @Success 200 {object} model.FinancialAnalytics "财务分析数据" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/analytics [get]

func (*FinanceManagementHandler) GetFinancialReport

func (h *FinanceManagementHandler) GetFinancialReport(c *gin.Context)

GetFinancialReport 获取财务报表详情 @Summary 获取财务报表详情 @Description 管理员获取指定财务报表的详细信息 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param id path int true "报表ID" @Success 200 {object} model.FinancialReport "财务报表详情" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 404 {object} map[string]interface{} "报表不存在" @Router /api/v1/admin/finance/reports/{id} [get]

func (*FinanceManagementHandler) GetFinancialReports

func (h *FinanceManagementHandler) GetFinancialReports(c *gin.Context)

GetFinancialReports 获取财务报表列表 @Summary 获取财务报表列表 @Description 管理员获取已生成的财务报表列表 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param report_type query string false "报表类型筛选" @Param limit query int false "数量限制" default(20) @Success 200 {object} map[string]interface{} "财务报表列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/reports [get]

func (*FinanceManagementHandler) GetPendingWithdrawals

func (h *FinanceManagementHandler) GetPendingWithdrawals(c *gin.Context)

GetPendingWithdrawals 获取待处理提现 @Summary 获取待处理提现 @Description 管理员获取所有待处理的提现申请 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]interface{} "待处理提现列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/withdrawals/pending [get]

func (*FinanceManagementHandler) GetProfitLossStatement

func (h *FinanceManagementHandler) GetProfitLossStatement(c *gin.Context)

GetProfitLossStatement 获取损益表 @Summary 获取损益表 @Description 管理员获取指定时间范围的损益表 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param start_date query string true "开始日期 (YYYY-MM-DD)" @Param end_date query string true "结束日期 (YYYY-MM-DD)" @Success 200 {object} map[string]interface{} "损益表数据" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/statements/profit-loss [get]

func (*FinanceManagementHandler) GetReconciliations

func (h *FinanceManagementHandler) GetReconciliations(c *gin.Context)

GetReconciliations 获取对账记录 @Summary 获取对账记录 @Description 管理员获取对账记录列表 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param reconciliation_type query string false "对账类型筛选" @Param limit query int false "数量限制" default(20) @Success 200 {object} map[string]interface{} "对账记录列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/reconciliations [get]

func (*FinanceManagementHandler) GetRevenueProjection

func (h *FinanceManagementHandler) GetRevenueProjection(c *gin.Context)

GetRevenueProjection 获取收入预测 @Summary 获取收入预测 @Description 管理员获取未来N个月的收入预测数据 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param months query int false "预测月数" default(12) @Success 200 {object} map[string]interface{} "收入预测数据" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/projections/revenue [get]

func (*FinanceManagementHandler) GetWithdrawRequests

func (h *FinanceManagementHandler) GetWithdrawRequests(c *gin.Context)

GetWithdrawRequests 获取提现申请列表 @Summary 获取提现申请列表 @Description 管理员获取创作者提现申请列表 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param status query string false "状态筛选" @Param limit query int false "数量限制" default(50) @Success 200 {object} map[string]interface{} "提现申请列表" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /api/v1/admin/finance/withdrawals [get]

func (*FinanceManagementHandler) ProcessWithdrawRequest

func (h *FinanceManagementHandler) ProcessWithdrawRequest(c *gin.Context)

ProcessWithdrawRequest 处理提现申请 @Summary 处理提现申请 @Description 管理员处理已批准的提现申请,执行实际支付 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request_id path int true "申请ID" @Param payment_data body object true "支付数据" @Success 200 {object} map[string]interface{} "处理成功" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/withdrawals/{request_id}/process [post]

func (*FinanceManagementHandler) ReviewWithdrawRequest

func (h *FinanceManagementHandler) ReviewWithdrawRequest(c *gin.Context)

ReviewWithdrawRequest 审核提现申请 @Summary 审核提现申请 @Description 管理员审核创作者提现申请(批准或拒绝) @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request_id path int true "申请ID" @Param request body object{action=string,notes=string} true "审核操作" @Success 200 {object} map[string]interface{} "审核完成" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/withdrawals/{request_id}/review [post]

func (*FinanceManagementHandler) StartReconciliation

func (h *FinanceManagementHandler) StartReconciliation(c *gin.Context)

StartReconciliation 开始对账 @Summary 开始对账 @Description 管理员启动对账流程 @Tags 管理后台 - 财务 @Accept json @Produce json @Security BearerAuth @Param request body object{reconciliation_type=string,period=string} true "对账请求" @Success 201 {object} map[string]interface{} "对账已启动" @Failure 400 {object} map[string]interface{} "参数错误" @Failure 401 {object} map[string]interface{} "未认证" @Failure 403 {object} map[string]interface{} "权限不足" @Router /api/v1/admin/finance/reconciliations/start [post]

type FollowHandler

type FollowHandler struct {
	// contains filtered or unexported fields
}

func NewFollowHandler

func NewFollowHandler(followService service.FollowServiceInterface) *FollowHandler

func (*FollowHandler) GetFollowStats

func (h *FollowHandler) GetFollowStats(c *gin.Context)

GetFollowStats 获取关注统计信息 @Summary 获取关注统计信息 @Description 获取指定用户的关注和粉丝统计数据 @Tags 社交功能 @Produce json @Param user_id query string true "用户ID" @Success 200 {object} service.FollowStats @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/follow/stats [get]

func (*FollowHandler) GetFollowers

func (h *FollowHandler) GetFollowers(c *gin.Context)

GetFollowers 获取粉丝列表 @Summary 获取粉丝列表 @Description 获取指定用户的粉丝列表 @Tags 社交功能 @Produce json @Param user_id query string true "用户ID" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} service.FollowListResponse @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/follow/followers [get]

func (*FollowHandler) GetFollowing

func (h *FollowHandler) GetFollowing(c *gin.Context)

GetFollowing 获取关注列表 @Summary 获取关注列表 @Description 获取指定用户的关注列表 @Tags 社交功能 @Produce json @Param user_id query string true "用户ID" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} service.FollowListResponse @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/follow/following [get]

func (*FollowHandler) GetRecommendedUsers

func (h *FollowHandler) GetRecommendedUsers(c *gin.Context)

GetRecommendedUsers 获取推荐关注用户 @Summary 获取推荐关注用户 @Description 为当前用户推荐可能感兴趣的用户 @Tags 社交功能 @Produce json @Security BearerAuth @Param limit query int false "返回数量" default(10) @Success 200 {array} service.UserProfile @Failure 401 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/follow/recommended [get]

func (*FollowHandler) GetUserProfile

func (h *FollowHandler) GetUserProfile(c *gin.Context)

GetUserProfile 获取用户资料 @Summary 获取用户资料 @Description 获取指定用户的详细资料信息 @Tags 社交功能 @Produce json @Param user_id path string true "用户ID" @Success 200 {object} service.UserProfile @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/follow/profile/{user_id} [get]

func (*FollowHandler) ToggleFollow

func (h *FollowHandler) ToggleFollow(c *gin.Context)

ToggleFollow 关注/取消关注用户 @Summary 关注/取消关注用户 @Description 切换对指定用户的关注状态 @Tags 社交功能 @Accept json @Produce json @Security BearerAuth @Param request body service.FollowRequest true "关注请求" @Success 200 {object} service.FollowResponse @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /api/v1/follow/toggle [post]

type InternationalizationHandler

type InternationalizationHandler struct {
	// contains filtered or unexported fields
}

InternationalizationHandler 国际化处理器

func NewInternationalizationHandler

func NewInternationalizationHandler(i18nService service.InternationalizationServiceInterface) *InternationalizationHandler

NewInternationalizationHandler 创建国际化处理器

func (*InternationalizationHandler) AutoTranslate

func (h *InternationalizationHandler) AutoTranslate(c *gin.Context)

AutoTranslate 自动翻译 @Summary 自动翻译 @Description 使用AI自动翻译文本内容 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.AutoTranslationRequest true "自动翻译请求" @Success 200 {object} model.AutoTranslationResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/auto-translate [post]

func (*InternationalizationHandler) BatchCreateTranslations

func (h *InternationalizationHandler) BatchCreateTranslations(c *gin.Context)

BatchCreateTranslations 批量创建翻译 @Summary 批量创建翻译 @Description 批量创建多个翻译文本 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.BatchTranslationRequest true "批量翻译信息" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/translations/batch [post]

func (*InternationalizationHandler) CreateLanguage

func (h *InternationalizationHandler) CreateLanguage(c *gin.Context)

CreateLanguage 创建语言 @Summary 创建语言 @Description 创建新的系统支持语言 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateLanguageRequest true "语言信息" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/languages [post]

func (*InternationalizationHandler) CreateTranslation

func (h *InternationalizationHandler) CreateTranslation(c *gin.Context)

CreateTranslation 创建翻译 @Summary 创建翻译 @Description 为指定的翻译键创建新的翻译文本 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateTranslationRequest true "翻译信息" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/translations [post]

func (*InternationalizationHandler) CreateTranslationProject

func (h *InternationalizationHandler) CreateTranslationProject(c *gin.Context)

CreateTranslationProject 创建翻译项目 @Summary 创建翻译项目 @Description 创建新的翻译项目以组织和管理翻译任务 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateTranslationProjectRequest true "项目信息" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/projects [post]

func (*InternationalizationHandler) DeleteLanguage

func (h *InternationalizationHandler) DeleteLanguage(c *gin.Context)

DeleteLanguage 删除语言 @Summary 删除语言 @Description 删除指定的系统语言 @Tags 国际化 @Produce json @Security BearerAuth @Param id path int true "语言ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/languages/{id} [delete]

func (*InternationalizationHandler) ExportTranslations

func (h *InternationalizationHandler) ExportTranslations(c *gin.Context)

ExportTranslations 导出翻译 @Summary 导出翻译 @Description 导出指定语言的翻译文件,支持多种格式(JSON/YAML/Properties/CSV) @Tags 国际化 @Produce json @Security BearerAuth @Param language_code query string true "语言代码" @Param format query string false "导出格式" default(json) Enums(json, yaml, properties, csv) @Param namespace query string false "命名空间" @Success 200 {string} string "文件内容" @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/translations/export [get]

func (*InternationalizationHandler) GetAllLocalizationConfigs

func (h *InternationalizationHandler) GetAllLocalizationConfigs(c *gin.Context)

GetAllLocalizationConfigs 获取所有本地化配置 @Summary 获取所有本地化配置 @Description 获取系统所有语言的本地化配置列表 @Tags 国际化 @Produce json @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /i18n/configs [get]

func (*InternationalizationHandler) GetContentTranslations

func (h *InternationalizationHandler) GetContentTranslations(c *gin.Context)

GetContentTranslations 获取内容翻译列表 @Summary 获取内容翻译列表 @Description 获取内容翻译任务列表,支持分页和筛选 @Tags 国际化 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param content_type query string false "内容类型" @Param content_id query int false "内容ID" @Param language_code query string false "语言代码" @Param status query string false "状态" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/content/translations [get]

func (*InternationalizationHandler) GetLanguage

func (h *InternationalizationHandler) GetLanguage(c *gin.Context)

GetLanguage 获取语言详情 @Summary 获取语言详情 @Description 根据ID获取指定语言的详细信息 @Tags 国际化 @Produce json @Param id path int true "语言ID" @Success 200 {object} model.Language @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /i18n/languages/{id} [get]

func (*InternationalizationHandler) GetLanguageCompletionStats

func (h *InternationalizationHandler) GetLanguageCompletionStats(c *gin.Context)

GetLanguageCompletionStats 获取语言完成统计 @Summary 获取语言完成统计 @Description 获取指定语言的翻译完成度统计 @Tags 国际化 @Produce json @Security BearerAuth @Param language_code path string true "语言代码" @Success 200 {object} model.LanguageStatInfo @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/stats/language/{language_code} [get]

func (*InternationalizationHandler) GetLanguages

func (h *InternationalizationHandler) GetLanguages(c *gin.Context)

GetLanguages 获取语言列表 @Summary 获取语言列表 @Description 获取系统支持的所有语言列表,可按激活状态筛选 @Tags 国际化 @Produce json @Param is_active query boolean false "是否激活" @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /i18n/languages [get]

func (*InternationalizationHandler) GetLocalizationConfig

func (h *InternationalizationHandler) GetLocalizationConfig(c *gin.Context)

GetLocalizationConfig 获取本地化配置 @Summary 获取本地化配置 @Description 获取指定语言的本地化配置(日期格式、货币符号等) @Tags 国际化 @Produce json @Param language_code path string true "语言代码" @Success 200 {object} model.LocalizationConfig @Failure 404 {object} map[string]any @Router /i18n/config/{language_code} [get]

func (*InternationalizationHandler) GetLocalizedContent

func (h *InternationalizationHandler) GetLocalizedContent(c *gin.Context)

GetLocalizedContent 获取本地化内容 @Summary 获取本地化内容 @Description 获取指定内容的本地化版本 @Tags 国际化 @Produce json @Param content_type path string true "内容类型" @Param content_id path int true "内容ID" @Param language query string false "语言代码" default(en) @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /i18n/content/{content_type}/{content_id} [get]

func (*InternationalizationHandler) GetSupportedLanguages

func (h *InternationalizationHandler) GetSupportedLanguages(c *gin.Context)

GetSupportedLanguages 获取支持的语言 @Summary 获取支持的语言 @Description 获取系统当前支持的所有激活语言 @Tags 国际化 @Produce json @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /i18n/supported-languages [get]

func (*InternationalizationHandler) GetTranslationProjects

func (h *InternationalizationHandler) GetTranslationProjects(c *gin.Context)

GetTranslationProjects 获取翻译项目列表 @Summary 获取翻译项目列表 @Description 获取翻译项目列表,支持分页和状态筛选 @Tags 国际化 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param status query string false "项目状态" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/projects [get]

func (*InternationalizationHandler) GetTranslationStats

func (h *InternationalizationHandler) GetTranslationStats(c *gin.Context)

GetTranslationStats 获取翻译统计 @Summary 获取翻译统计 @Description 获取系统翻译的总体统计信息 @Tags 国际化 @Produce json @Security BearerAuth @Success 200 {object} model.TranslationStatsResponse @Failure 500 {object} map[string]any @Router /admin/i18n/stats [get]

func (*InternationalizationHandler) GetTranslations

func (h *InternationalizationHandler) GetTranslations(c *gin.Context)

GetTranslations 获取翻译列表 @Summary 获取翻译列表 @Description 获取翻译列表,支持分页和多条件筛选 @Tags 国际化 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param language_code query string false "语言代码" @Param key query string false "翻译键" @Param namespace query string false "命名空间" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/translations [get]

func (*InternationalizationHandler) ImportTranslations

func (h *InternationalizationHandler) ImportTranslations(c *gin.Context)

ImportTranslations 导入翻译 @Summary 导入翻译 @Description 从文件内容导入翻译数据 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.ImportTranslationRequest true "导入信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/translations/import [post]

func (*InternationalizationHandler) SetDefaultLanguage

func (h *InternationalizationHandler) SetDefaultLanguage(c *gin.Context)

SetDefaultLanguage 设置默认语言 @Summary 设置默认语言 @Description 设置系统的默认语言 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body object{language_code=string} true "语言代码" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/languages/default [post]

func (*InternationalizationHandler) TranslateContent

func (h *InternationalizationHandler) TranslateContent(c *gin.Context)

TranslateContent 翻译内容 @Summary 翻译内容 @Description 创建内容翻译任务,支持视频、剧集等内容类型 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.TranslateContentRequest true "翻译请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/content/translate [post]

func (*InternationalizationHandler) UpdateLanguage

func (h *InternationalizationHandler) UpdateLanguage(c *gin.Context)

UpdateLanguage 更新语言 @Summary 更新语言 @Description 更新指定语言的信息 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param id path int true "语言ID" @Param request body model.UpdateLanguageRequest true "更新信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/languages/{id} [put]

func (*InternationalizationHandler) UpdateLocalizationConfig

func (h *InternationalizationHandler) UpdateLocalizationConfig(c *gin.Context)

UpdateLocalizationConfig 更新本地化配置 @Summary 更新本地化配置 @Description 更新指定语言的本地化配置信息 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param language_code path string true "语言代码" @Param updates body map[string]any true "配置更新" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/config/{language_code} [put]

func (*InternationalizationHandler) UpdateTranslation

func (h *InternationalizationHandler) UpdateTranslation(c *gin.Context)

UpdateTranslation 更新翻译 @Summary 更新翻译 @Description 更新指定ID的翻译内容 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param id path int true "翻译ID" @Param request body model.UpdateTranslationRequest true "更新信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/translations/{id} [put]

func (*InternationalizationHandler) ValidateTranslations

func (h *InternationalizationHandler) ValidateTranslations(c *gin.Context)

ValidateTranslations 验证翻译 @Summary 验证翻译 @Description 验证翻译内容的完整性和正确性 @Tags 国际化 @Accept json @Produce json @Security BearerAuth @Param request body model.TranslationValidationRequest true "验证请求" @Success 200 {object} model.TranslationValidationResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/i18n/translations/validate [post]

type LiveHandler

type LiveHandler struct {
	// contains filtered or unexported fields
}

LiveHandler 直播处理器

func NewLiveHandler

func NewLiveHandler(services *service.Services) *LiveHandler

NewLiveHandler 创建直播处理器

func (*LiveHandler) BanUser

func (h *LiveHandler) BanUser(c *gin.Context)

BanUser 封禁用户 @Summary 封禁用户 @Description 在直播间中封禁指定用户 @Tags 直播 @Accept json @Produce json @Security BearerAuth @Param roomId path string true "房间ID" @Param request body map[string]any true "封禁信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /live/rooms/{roomId}/ban [post]

func (*LiveHandler) CreateLiveRoom

func (h *LiveHandler) CreateLiveRoom(c *gin.Context)

CreateLiveRoom 创建直播房间 @Summary 创建直播房间 @Description 创建新的直播房间 @Tags 直播 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateLiveRoomRequest true "房间信息" @Success 201 {object} model.LiveRoomResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /live/rooms [post]

func (*LiveHandler) CreateSchedule

func (h *LiveHandler) CreateSchedule(c *gin.Context)

CreateSchedule 创建直播排期 @Summary 创建直播排期 @Description 创建新的直播排期 @Tags 直播 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateLiveScheduleRequest true "排期信息" @Success 201 {object} model.LiveSchedule @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /live/schedules [post]

func (*LiveHandler) DeleteLiveRoom

func (h *LiveHandler) DeleteLiveRoom(c *gin.Context)

DeleteLiveRoom 删除直播房间 @Summary 删除直播房间 @Description 删除指定的直播房间 @Tags 直播 @Produce json @Security BearerAuth @Param roomId path string true "房间ID" @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /live/rooms/{roomId} [delete]

func (*LiveHandler) GetCreatorLiveRooms

func (h *LiveHandler) GetCreatorLiveRooms(c *gin.Context)

GetCreatorLiveRooms 获取创作者的直播房间列表 @Summary 获取创作者的直播房间列表 @Description 获取指定创作者的所有直播房间 @Tags 直播 @Produce json @Security BearerAuth @Success 200 {array} model.LiveRoomResponse @Failure 401 {object} map[string]any @Router /live/rooms/my [get]

func (*LiveHandler) GetCreatorSchedules

func (h *LiveHandler) GetCreatorSchedules(c *gin.Context)

GetCreatorSchedules 获取创作者的直播排期 @Summary 获取创作者的直播排期 @Description 获取指定创作者的直播排期列表 @Tags 直播 @Produce json @Security BearerAuth @Success 200 {array} model.LiveSchedule @Failure 401 {object} map[string]any @Router /live/schedules/my [get]

func (*LiveHandler) GetLiveGifts

func (h *LiveHandler) GetLiveGifts(c *gin.Context)

GetLiveGifts 获取直播礼物列表 @Summary 获取直播礼物列表 @Description 获取所有可用的直播礼物 @Tags 直播 @Produce json @Success 200 {array} model.LiveGift @Failure 500 {object} map[string]any @Router /live/gifts [get]

func (*LiveHandler) GetLiveLiveRooms

func (h *LiveHandler) GetLiveLiveRooms(c *gin.Context)

GetLiveLiveRooms 获取正在直播的房间列表 @Summary 获取正在直播的房间列表 @Description 获取所有正在直播的房间 @Tags 直播 @Produce json @Success 200 {array} model.LiveRoomResponse @Failure 500 {object} map[string]any @Router /live/rooms/live [get]

func (*LiveHandler) GetLiveRoom

func (h *LiveHandler) GetLiveRoom(c *gin.Context)

GetLiveRoom 获取直播房间信息 @Summary 获取直播房间信息 @Description 根据房间ID获取直播房间详情 @Tags 直播 @Produce json @Param roomId path string true "房间ID" @Success 200 {object} model.LiveRoomResponse @Failure 404 {object} map[string]any @Router /live/rooms/{roomId} [get]

func (*LiveHandler) GetLiveStats

func (h *LiveHandler) GetLiveStats(c *gin.Context)

GetLiveStats 获取直播统计 @Summary 获取直播统计 @Description 获取直播平台统计数据 @Tags 直播 @Produce json @Success 200 {object} model.LiveStatsResponse @Failure 500 {object} map[string]any @Router /live/stats [get]

func (*LiveHandler) GetRoomGiftRecords

func (h *LiveHandler) GetRoomGiftRecords(c *gin.Context)

GetRoomGiftRecords 获取房间礼物记录 @Summary 获取房间礼物记录 @Description 获取指定房间的礼物发送记录 @Tags 直播 @Produce json @Param roomId path string true "房间ID" @Param limit query int false "记录数量限制" default(50) @Success 200 {array} model.LiveGiftRecord @Failure 500 {object} map[string]any @Router /live/rooms/{roomId}/gifts [get]

func (*LiveHandler) GetRoomStats

func (h *LiveHandler) GetRoomStats(c *gin.Context)

GetRoomStats 获取房间统计 @Summary 获取房间统计 @Description 获取指定房间的统计数据 @Tags 直播 @Produce json @Param roomId path string true "房间ID" @Success 200 {object} model.LiveRoomStats @Failure 404 {object} map[string]any @Router /live/rooms/{roomId}/stats [get]

func (*LiveHandler) GetRooms

func (h *LiveHandler) GetRooms(c *gin.Context)

GetRooms 获取直播房间列表(支持状态筛选) @Summary 获取直播房间列表 @Description 获取直播房间列表,支持按状态筛选和分页 @Tags 直播 @Produce json @Param status query string false "房间状态" Enums(created, live, paused, ended) default(live) @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /live/rooms [get]

func (*LiveHandler) GetUpcomingSchedules

func (h *LiveHandler) GetUpcomingSchedules(c *gin.Context)

GetUpcomingSchedules 获取即将开始的直播排期 @Summary 获取即将开始的直播排期 @Description 获取即将开始的直播排期列表 @Tags 直播 @Produce json @Param limit query int false "记录数量限制" default(20) @Success 200 {array} model.LiveSchedule @Failure 500 {object} map[string]any @Router /live/schedules/upcoming [get]

func (*LiveHandler) JoinRoom

func (h *LiveHandler) JoinRoom(c *gin.Context)

JoinRoom 加入直播间 @Summary 加入直播间 @Description 用户加入指定的直播间 @Tags 直播 @Accept json @Produce json @Param roomId path string true "房间ID" @Param request body map[string]string true "会话信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Router /live/rooms/{roomId}/join [post]

func (*LiveHandler) LeaveRoom

func (h *LiveHandler) LeaveRoom(c *gin.Context)

LeaveRoom 离开直播间 @Summary 离开直播间 @Description 用户离开直播间 @Tags 直播 @Accept json @Produce json @Param roomId path string true "房间ID" @Param request body map[string]string true "会话信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Router /live/rooms/{roomId}/leave [post]

func (*LiveHandler) MuteUser

func (h *LiveHandler) MuteUser(c *gin.Context)

MuteUser 禁言用户 @Summary 禁言用户 @Description 在直播间中禁言指定用户 @Tags 直播 @Accept json @Produce json @Security BearerAuth @Param roomId path string true "房间ID" @Param request body map[string]any true "禁言信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /live/rooms/{roomId}/mute [post]

func (*LiveHandler) SendGift

func (h *LiveHandler) SendGift(c *gin.Context)

SendGift 发送礼物 @Summary 发送礼物 @Description 在直播间中发送礼物 @Tags 直播 @Accept json @Produce json @Security BearerAuth @Param roomId path string true "房间ID" @Param request body map[string]any true "礼物信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /live/rooms/{roomId}/gifts [post]

func (*LiveHandler) StartLive

func (h *LiveHandler) StartLive(c *gin.Context)

StartLive 开始直播 @Summary 开始直播 @Description 开始指定房间的直播 @Tags 直播 @Produce json @Security BearerAuth @Param roomId path string true "房间ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /live/rooms/{roomId}/start [post]

func (*LiveHandler) StopLive

func (h *LiveHandler) StopLive(c *gin.Context)

StopLive 停止直播 @Summary 停止直播 @Description 停止指定房间的直播 @Tags 直播 @Produce json @Security BearerAuth @Param roomId path string true "房间ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /live/rooms/{roomId}/stop [post]

func (*LiveHandler) UpdateLiveRoom

func (h *LiveHandler) UpdateLiveRoom(c *gin.Context)

UpdateLiveRoom 更新直播房间信息 @Summary 更新直播房间信息 @Description 更新指定直播房间的信息 @Tags 直播 @Accept json @Produce json @Security BearerAuth @Param roomId path string true "房间ID" @Param request body model.CreateLiveRoomRequest true "房间信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /live/rooms/{roomId} [put]

type MediaDeliveryHandler

type MediaDeliveryHandler struct {
	// contains filtered or unexported fields
}

func NewMediaDeliveryHandler

func NewMediaDeliveryHandler(provider storage.Provider) *MediaDeliveryHandler

func (*MediaDeliveryHandler) ServeSigned

func (h *MediaDeliveryHandler) ServeSigned(c *gin.Context)

ServeSigned 提供签名验证的媒体文件访问 @Summary 签名访问媒体文件 @Description 通过签名验证访问本地存储的媒体文件,确保访问安全性 @Tags 媒体管理 @Accept json @Produce application/octet-stream @Param path path string true "文件路径" @Param expires query int true "过期时间戳" @Param signature query string true "签名字符串" @Success 200 {file} binary @Failure 400 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /media/signed/{path} [get]

type MediaUploadHandler

type MediaUploadHandler struct {
	// contains filtered or unexported fields
}

MediaUploadHandler 媒体上传处理器

func NewMediaUploadHandler

func NewMediaUploadHandler(
	videoUploadService service.VideoUploadServiceInterface,
	contentService service.ContentServiceInterface,
	adminService service.AdminServiceInterface,
	fileUploadService service.FileUploadServiceInterface,
	mediaFileService service.MediaFileServiceInterface,
) *MediaUploadHandler

NewMediaUploadHandler 创建媒体上传处理器

func (*MediaUploadHandler) BatchUploadThumbnails

func (h *MediaUploadHandler) BatchUploadThumbnails(c *gin.Context)

BatchUploadThumbnails 批量上传缩略图 @Summary 批量上传缩略图 @Description 批量上传视频缩略图文件 @Tags 媒体上传 @Accept multipart/form-data @Produce json @Security BearerAuth @Param thumbnails formData file true "缩略图文件(可多个)" @Param series_id formData int false "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /media/thumbnail/batch-upload [post]

func (*MediaUploadHandler) BatchUploadVideos

func (h *MediaUploadHandler) BatchUploadVideos(c *gin.Context)

BatchUploadVideos 批量视频上传 @Summary 批量上传视频 @Description 批量上传多个视频文件,需要管理员或审核员权限 @Tags 媒体上传 @Accept multipart/form-data @Produce json @Security BearerAuth @Param videos formData file true "视频文件(可多个)" @Param series_id formData int true "剧集ID" @Param start_episode formData int true "起始集数" @Param season_number formData int false "季数" default(1) @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /media/video/batch-upload [post]

func (*MediaUploadHandler) CheckUploadStatus

func (h *MediaUploadHandler) CheckUploadStatus(c *gin.Context)

CheckUploadStatus 检查上传状态 @Summary 检查上传状态 @Description 检查断点续传的当前状态,返回已上传的分片 @Tags 视频上传 @Produce json @Security BearerAuth @Param upload_id path string true "上传ID" @Success 200 {object} service.InitResumableUploadResponse @Failure 404 {object} map[string]any @Router /videos/upload/status/{upload_id} [get]

func (*MediaUploadHandler) DeleteMediaFile

func (h *MediaUploadHandler) DeleteMediaFile(c *gin.Context)

DeleteMediaFile 删除媒体文件 @Summary 删除媒体文件 @Description 删除指定的媒体文件(需要权限验证) @Tags 媒体管理 @Accept json @Produce json @Security BearerAuth @Param file_id path int true "文件ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /media/file/{file_id} [delete]

func (*MediaUploadHandler) GetBatchUploadProgress

func (h *MediaUploadHandler) GetBatchUploadProgress(c *gin.Context)

GetBatchUploadProgress 获取批量上传进度 @Summary 获取批量上传进度 @Description 查询批量视频上传任务的进度信息 @Tags 媒体上传 @Accept json @Produce json @Security BearerAuth @Param batch_id query string true "批量任务ID" @Success 200 {object} service.BatchUploadProgress @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /media/video/batch-progress [get]

func (*MediaUploadHandler) GetMediaLibrary

func (h *MediaUploadHandler) GetMediaLibrary(c *gin.Context)

GetMediaLibrary 获取媒体库 @Summary 获取媒体库 @Description 查询用户的媒体文件库,支持分页和筛选 @Tags 媒体管理 @Accept json @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param page_size query int false "每页数量" default(20) @Param file_type query string false "文件类型 (video/image/audio)" @Param series_id query int false "剧集ID" @Success 200 {object} model.MediaLibraryResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /media/library [get]

func (*MediaUploadHandler) GetUploadProgress

func (h *MediaUploadHandler) GetUploadProgress(c *gin.Context)

GetUploadProgress 获取上传进度 @Summary 获取上传进度 @Description 查询视频上传任务的当前进度信息 @Tags 媒体上传 @Accept json @Produce json @Security BearerAuth @Param upload_id path string true "上传ID" @Success 200 {object} model.MediaUploadProgress @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /media/video/progress/{upload_id} [get]

func (*MediaUploadHandler) InitResumableUpload

func (h *MediaUploadHandler) InitResumableUpload(c *gin.Context)

InitResumableUpload 初始化断点续传 @Summary 初始化断点续传 @Description 初始化视频断点续传,返回uploadID用于后续分片上传 @Tags 视频上传 @Accept json @Produce json @Security BearerAuth @Param request body service.InitResumableUploadRequest true "初始化请求" @Success 200 {object} service.InitResumableUploadResponse @Failure 400 {object} map[string]any @Router /videos/upload/init [post]

func (*MediaUploadHandler) MergeChunks

func (h *MediaUploadHandler) MergeChunks(c *gin.Context)

MergeChunks 合并分片 @Summary 合并视频分片 @Description 合并所有上传的分片,完成视频上传 @Tags 视频上传 @Accept json @Produce json @Security BearerAuth @Param request body service.MergeChunksRequest true "合并请求" @Success 200 {object} service.UploadResponse @Failure 400 {object} map[string]any @Router /videos/upload/merge [post]

func (*MediaUploadHandler) UploadChunk

func (h *MediaUploadHandler) UploadChunk(c *gin.Context)

UploadChunk 上传分片 @Summary 上传视频分片 @Description 上传视频的单个分片,支持断点续传 @Tags 视频上传 @Accept multipart/form-data @Produce json @Security BearerAuth @Param upload_id formData string true "上传ID" @Param chunk_index formData int true "分片索引" @Param chunk formData file true "分片文件" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Router /videos/upload/chunk [post]

func (*MediaUploadHandler) UploadThumbnail

func (h *MediaUploadHandler) UploadThumbnail(c *gin.Context)

UploadThumbnail 上传缩略图 @Summary 上传缩略图 @Description 上传视频或剧集的缩略图文件 @Tags 媒体上传 @Accept multipart/form-data @Produce json @Security BearerAuth @Param thumbnail formData file true "缩略图文件" @Param content_type formData string false "内容类型" Enums(series_poster, series_banner, episode_thumbnail) @Param series_id formData int false "剧集ID" @Param episode_id formData int false "剧集ID" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /media/thumbnail/upload [post]

func (*MediaUploadHandler) UploadVideo

func (h *MediaUploadHandler) UploadVideo(c *gin.Context)

UploadVideo 单个视频上传 @Summary 上传单个视频 @Description 上传单个视频文件到指定剧集和集数 @Tags 媒体上传 @Accept multipart/form-data @Produce json @Security BearerAuth @Param video formData file true "视频文件" @Param series_id formData int true "剧集ID" @Param episode_number formData int true "集数" @Param season_number formData int false "季数" default(1) @Param title formData string false "标题" @Param description formData string false "描述" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /media/video/upload [post]

type NotificationHandler

type NotificationHandler struct {
	// contains filtered or unexported fields
}

NotificationHandler 通知处理器

func NewNotificationHandler

func NewNotificationHandler(notificationService service.NotificationServiceInterface) *NotificationHandler

NewNotificationHandler 创建通知处理器

func (*NotificationHandler) GetNotifications

func (h *NotificationHandler) GetNotifications(c *gin.Context)

GetNotifications 获取通知列表 @Summary 获取通知列表 @Description 获取用户的通知列表 @Tags 通知 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.NotificationListResponse @Failure 401 {object} map[string]any @Router /notifications [get]

func (*NotificationHandler) GetUnreadCount

func (h *NotificationHandler) GetUnreadCount(c *gin.Context)

GetUnreadCount 获取未读通知数量 @Summary 获取未读通知数量 @Description 获取用户未读通知的数量 @Tags 通知 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Router /notifications/unread-count [get]

func (*NotificationHandler) MarkAllAsRead

func (h *NotificationHandler) MarkAllAsRead(c *gin.Context)

MarkAllAsRead 标记所有通知为已读 @Summary 标记所有通知为已读 @Description 标记用户所有通知为已读状态 @Tags 通知 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Router /notifications/read-all [put]

func (*NotificationHandler) MarkAsRead

func (h *NotificationHandler) MarkAsRead(c *gin.Context)

MarkAsRead 标记通知为已读 @Summary 标记通知为已读 @Description 标记指定通知为已读状态 @Tags 通知 @Produce json @Security BearerAuth @Param notification_id path int true "通知ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /notifications/{notification_id}/read [put]

func (*NotificationHandler) RegisterPushSubscription

func (h *NotificationHandler) RegisterPushSubscription(c *gin.Context)

RegisterPushSubscription 注册推送订阅 @Summary 注册推送订阅 @Description 注册Web推送订阅信息 @Tags 通知 @Accept json @Produce json @Security BearerAuth @Param subscription body map[string]any true "推送订阅信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /notifications/push-subscription [post]

func (*NotificationHandler) SendTestNotification

func (h *NotificationHandler) SendTestNotification(c *gin.Context)

SendTestNotification 发送测试通知 @Summary 发送测试通知 @Description 发送测试通知(仅开发环境) @Tags 通知 @Accept json @Produce json @Security BearerAuth @Param request body map[string]any true "通知内容" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /notifications/test [post]

func (*NotificationHandler) WebSocketEndpoint

func (h *NotificationHandler) WebSocketEndpoint(c *gin.Context)

WebSocketEndpoint WebSocket连接端点 @Summary WebSocket通知连接 @Description 建立WebSocket连接接收实时通知 @Tags 通知 @Security BearerAuth @Router /notifications/ws [get]

type NotificationManagementHandler

type NotificationManagementHandler struct {
	// contains filtered or unexported fields
}

NotificationManagementHandler 通知管理处理器

func NewNotificationManagementHandler

func NewNotificationManagementHandler(notificationService service.NotificationManagementServiceInterface) *NotificationManagementHandler

NewNotificationManagementHandler 创建通知管理处理器

func (*NotificationManagementHandler) CreateNotificationCampaign

func (h *NotificationManagementHandler) CreateNotificationCampaign(c *gin.Context)

CreateNotificationCampaign 创建通知活动 @Summary 创建通知活动 @Description 管理员创建新的通知活动 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateNotificationCampaignRequest true "通知活动创建请求" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/notifications/campaigns [post]

func (*NotificationManagementHandler) CreateNotificationProvider

func (h *NotificationManagementHandler) CreateNotificationProvider(c *gin.Context)

CreateNotificationProvider 创建通知提供商 @Summary 创建通知提供商 @Description 管理员创建新的通知服务提供商配置(邮件、短信、推送等) @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param provider body model.NotificationProvider true "提供商信息" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/providers [post]

func (*NotificationManagementHandler) CreateNotificationSchedule

func (h *NotificationManagementHandler) CreateNotificationSchedule(c *gin.Context)

CreateNotificationSchedule 创建定时通知 @Summary 创建定时通知 @Description 管理员创建定时或周期性通知任务,支持计划执行 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateNotificationScheduleRequest true "定时通知创建请求" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/schedules [post]

func (*NotificationManagementHandler) CreateNotificationTemplate

func (h *NotificationManagementHandler) CreateNotificationTemplate(c *gin.Context)

CreateNotificationTemplate 创建通知模板 @Summary 创建通知模板 @Description 管理员创建新的通知模板 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateNotificationTemplateRequest true "通知模板创建请求" @Success 201 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/notifications/templates [post]

func (*NotificationManagementHandler) DeleteNotificationSchedule

func (h *NotificationManagementHandler) DeleteNotificationSchedule(c *gin.Context)

DeleteNotificationSchedule 删除定时通知 @Summary 删除定时通知 @Description 删除指定的定时通知任务 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "定时任务ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/schedules/{id} [delete]

func (*NotificationManagementHandler) DeleteNotificationTemplate

func (h *NotificationManagementHandler) DeleteNotificationTemplate(c *gin.Context)

DeleteNotificationTemplate 删除通知模板 @Summary 删除通知模板 @Description 删除指定的通知模板 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "模板ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/notifications/templates/{id} [delete]

func (*NotificationManagementHandler) GetCampaignStats

func (h *NotificationManagementHandler) GetCampaignStats(c *gin.Context)

GetCampaignStats 获取活动统计 @Summary 获取活动统计 @Description 获取指定通知活动的详细统计数据,包括发送量、打开率等 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param campaign_id path int true "活动ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/campaigns/{campaign_id}/stats [get]

func (*NotificationManagementHandler) GetNotificationAnalytics

func (h *NotificationManagementHandler) GetNotificationAnalytics(c *gin.Context)

GetNotificationAnalytics 获取通知分析 @Summary 获取通知分析 @Description 获取通知系统的详细分析数据,支持按时间、类型、活动等维度筛选 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param start_date query string false "开始日期 (格式: 2006-01-02)" @Param end_date query string false "结束日期 (格式: 2006-01-02)" @Param type query string false "通知类型" @Param category query string false "通知类别" @Param campaign_id query int false "活动ID" @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/analytics [get]

func (*NotificationManagementHandler) GetNotificationCampaign

func (h *NotificationManagementHandler) GetNotificationCampaign(c *gin.Context)

GetNotificationCampaign 获取通知活动详情 @Summary 获取通知活动详情 @Description 获取指定通知活动的详细信息 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "活动ID" @Success 200 {object} model.NotificationCampaign @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/notifications/campaigns/{id} [get]

func (*NotificationManagementHandler) GetNotificationCampaigns

func (h *NotificationManagementHandler) GetNotificationCampaigns(c *gin.Context)

GetNotificationCampaigns 获取通知活动列表 @Summary 获取通知活动列表 @Description 分页获取通知活动列表 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/campaigns [get]

func (*NotificationManagementHandler) GetNotificationMessages

func (h *NotificationManagementHandler) GetNotificationMessages(c *gin.Context)

GetNotificationMessages 获取通知消息列表 @Summary 获取通知消息列表 @Description 分页获取系统中所有的通知消息记录,支持多条件筛选 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param type query string false "通知类型" @Param status query string false "消息状态" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/messages [get]

func (*NotificationManagementHandler) GetNotificationProviders

func (h *NotificationManagementHandler) GetNotificationProviders(c *gin.Context)

GetNotificationProviders 获取通知提供商列表 @Summary 获取通知提供商列表 @Description 获取系统中所有配置的通知服务提供商列表 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/providers [get]

func (*NotificationManagementHandler) GetNotificationSchedules

func (h *NotificationManagementHandler) GetNotificationSchedules(c *gin.Context)

GetNotificationSchedules 获取定时通知列表 @Summary 获取定时通知列表 @Description 分页获取所有定时通知任务列表 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/schedules [get]

func (*NotificationManagementHandler) GetNotificationSummary

func (h *NotificationManagementHandler) GetNotificationSummary(c *gin.Context)

GetNotificationSummary 获取通知摘要 @Summary 获取通知摘要 @Description 获取通知系统的总体摘要信息,包括发送量、成功率等关键指标 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/summary [get]

func (*NotificationManagementHandler) GetNotificationTemplate

func (h *NotificationManagementHandler) GetNotificationTemplate(c *gin.Context)

GetNotificationTemplate 获取通知模板详情 @Summary 获取通知模板详情 @Description 获取指定通知模板的详细信息 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "模板ID" @Success 200 {object} model.NotificationTemplate @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/notifications/templates/{id} [get]

func (*NotificationManagementHandler) GetNotificationTemplates

func (h *NotificationManagementHandler) GetNotificationTemplates(c *gin.Context)

GetNotificationTemplates 获取通知模板列表 @Summary 获取通知模板列表 @Description 分页获取通知模板列表 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/templates [get]

func (*NotificationManagementHandler) GetTemplatesByType

func (h *NotificationManagementHandler) GetTemplatesByType(c *gin.Context)

GetTemplatesByType 根据类型获取模板 @Summary 根据类型获取模板 @Description 获取指定类型的所有通知模板 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param type path string true "模板类型" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/notifications/templates/type/{type} [get]

func (*NotificationManagementHandler) GetUnreadCount

func (h *NotificationManagementHandler) GetUnreadCount(c *gin.Context)

GetUnreadCount 获取未读消息数量 @Summary 获取未读消息数量 @Description 获取指定用户的未读通知消息数量 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param user_id query int true "用户ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/messages/unread-count [get]

func (*NotificationManagementHandler) GetUserNotificationSettings

func (h *NotificationManagementHandler) GetUserNotificationSettings(c *gin.Context)

GetUserNotificationSettings 获取用户通知设置 @Summary 获取用户通知设置 @Description 获取指定用户的通知偏好设置(推送渠道、频率等) @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param user_id path int true "用户ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/settings/user/{user_id} [get]

func (*NotificationManagementHandler) GetUserNotifications

func (h *NotificationManagementHandler) GetUserNotifications(c *gin.Context)

GetUserNotifications 获取用户通知 @Summary 获取用户通知 @Description 获取指定用户的所有通知消息列表 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param user_id path int true "用户ID" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/messages/user/{user_id} [get]

func (*NotificationManagementHandler) MarkMessageAsRead

func (h *NotificationManagementHandler) MarkMessageAsRead(c *gin.Context)

MarkMessageAsRead 标记消息为已读 @Summary 标记消息为已读 @Description 管理员将指定的通知消息标记为已读状态 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "消息ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/messages/{id}/read [put]

func (*NotificationManagementHandler) SendBulkNotification

func (h *NotificationManagementHandler) SendBulkNotification(c *gin.Context)

SendBulkNotification 批量发送通知 @Summary 批量发送通知 @Description 管理员使用指定模板向多个用户批量发送通知 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param request body object{template_id=int64,user_ids=[]int64,data=map[string]any} true "批量通知请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/messages/bulk [post]

func (*NotificationManagementHandler) SendNotification

func (h *NotificationManagementHandler) SendNotification(c *gin.Context)

SendNotification 发送通知 @Summary 发送通知 @Description 管理员向指定用户发送通知消息 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param request body model.SendNotificationRequest true "通知发送请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/messages [post]

func (*NotificationManagementHandler) StartNotificationCampaign

func (h *NotificationManagementHandler) StartNotificationCampaign(c *gin.Context)

StartNotificationCampaign 启动通知活动 @Summary 启动通知活动 @Description 启动指定的通知活动 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "活动ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/notifications/campaigns/{id}/start [post]

func (*NotificationManagementHandler) StopNotificationCampaign

func (h *NotificationManagementHandler) StopNotificationCampaign(c *gin.Context)

StopNotificationCampaign 停止通知活动 @Summary 停止通知活动 @Description 停止指定的通知活动 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "活动ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/notifications/campaigns/{id}/stop [post]

func (*NotificationManagementHandler) TestNotificationProvider

func (h *NotificationManagementHandler) TestNotificationProvider(c *gin.Context)

TestNotificationProvider 测试通知提供商 @Summary 测试通知提供商 @Description 测试指定通知服务提供商的连接和配置是否正常 @Tags 管理后台 - 通知 @Produce json @Security BearerAuth @Param id path int true "提供商ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/providers/{id}/test [post]

func (*NotificationManagementHandler) UpdateNotificationProvider

func (h *NotificationManagementHandler) UpdateNotificationProvider(c *gin.Context)

UpdateNotificationProvider 更新通知提供商 @Summary 更新通知提供商 @Description 更新指定通知服务提供商的配置信息 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param id path int true "提供商ID" @Param updates body map[string]any true "更新内容" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/providers/{id} [put]

func (*NotificationManagementHandler) UpdateNotificationSchedule

func (h *NotificationManagementHandler) UpdateNotificationSchedule(c *gin.Context)

UpdateNotificationSchedule 更新定时通知 @Summary 更新定时通知 @Description 更新指定定时通知任务的配置信息 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param id path int true "定时任务ID" @Param updates body map[string]any true "更新内容" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/schedules/{id} [put]

func (*NotificationManagementHandler) UpdateNotificationTemplate

func (h *NotificationManagementHandler) UpdateNotificationTemplate(c *gin.Context)

UpdateNotificationTemplate 更新通知模板 @Summary 更新通知模板 @Description 更新指定通知模板的信息 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param id path int true "模板ID" @Param request body model.UpdateNotificationTemplateRequest true "更新请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/notifications/templates/{id} [put]

func (*NotificationManagementHandler) UpdateUserNotificationSettings

func (h *NotificationManagementHandler) UpdateUserNotificationSettings(c *gin.Context)

UpdateUserNotificationSettings 更新用户通知设置 @Summary 更新用户通知设置 @Description 管理员更新指定用户的通知偏好设置 @Tags 管理后台 - 通知 @Accept json @Produce json @Security BearerAuth @Param user_id path int true "用户ID" @Param settings body []model.NotificationSettings true "通知设置" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /admin/notifications/settings/user/{user_id} [put]

type PaymentHandler

type PaymentHandler struct {
	// contains filtered or unexported fields
}

PaymentHandler 支付处理器

func NewPaymentHandler

func NewPaymentHandler(services *service.Services) *PaymentHandler

NewPaymentHandler 创建支付处理器

func (*PaymentHandler) AlipayCallback

func (h *PaymentHandler) AlipayCallback(c *gin.Context)

AlipayCallback 支付宝回调处理 @Summary 支付宝回调处理 @Description 处理支付宝支付结果回调 @Tags 支付 @Accept json @Produce plain @Param callback body map[string]any true "支付宝回调数据" @Success 200 {string} string "success" @Failure 400 {object} map[string]any @Router /api/v1/payment/callback/alipay [post]

func (*PaymentHandler) CreateOrder

func (h *PaymentHandler) CreateOrder(c *gin.Context)

CreateOrder 创建支付订单 @Summary 创建支付订单 @Description 为用户创建新的支付订单 @Tags 支付 @Accept json @Produce json @Security BearerAuth @Param request body model.CreatePaymentRequest true "支付订单信息" @Success 201 {object} model.PaymentResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/payment/create [post]

func (*PaymentHandler) GetOrderByID

func (h *PaymentHandler) GetOrderByID(c *gin.Context)

GetOrderByID 获取订单详情 @Summary 获取订单详情 @Description 根据订单ID获取支付订单的完整信息 @Tags 支付 @Produce json @Security BearerAuth @Param order_id path string true "订单ID" @Success 200 {object} model.PaymentOrder @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/payment/orders/{order_id} [get]

func (*PaymentHandler) GetOrderStatus

func (h *PaymentHandler) GetOrderStatus(c *gin.Context)

GetOrderStatus 获取订单状态 @Summary 获取订单状态 @Description 根据订单号获取支付订单状态 @Tags 支付 @Produce json @Security BearerAuth @Param orderNo path string true "订单号" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/payment/status/{orderNo} [get]

func (*PaymentHandler) GetPaymentURL

func (h *PaymentHandler) GetPaymentURL(c *gin.Context)

GetPaymentURL 获取支付URL @Summary 获取支付URL @Description 获取第三方支付(支付宝/微信)的支付URL或二维码 @Tags 支付 @Produce json @Security BearerAuth @Param order_id path string true "订单ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /api/v1/payment/orders/{order_id}/payment-url [get]

func (*PaymentHandler) GetTransactionHistory

func (h *PaymentHandler) GetTransactionHistory(c *gin.Context)

GetTransactionHistory 获取交易记录 @Summary 获取交易记录 @Description 获取用户的交易历史记录 @Tags 支付 @Produce json @Security BearerAuth @Param type query string false "交易类型筛选" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.TransactionListResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/payment/transactions [get]

func (*PaymentHandler) GetUserBalance

func (h *PaymentHandler) GetUserBalance(c *gin.Context)

GetUserBalance 获取用户余额 @Summary 获取用户余额 @Description 获取当前用户的账户余额信息 @Tags 支付 @Produce json @Security BearerAuth @Success 200 {object} model.UserBalanceResponse @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/payment/balance [get]

func (*PaymentHandler) PayWithBalance

func (h *PaymentHandler) PayWithBalance(c *gin.Context)

PayWithBalance 使用余额支付 @Summary 使用余额支付 @Description 使用账户余额完成订单支付 @Tags 支付 @Accept json @Produce json @Security BearerAuth @Param request body model.PayWithBalanceRequest true "余额支付请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/payment/pay-with-balance [post]

func (*PaymentHandler) WechatCallback

func (h *PaymentHandler) WechatCallback(c *gin.Context)

WechatCallback 微信支付回调处理 @Summary 微信支付回调处理 @Description 处理微信支付结果回调 @Tags 支付 @Accept xml @Produce xml @Param callback body string true "微信回调XML数据" @Success 200 {object} map[string]string @Failure 400 {object} map[string]string @Router /api/v1/payment/callback/wechat [post]

type PlayerHandler

type PlayerHandler struct {
	// contains filtered or unexported fields
}

PlayerHandler 播放器处理器

func NewPlayerHandler

func NewPlayerHandler(playerService service.PlayerServiceInterface) *PlayerHandler

NewPlayerHandler 创建播放器处理器

func (*PlayerHandler) GetPlaybackStats

func (h *PlayerHandler) GetPlaybackStats(c *gin.Context)

GetPlaybackStats 获取播放统计 @Summary 获取播放统计 @Description 获取指定分集的播放统计数据 @Tags 播放器 @Produce json @Param episode_id path int true "分集ID" @Param time_range query string false "时间范围" Enums(today, week, month, quarter, year) @Success 200 {object} service.VideoAnalytics @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /player/stats/{episode_id} [get]

func (*PlayerHandler) GetPlayerConfig

func (h *PlayerHandler) GetPlayerConfig(c *gin.Context)

GetPlayerConfig 获取播放器配置 @Summary 获取播放器配置 @Description 获取用户的播放器个人偏好设置 @Tags 播放器 @Produce json @Security BearerAuth @Success 200 {object} service.PlayerConfig @Failure 401 {object} map[string]any @Router /player/config [get]

func (*PlayerHandler) GetPlayerInfo

func (h *PlayerHandler) GetPlayerInfo(c *gin.Context)

GetPlayerInfo 获取播放器信息 @Summary 获取播放器信息 @Description 获取指定分集的播放器信息,包括播放配置、观看历史等 @Tags 播放器 @Produce json @Param episode_id path int true "分集ID" @Success 200 {object} service.PlayerResponse @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Failure 403 {object} map[string]any @Router /player/info/{episode_id} [get]

func (*PlayerHandler) GetUserWatchHistory

func (h *PlayerHandler) GetUserWatchHistory(c *gin.Context)

GetUserWatchHistory 获取用户观看历史 @Summary 获取用户观看历史 @Description 获取当前用户的观看历史记录 @Tags 播放器 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.WatchHistoryResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /player/history [get]

func (*PlayerHandler) GetVideoQualityInfo

func (h *PlayerHandler) GetVideoQualityInfo(c *gin.Context)

GetVideoQualityInfo 获取视频画质信息 @Summary 获取视频画质信息 @Description 获取指定分集的可用画质信息 @Tags 播放器 @Produce json @Param episode_id path int true "分集ID" @Success 200 {object} map[string]service.QualityInfo @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /player/quality/{episode_id} [get]

func (*PlayerHandler) TrackPlaybackEvent

func (h *PlayerHandler) TrackPlaybackEvent(c *gin.Context)

TrackPlaybackEvent 追踪播放事件 @Summary 追踪播放事件 @Description 记录用户的播放行为事件,如播放、暂停、跳转等 @Tags 播放器 @Accept json @Produce json @Security BearerAuth @Param event body service.PlaybackEvent true "播放事件" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /player/events [post]

func (*PlayerHandler) UpdatePlayerConfig

func (h *PlayerHandler) UpdatePlayerConfig(c *gin.Context)

UpdatePlayerConfig 更新播放器配置 @Summary 更新播放器配置 @Description 更新用户的播放器个人偏好设置 @Tags 播放器 @Accept json @Produce json @Security BearerAuth @Param config body service.PlayerConfig true "播放器配置" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /player/config [put]

type ProgressMessage

type ProgressMessage struct {
	Type      string  `json:"type"`
	TaskID    string  `json:"task_id"`
	Progress  float64 `json:"progress"`
	Status    string  `json:"status"`
	Message   string  `json:"message"`
	Data      any     `json:"data,omitempty"`
	Timestamp int64   `json:"timestamp"`
}

ProgressMessage 进度消息 WebSocket推送的标准进度消息格式,用于实时通知客户端任务执行状态

字段说明:

  • Type: 消息类型,可选值:"progress"(进度更新)、"complete"(完成)、"error"(错误)、"connection"(连接状态)
  • TaskID: 任务唯一标识符,用于客户端关联对应的任务
  • Progress: 进度百分比,取值范围0-100
  • Status: 任务状态,如"processing"(处理中)、"completed"(已完成)、"failed"(失败)、"uploading"(上传中)等
  • Message: 人类可读的状态描述,用于前端展示
  • Data: 附加数据(可选),可包含任务详情、错误信息、结果数据等
  • Timestamp: 消息发送时间戳(Unix秒),由服务端自动填充

示例JSON:

{
  "type": "progress",
  "task_id": "upload_12345",
  "progress": 45.5,
  "status": "uploading",
  "message": "正在上传文件...",
  "data": {"filename": "video.mp4", "size": 1024000},
  "timestamp": 1704067200
}

type ProgressService

type ProgressService interface {
	UpdateProgress(taskID string, progress float64, status, message string, data any)
	CompleteTask(taskID string, message string, data any)
	FailTask(taskID string, message string, error any)
}

ProgressService 进度服务接口 定义了任务进度管理的标准接口,用于在Service层中推送任务执行进度

方法说明:

  • UpdateProgress: 更新任务进度(0-100%之间的任意进度)
  • CompleteTask: 标记任务为完成状态(自动设置进度为100%)
  • FailTask: 标记任务为失败状态(包含错误信息)

实现类:

  • progressService: 基于WebSocket的实现,将进度通过WebSocket实时推送给客户端

使用示例:

func (s *VideoService) UploadVideo(ctx context.Context, file io.Reader) error {
    taskID := generateTaskID()
    s.progress.UpdateProgress(taskID, 10, "uploading", "开始上传...", nil)
    // ... 上传逻辑
    s.progress.UpdateProgress(taskID, 50, "uploading", "上传中...", nil)
    // ... 更多上传逻辑
    s.progress.CompleteTask(taskID, "上传成功", map[string]any{"videoID": videoID})
    return nil
}

func NewWebSocketProgressService

func NewWebSocketProgressService(wsHandler *WebSocketHandler) ProgressService

NewWebSocketProgressService 创建基于WebSocket的进度服务实例 工厂函数,返回ProgressService接口的WebSocket实现

Parameters:

  • wsHandler: WebSocket处理器实例,用于发送实时进度消息

Returns:

  • ProgressService: 进度服务接口实现

使用示例:

wsHandler := handler.NewWebSocketHandler()
progressSvc := handler.NewWebSocketProgressService(wsHandler)
// 在Service层注入使用
videoService := service.NewVideoService(repo, progressSvc)

type PromotionManagementHandler

type PromotionManagementHandler struct {
	// contains filtered or unexported fields
}

PromotionManagementHandler 运营推广管理处理器

func NewPromotionManagementHandler

func NewPromotionManagementHandler(promotionService service.PromotionManagementServiceInterface) *PromotionManagementHandler

NewPromotionManagementHandler 创建运营推广管理处理器

func (*PromotionManagementHandler) CreateHotRecommendation

func (h *PromotionManagementHandler) CreateHotRecommendation(c *gin.Context)

CreateHotRecommendation 创建热门推荐 @Summary 创建热门推荐 @Description 创建新的热门推荐内容(如热播剧集、精选创作者等) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param request body model.HotRecommendationCreateRequest true "热门推荐创建请求" @Success 201 {object} map[string]any{message=string,recommendation=model.HotRecommendation} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/hot-recommendations [post]

func (*PromotionManagementHandler) CreatePromotionItem

func (h *PromotionManagementHandler) CreatePromotionItem(c *gin.Context)

CreatePromotionItem 创建推广内容 @Summary 创建推广内容 @Description 在指定推广位中创建新的推广内容(如广告素材、推广卡片等) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param request body model.PromotionItemCreateRequest true "推广内容创建请求" @Success 201 {object} map[string]any{message=string,item=model.PromotionItem} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/items [post]

func (*PromotionManagementHandler) CreatePromotionSlot

func (h *PromotionManagementHandler) CreatePromotionSlot(c *gin.Context)

CreatePromotionSlot 创建推广位 @Summary 创建推广位 @Description 创建新的推广位,用于在应用中展示推广内容(如Banner、卡片等) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param request body model.PromotionSlotCreateRequest true "推广位创建请求" @Success 201 {object} map[string]any{message=string,slot=model.PromotionSlot} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/slots [post]

func (*PromotionManagementHandler) CreateSpecialActivity

func (h *PromotionManagementHandler) CreateSpecialActivity(c *gin.Context)

CreateSpecialActivity 创建专题活动 @Summary 创建专题活动 @Description 创建新的专题活动(如节日活动、季节专题、限时活动等) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param request body model.SpecialActivityCreateRequest true "专题活动创建请求" @Success 201 {object} map[string]any{message=string,activity=model.SpecialActivity} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/special-activities [post]

func (*PromotionManagementHandler) DeleteHotRecommendation

func (h *PromotionManagementHandler) DeleteHotRecommendation(c *gin.Context)

DeleteHotRecommendation 删除热门推荐 @Summary 删除热门推荐 @Description 删除指定的热门推荐(软删除) @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param recommendation_id path int true "推荐ID" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/hot-recommendations/{recommendation_id} [delete]

func (*PromotionManagementHandler) DeletePromotionItem

func (h *PromotionManagementHandler) DeletePromotionItem(c *gin.Context)

DeletePromotionItem 删除推广内容 @Summary 删除推广内容 @Description 删除指定的推广内容(软删除) @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param item_id path int true "推广内容ID" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/items/{item_id} [delete]

func (*PromotionManagementHandler) DeletePromotionSlot

func (h *PromotionManagementHandler) DeletePromotionSlot(c *gin.Context)

DeletePromotionSlot 删除推广位 @Summary 删除推广位 @Description 删除指定的推广位(软删除) @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param slot_id path int true "推广位ID" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/slots/{slot_id} [delete]

func (*PromotionManagementHandler) DeleteSpecialActivity

func (h *PromotionManagementHandler) DeleteSpecialActivity(c *gin.Context)

DeleteSpecialActivity 删除专题活动 @Summary 删除专题活动 @Description 删除指定的专题活动(软删除) @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param activity_id path int true "活动ID" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/special-activities/{activity_id} [delete]

func (*PromotionManagementHandler) GetHotRecommendation

func (h *PromotionManagementHandler) GetHotRecommendation(c *gin.Context)

GetHotRecommendation 获取热门推荐详情 @Summary 获取热门推荐详情 @Description 根据推荐ID获取热门推荐的详细信息 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param recommendation_id path int true "推荐ID" @Success 200 {object} model.HotRecommendation @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/hot-recommendations/{recommendation_id} [get]

func (*PromotionManagementHandler) GetHotRecommendations

func (h *PromotionManagementHandler) GetHotRecommendations(c *gin.Context)

GetHotRecommendations 获取热门推荐列表 @Summary 获取热门推荐列表 @Description 获取热门推荐列表,支持按推荐类型和激活状态筛选 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param type query string false "推荐类型(trending, featured, editor_choice, new_release)" @Param is_active query boolean false "是否激活" @Success 200 {object} map[string]any{recommendations=[]model.HotRecommendationInfo,total=int} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/hot-recommendations [get]

func (*PromotionManagementHandler) GetPromotionAnalytics

func (h *PromotionManagementHandler) GetPromotionAnalytics(c *gin.Context)

GetPromotionAnalytics 获取推广分析 @Summary 获取推广分析数据 @Description 获取指定时间范围内的推广效果分析数据,包括展示量、点击率、转化率等关键指标 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param start_date query string false "开始日期(格式:2006-01-02,默认30天前)" @Param end_date query string false "结束日期(格式:2006-01-02,默认今天)" @Success 200 {object} model.PromotionAnalyticsData @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/analytics [get]

func (*PromotionManagementHandler) GetPromotionItem

func (h *PromotionManagementHandler) GetPromotionItem(c *gin.Context)

GetPromotionItem 获取推广内容详情 @Summary 获取推广内容详情 @Description 根据推广内容ID获取详细信息 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param item_id path int true "推广内容ID" @Success 200 {object} model.PromotionItem @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/items/{item_id} [get]

func (*PromotionManagementHandler) GetPromotionItems

func (h *PromotionManagementHandler) GetPromotionItems(c *gin.Context)

GetPromotionItems 获取推广内容列表 @Summary 获取推广内容列表 @Description 获取指定推广位下的所有推广内容列表 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param slot_id query int true "推广位ID" @Success 200 {object} map[string]any{items=[]model.PromotionItemInfo,total=int} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/items [get]

func (*PromotionManagementHandler) GetPromotionOverview

func (h *PromotionManagementHandler) GetPromotionOverview(c *gin.Context)

GetPromotionOverview 获取推广概览 @Summary 获取推广概览 @Description 获取推广系统的整体概览数据,包括推广位、推广内容、活动统计等汇总信息 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param start_date query string false "开始日期(格式:2006-01-02,默认7天前)" @Param end_date query string false "结束日期(格式:2006-01-02,默认今天)" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/analytics/overview [get]

func (*PromotionManagementHandler) GetPromotionSlot

func (h *PromotionManagementHandler) GetPromotionSlot(c *gin.Context)

GetPromotionSlot 获取推广位详情 @Summary 获取推广位详情 @Description 根据推广位ID获取详细信息 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param slot_id path int true "推广位ID" @Success 200 {object} model.PromotionSlot @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/slots/{slot_id} [get]

func (*PromotionManagementHandler) GetPromotionSlots

func (h *PromotionManagementHandler) GetPromotionSlots(c *gin.Context)

GetPromotionSlots 获取推广位列表 @Summary 获取推广位列表 @Description 获取推广位列表,支持按位置、平台和激活状态筛选 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param position query string false "推广位置(如:home_top, category_banner)" @Param platform query string false "平台(web, mobile, app)" @Param is_active query boolean false "是否激活" @Success 200 {object} map[string]any{slots=[]model.PromotionSlotInfo,total=int} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/slots [get]

func (*PromotionManagementHandler) GetSpecialActivities

func (h *PromotionManagementHandler) GetSpecialActivities(c *gin.Context)

GetSpecialActivities 获取专题活动列表 @Summary 获取专题活动列表 @Description 获取专题活动列表,支持按活动类型和状态筛选 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param activity_type query string false "活动类型(festival, season, genre, creator_spotlight, limited_time)" @Param status query string false "活动状态(draft, active, paused, completed, cancelled)" @Success 200 {object} map[string]any{activities=[]model.SpecialActivityInfo,total=int} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/special-activities [get]

func (*PromotionManagementHandler) GetSpecialActivity

func (h *PromotionManagementHandler) GetSpecialActivity(c *gin.Context)

GetSpecialActivity 获取专题活动详情 @Summary 获取专题活动详情 @Description 根据活动ID获取专题活动的详细信息 @Tags 管理后台 - 推广管理 @Produce json @Security BearerAuth @Param activity_id path int true "活动ID" @Success 200 {object} model.SpecialActivity @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/special-activities/{activity_id} [get]

func (*PromotionManagementHandler) UpdateHotRecommendation

func (h *PromotionManagementHandler) UpdateHotRecommendation(c *gin.Context)

UpdateHotRecommendation 更新热门推荐 @Summary 更新热门推荐 @Description 更新热门推荐的配置信息(支持部分更新) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param recommendation_id path int true "推荐ID" @Param updates body map[string]any true "更新字段(支持部分更新)" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/hot-recommendations/{recommendation_id} [put]

func (*PromotionManagementHandler) UpdatePromotionItem

func (h *PromotionManagementHandler) UpdatePromotionItem(c *gin.Context)

UpdatePromotionItem 更新推广内容 @Summary 更新推广内容 @Description 更新推广内容的配置信息(支持部分更新) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param item_id path int true "推广内容ID" @Param updates body map[string]any true "更新字段(支持部分更新)" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/items/{item_id} [put]

func (*PromotionManagementHandler) UpdatePromotionSlot

func (h *PromotionManagementHandler) UpdatePromotionSlot(c *gin.Context)

UpdatePromotionSlot 更新推广位 @Summary 更新推广位 @Description 更新推广位的配置信息(支持部分更新) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param slot_id path int true "推广位ID" @Param updates body map[string]any true "更新字段(支持部分更新)" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/slots/{slot_id} [put]

func (*PromotionManagementHandler) UpdateSpecialActivity

func (h *PromotionManagementHandler) UpdateSpecialActivity(c *gin.Context)

UpdateSpecialActivity 更新专题活动 @Summary 更新专题活动 @Description 更新专题活动的配置信息(支持部分更新) @Tags 管理后台 - 推广管理 @Accept json @Produce json @Security BearerAuth @Param activity_id path int true "活动ID" @Param updates body map[string]any true "更新字段(支持部分更新)" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/promotion/special-activities/{activity_id} [put]

type RBACManagementHandler

type RBACManagementHandler struct {
	// contains filtered or unexported fields
}

RBACManagementHandler RBAC权限管理处理器

func NewRBACManagementHandler

func NewRBACManagementHandler(rbacService service.RBACServiceInterface) *RBACManagementHandler

NewRBACManagementHandler 创建RBAC管理处理器

func (*RBACManagementHandler) AssignPermissionsToRole

func (h *RBACManagementHandler) AssignPermissionsToRole(c *gin.Context)

AssignPermissionsToRole 为角色分配权限 @Summary 为角色分配权限 @Description 为指定角色分配一组权限 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param id path int true "角色ID" @Param request body object{permission_ids=[]int} true "权限ID列表" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/roles/{id}/permissions [post]

func (*RBACManagementHandler) AssignRolesToUser

func (h *RBACManagementHandler) AssignRolesToUser(c *gin.Context)

AssignRolesToUser 为用户分配角色 @Summary 为用户分配角色 @Description 为指定用户分配一个或多个角色 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param request body model.AssignRoleRequest true "角色分配信息" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/users/{id}/roles [post]

func (*RBACManagementHandler) CheckPermission

func (h *RBACManagementHandler) CheckPermission(c *gin.Context)

CheckPermission 检查权限 @Summary 检查权限 @Description 检查用户是否具有指定的操作权限 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param request body model.PermissionCheckRequest true "权限检查请求" @Success 200 {object} model.PermissionCheckResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/check [post]

func (*RBACManagementHandler) CreatePermission

func (h *RBACManagementHandler) CreatePermission(c *gin.Context)

CreatePermission 创建权限 @Summary 创建权限 @Description 创建新的系统权限,定义资源操作和所属模块 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param request body model.CreatePermissionRequest true "权限创建信息" @Success 201 {object} map[string]any{message=string,permission=model.Permission} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permissions [post]

func (*RBACManagementHandler) CreatePermissionGroup

func (h *RBACManagementHandler) CreatePermissionGroup(c *gin.Context)

CreatePermissionGroup 创建权限组 @Summary 创建权限组 @Description 创建新的权限组用于权限分类管理 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param request body model.PermissionGroup true "权限组信息" @Success 201 {object} map[string]any{message=string,group=model.PermissionGroup} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permission-groups [post]

func (*RBACManagementHandler) CreateRole

func (h *RBACManagementHandler) CreateRole(c *gin.Context)

CreateRole 创建角色 @Summary 创建角色 @Description 创建新的用户角色,可同时分配权限 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param request body model.CreateRoleRequest true "角色创建信息" @Success 201 {object} map[string]any{message=string,role=model.Role} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/roles [post]

func (*RBACManagementHandler) DeletePermission

func (h *RBACManagementHandler) DeletePermission(c *gin.Context)

DeletePermission 删除权限 @Summary 删除权限 @Description 删除指定的系统权限 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param id path int true "权限ID" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permissions/{id} [delete]

func (*RBACManagementHandler) DeleteRole

func (h *RBACManagementHandler) DeleteRole(c *gin.Context)

DeleteRole 删除角色 @Summary 删除角色 @Description 删除指定的用户角色 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param id path int true "角色ID" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/roles/{id} [delete]

func (*RBACManagementHandler) GetPermission

func (h *RBACManagementHandler) GetPermission(c *gin.Context)

GetPermission 获取权限详情 @Summary 获取权限详情 @Description 根据权限ID获取权限的详细信息 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param id path int true "权限ID" @Success 200 {object} model.Permission @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permissions/{id} [get]

func (*RBACManagementHandler) GetPermissionGroups

func (h *RBACManagementHandler) GetPermissionGroups(c *gin.Context)

GetPermissionGroups 获取权限组列表 @Summary 获取权限组列表 @Description 获取所有权限组及其包含的权限 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Success 200 {object} map[string]any{groups=[]model.PermissionGroup} @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permission-groups [get]

func (*RBACManagementHandler) GetPermissions

func (h *RBACManagementHandler) GetPermissions(c *gin.Context)

GetPermissions 获取权限列表 @Summary 获取权限列表 @Description 获取系统权限列表,支持分页、搜索和筛选 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param page query int false "页码" @Param limit query int false "每页数量" @Param search query string false "搜索关键词" @Param module query string false "所属模块" @Param resource query string false "资源名称" @Param action query string false "操作类型" @Param is_active query bool false "是否启用" @Success 200 {object} map[string]any{permissions=[]model.Permission,total=int,page=int,limit=int} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permissions [get]

func (*RBACManagementHandler) GetPermissionsByModule

func (h *RBACManagementHandler) GetPermissionsByModule(c *gin.Context)

GetPermissionsByModule 根据模块获取权限 @Summary 根据模块获取权限 @Description 获取指定模块下的所有权限 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param module path string true "模块名称" @Success 200 {object} map[string]any{module=string,permissions=[]model.Permission} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permissions/module/{module} [get]

func (*RBACManagementHandler) GetRBACAnalytics

func (h *RBACManagementHandler) GetRBACAnalytics(c *gin.Context)

GetRBACAnalytics 获取RBAC分析 @Summary 获取RBAC分析统计 @Description 获取权限系统的统计分析数据,包括角色、权限使用情况和活动记录 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param start_date query string false "开始日期" @Param end_date query string false "结束日期" @Param role_id query int false "角色ID" @Param user_id query int false "用户ID" @Success 200 {object} model.RBACAnalyticsResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/analytics [get]

func (*RBACManagementHandler) GetRole

func (h *RBACManagementHandler) GetRole(c *gin.Context)

GetRole 获取角色详情 @Summary 获取角色详情 @Description 根据角色ID获取角色的详细信息 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param id path int true "角色ID" @Success 200 {object} model.Role @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/roles/{id} [get]

func (*RBACManagementHandler) GetRolePermissions

func (h *RBACManagementHandler) GetRolePermissions(c *gin.Context)

GetRolePermissions 获取角色权限 @Summary 获取角色权限 @Description 获取指定角色的所有权限信息 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param id path int true "角色ID" @Success 200 {object} model.RolePermissionResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/roles/{id}/permissions [get]

func (*RBACManagementHandler) GetRoles

func (h *RBACManagementHandler) GetRoles(c *gin.Context)

GetRoles 获取角色列表 @Summary 获取角色列表 @Description 获取系统角色列表,支持分页、搜索和筛选 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param page query int false "页码" @Param limit query int false "每页数量" @Param search query string false "搜索关键词" @Param is_active query bool false "是否启用" @Param is_system query bool false "是否系统角色" @Success 200 {object} map[string]any{roles=[]model.Role,total=int,page=int,limit=int} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/roles [get]

func (*RBACManagementHandler) GetUserPermissions

func (h *RBACManagementHandler) GetUserPermissions(c *gin.Context)

GetUserPermissions 获取用户权限 @Summary 获取用户权限 @Description 获取指定用户的所有权限信息,包括角色权限 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Success 200 {object} model.UserPermissionInfo @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/users/{id}/permissions [get]

func (*RBACManagementHandler) GetUserResourcePermissions

func (h *RBACManagementHandler) GetUserResourcePermissions(c *gin.Context)

GetUserResourcePermissions 获取用户资源权限 @Summary 获取用户资源权限 @Description 获取用户对特定资源的所有权限 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param resource_type query string true "资源类型" @Param resource_id query int true "资源ID" @Success 200 {object} map[string]any{user_id=int,resource_type=string,resource_id=int,permissions=[]model.Permission} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/users/{id}/resources [get]

func (*RBACManagementHandler) GrantResourcePermission

func (h *RBACManagementHandler) GrantResourcePermission(c *gin.Context)

GrantResourcePermission 授予资源权限 @Summary 授予资源权限 @Description 为用户授予特定资源的权限 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param request body model.GrantResourcePermissionRequest true "资源权限授予信息" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/resources/grant [post]

func (*RBACManagementHandler) RevokeResourcePermission

func (h *RBACManagementHandler) RevokeResourcePermission(c *gin.Context)

RevokeResourcePermission 撤销资源权限 @Summary 撤销资源权限 @Description 撤销用户对特定资源的权限 @Tags 管理后台 - RBAC权限 @Produce json @Security BearerAuth @Param user_id query int true "用户ID" @Param resource_type query string true "资源类型" @Param resource_id query int true "资源ID" @Param permission_id query int true "权限ID" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/resources/revoke [post]

func (*RBACManagementHandler) RevokeRolesFromUser

func (h *RBACManagementHandler) RevokeRolesFromUser(c *gin.Context)

RevokeRolesFromUser 撤销用户角色 @Summary 撤销用户角色 @Description 从指定用户撤销一个或多个角色 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param request body model.RevokeRoleRequest true "角色撤销信息" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/users/{id}/roles [delete]

func (*RBACManagementHandler) UpdatePermission

func (h *RBACManagementHandler) UpdatePermission(c *gin.Context)

UpdatePermission 更新权限 @Summary 更新权限 @Description 更新指定权限的信息 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param id path int true "权限ID" @Param request body model.UpdatePermissionRequest true "权限更新信息" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/permissions/{id} [put]

func (*RBACManagementHandler) UpdateRole

func (h *RBACManagementHandler) UpdateRole(c *gin.Context)

UpdateRole 更新角色 @Summary 更新角色 @Description 更新指定角色的信息和权限 @Tags 管理后台 - RBAC权限 @Accept json @Produce json @Security BearerAuth @Param id path int true "角色ID" @Param request body model.UpdateRoleRequest true "角色更新信息" @Success 200 {object} map[string]any{message=string} @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/rbac/roles/{id} [put]

type RateLimitManagementHandler

type RateLimitManagementHandler struct {
	// contains filtered or unexported fields
}

RateLimitManagementHandler 限流管理处理器

func NewRateLimitManagementHandler

func NewRateLimitManagementHandler(multiCB *middleware.MultiCircuitBreaker) *RateLimitManagementHandler

NewRateLimitManagementHandler 创建限流管理处理器

func (*RateLimitManagementHandler) ClearRateLimit

func (h *RateLimitManagementHandler) ClearRateLimit(c *gin.Context)

ClearRateLimit 清除限流记录 @Summary 清除限流记录 @Description 清除指定客户端或所有客户端的限流记录 @Tags 管理后台 - 系统监控 @Accept json @Produce json @Security BearerAuth @Param request body model.ClearRateLimitRequest false "清除请求(client_ip为空则清除所有)" @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/system/rate-limit/clear [post]

func (*RateLimitManagementHandler) GetCircuitBreakerByName

func (h *RateLimitManagementHandler) GetCircuitBreakerByName(c *gin.Context)

GetCircuitBreakerByName 根据名称获取熔断器状态 @Summary 获取指定熔断器状态 @Description 根据熔断器名称获取其详细状态 @Tags 管理后台 - 系统监控 @Produce json @Security BearerAuth @Param name path string true "熔断器名称" @Success 200 {object} model.CircuitBreakerStatus @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/system/circuit-breaker/{name} [get]

func (*RateLimitManagementHandler) GetCircuitBreakerStats

func (h *RateLimitManagementHandler) GetCircuitBreakerStats(c *gin.Context)

GetCircuitBreakerStats 获取熔断器统计 @Summary 获取熔断器统计 @Description 获取系统中所有熔断器的状态统计 @Tags 管理后台 - 系统监控 @Produce json @Security BearerAuth @Success 200 {object} model.CircuitBreakerStatsResponse @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/system/circuit-breaker/stats [get]

func (*RateLimitManagementHandler) GetRateLimitStats

func (h *RateLimitManagementHandler) GetRateLimitStats(c *gin.Context)

GetRateLimitStats 获取限流统计 @Summary 获取限流统计 @Description 获取当前系统的限流状态统计,包括所有客户端的限流情况 @Tags 管理后台 - 系统监控 @Produce json @Security BearerAuth @Success 200 {object} model.RateLimitStatsResponse @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/system/rate-limit/stats [get]

func (*RateLimitManagementHandler) ResetCircuitBreaker

func (h *RateLimitManagementHandler) ResetCircuitBreaker(c *gin.Context)

ResetCircuitBreaker 重置熔断器 @Summary 重置熔断器 @Description 重置指定熔断器的状态和计数器 @Tags 管理后台 - 系统监控 @Accept json @Produce json @Security BearerAuth @Param request body model.ResetCircuitBreakerRequest true "重置请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/system/circuit-breaker/reset [post]

type RecommendationHandler

type RecommendationHandler struct {
	// contains filtered or unexported fields
}

func (*RecommendationHandler) AnalyzeUserPreferences

func (h *RecommendationHandler) AnalyzeUserPreferences(c *gin.Context)

AnalyzeUserPreferences 分析用户偏好 @Summary 分析用户偏好 @Description 分析用户的观看历史和行为数据,返回用户的偏好分析结果,包括分类偏好和标签偏好 @Tags 推荐系统 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /recommendations/preferences [get]

func (*RecommendationHandler) GetPersonalizedRecommendations

func (h *RecommendationHandler) GetPersonalizedRecommendations(c *gin.Context)

GetPersonalizedRecommendations 获取个性化推荐 @Summary 获取个性化推荐 @Description 根据用户历史行为和偏好获取个性化推荐内容,支持多种推荐算法(协同过滤、内容推荐、热门推荐、混合推荐) @Tags 推荐系统 @Produce json @Security BearerAuth @Param count query int false "推荐数量" default(20) @Param algorithm query string false "推荐算法类型" Enums(collaborative, content_based, trending, hybrid) default(hybrid) @Success 200 {object} service.RecommendationResponse @Failure 401 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /recommendations/personalized [get]

func (*RecommendationHandler) GetRecommendedTags

func (h *RecommendationHandler) GetRecommendedTags(c *gin.Context)

GetRecommendedTags 获取推荐标签 @Summary 获取推荐标签 @Description 根据用户偏好获取个性化推荐标签列表 @Tags 推荐系统 @Produce json @Security BearerAuth @Param count query int false "返回数量" default(10) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /recommendations/tags/suggested [get]

func (*RecommendationHandler) GetSimilarContent

func (h *RecommendationHandler) GetSimilarContent(c *gin.Context)

GetSimilarContent 获取相似内容 @Summary 获取相似内容 @Description 根据指定内容ID获取相似的内容推荐 @Tags 推荐系统 @Produce json @Param item_id path int true "内容ID" @Param item_type query string false "内容类型" Enums(episode, series) default(episode) @Param count query int false "返回数量" default(10) @Success 200 {object} service.RecommendationResponse @Failure 400 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /recommendations/similar/{item_id} [get]

func (*RecommendationHandler) GetTagBasedRecommendations

func (h *RecommendationHandler) GetTagBasedRecommendations(c *gin.Context)

GetTagBasedRecommendations 获取基于标签的推荐 @Summary 获取基于标签的推荐 @Description 根据用户指定的标签和标签权重获取个性化推荐内容 @Tags 推荐系统 @Accept json @Produce json @Security BearerAuth @Param request body service.TagBasedRecommendationRequest true "标签推荐请求" @Success 200 {object} service.RecommendationResponse @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /recommendations/tags [post]

func (*RecommendationHandler) GetTrendingContent

func (h *RecommendationHandler) GetTrendingContent(c *gin.Context)

GetTrendingContent 获取热门内容 @Summary 获取热门内容 @Description 获取指定时间范围内的热门内容,可按分类筛选 @Tags 推荐系统 @Produce json @Param time_range query string false "时间范围" Enums(day, week, month) default(week) @Param category query string false "内容分类" @Param count query int false "返回数量" default(20) @Success 200 {object} service.RecommendationResponse @Failure 500 {object} ErrorResponse @Router /recommendations/trending [get]

func (*RecommendationHandler) GetTrendingTags

func (h *RecommendationHandler) GetTrendingTags(c *gin.Context)

GetTrendingTags 获取热门标签 @Summary 获取热门标签 @Description 获取指定时间范围内的热门标签列表 @Tags 推荐系统 @Produce json @Param time_range query string false "时间范围" Enums(day, week, month) default(week) @Param count query int false "返回数量" default(20) @Success 200 {object} map[string]any @Failure 500 {object} map[string]any @Router /recommendations/tags/trending [get]

func (*RecommendationHandler) GetUserTagPreferences

func (h *RecommendationHandler) GetUserTagPreferences(c *gin.Context)

GetUserTagPreferences 获取用户标签偏好 @Summary 获取用户标签偏好 @Description 获取用户的标签偏好数据,包括标签权重和偏好分数 @Tags 推荐系统 @Produce json @Security BearerAuth @Success 200 {array} map[string]any @Failure 401 {object} ErrorResponse @Failure 500 {object} ErrorResponse @Router /recommendations/user-tag-preferences [get]

func (*RecommendationHandler) RecordUserBehavior

func (h *RecommendationHandler) RecordUserBehavior(c *gin.Context)

RecordUserBehavior 记录用户行为 @Summary 记录用户行为 @Description 记录用户在平台上的行为,用于推荐算法优化 @Tags 推荐系统 @Accept json @Produce json @Security BearerAuth @Param request body service.UserBehavior true "用户行为数据" @Success 200 {object} map[string]any @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Router /recommendations/behavior [post]

func (*RecommendationHandler) TrackRecommendationClick

func (h *RecommendationHandler) TrackRecommendationClick(c *gin.Context)

TrackRecommendationClick 跟踪推荐点击 @Summary 跟踪推荐点击 @Description 记录用户对推荐内容的点击行为 @Tags 推荐系统 @Accept json @Produce json @Security BearerAuth @Param item_id path int true "内容ID" @Param algorithm query string false "推荐算法" default("hybrid") @Success 200 {object} map[string]any @Failure 400 {object} ErrorResponse @Failure 401 {object} ErrorResponse @Router /recommendations/click/{item_id} [post]

type SearchEnhancementHandler

type SearchEnhancementHandler struct {
	// contains filtered or unexported fields
}

SearchEnhancementHandler 搜索增强处理器

func NewSearchEnhancementHandler

func NewSearchEnhancementHandler(searchService service.SearchEnhancementService) *SearchEnhancementHandler

NewSearchEnhancementHandler 创建搜索增强处理器

func (*SearchEnhancementHandler) ClearSearchHistory

func (h *SearchEnhancementHandler) ClearSearchHistory(c *gin.Context)

ClearSearchHistory 清除搜索历史 @Summary 清除搜索历史 @Description 清除当前用户的搜索历史(全部或指定关键词) @Tags 搜索 @Accept json @Produce json @Security BearerAuth @Param request body model.ClearSearchHistoryRequest false "清除请求" @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/search/history [delete]

func (*SearchEnhancementHandler) GetHotSearches

func (h *SearchEnhancementHandler) GetHotSearches(c *gin.Context)

GetHotSearches 获取热搜榜 @Summary 获取热搜榜 @Description 获取当前热门搜索关键词榜单 @Tags 搜索 @Produce json @Param limit query int false "返回数量" default(20) @Success 200 {object} model.HotSearchResponse @Failure 500 {object} map[string]any @Router /api/v1/search/hot [get]

func (*SearchEnhancementHandler) GetSearchAnalytics

func (h *SearchEnhancementHandler) GetSearchAnalytics(c *gin.Context)

GetSearchAnalytics 获取搜索分析统计(管理员) @Summary 获取搜索分析统计 @Description 管理员查看搜索数据分析和统计 @Tags 管理后台 - 数据分析 @Produce json @Security BearerAuth @Param start_date query string false "开始日期 YYYY-MM-DD" @Param end_date query string false "结束日期 YYYY-MM-DD" @Param limit query int false "Top关键词数量" default(10) @Success 200 {object} model.SearchAnalytics @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/admin/search/analytics [get]

func (*SearchEnhancementHandler) GetSearchHistory

func (h *SearchEnhancementHandler) GetSearchHistory(c *gin.Context)

GetSearchHistory 获取搜索历史 @Summary 获取搜索历史 @Description 获取当前用户的搜索历史记录 @Tags 搜索 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.SearchHistoryResponse @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/search/history [get]

func (*SearchEnhancementHandler) GetSearchSuggestions

func (h *SearchEnhancementHandler) GetSearchSuggestions(c *gin.Context)

GetSearchSuggestions 获取搜索建议 @Summary 获取搜索建议 @Description 根据输入的关键词获取搜索建议/自动补全 @Tags 搜索 @Produce json @Param q query string true "搜索关键词" @Param limit query int false "返回数量" default(10) @Success 200 {object} model.SearchSuggestionsResponse @Failure 400 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/search/suggestions [get]

func (*SearchEnhancementHandler) SaveSearchHistory

func (h *SearchEnhancementHandler) SaveSearchHistory(c *gin.Context)

SaveSearchHistory 保存搜索历史 @Summary 保存搜索历史 @Description 保存用户的搜索记录 @Tags 搜索 @Accept json @Produce json @Security BearerAuth @Param request body model.SaveSearchRequest true "搜索记录" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /api/v1/search/history [post]

type SocialHandler

type SocialHandler struct {
	// contains filtered or unexported fields
}

SocialHandler 社交处理器

func NewSocialHandler

func NewSocialHandler(socialService service.SocialServiceInterface) *SocialHandler

NewSocialHandler 创建社交处理器

func (*SocialHandler) CreateComment

func (h *SocialHandler) CreateComment(c *gin.Context)

CreateComment 创建评论 @Summary 创建评论 @Description 创建新的评论或回复 @Tags 社交功能 @Accept json @Produce json @Security BearerAuth @Param comment body service.CommentRequest true "评论内容" @Success 200 {object} service.CommentResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /social/comments [post]

func (*SocialHandler) DeleteComment

func (h *SocialHandler) DeleteComment(c *gin.Context)

DeleteComment 删除评论 @Summary 删除评论 @Description 删除指定的评论 @Tags 社交功能 @Produce json @Security BearerAuth @Param comment_id path int true "评论ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /social/comments/{comment_id} [delete]

func (*SocialHandler) GetComments

func (h *SocialHandler) GetComments(c *gin.Context)

GetComments 获取评论列表 @Summary 获取评论列表 @Description 获取指定剧集或分集的评论列表 @Tags 社交功能 @Produce json @Param series_id query int false "剧集ID" @Param episode_id query int false "分集ID" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param sort_by query string false "排序方式" Enums(hot, time) default(hot) @Success 200 {object} service.CommentListResponse @Failure 400 {object} map[string]any @Router /social/comments [get]

func (*SocialHandler) GetLikeStats

func (h *SocialHandler) GetLikeStats(c *gin.Context)

GetLikeStats 获取点赞统计 @Summary 获取点赞统计 @Description 获取指定目标的点赞统计信息 @Tags 社交功能 @Produce json @Param target_type query string true "目标类型" Enums(series, episode, comment) @Param target_id query int true "目标ID" @Success 200 {object} service.LikeStats @Failure 400 {object} map[string]any @Router /social/likes/stats [get]

func (*SocialHandler) GetUserComments

func (h *SocialHandler) GetUserComments(c *gin.Context)

GetUserComments 获取用户评论 @Summary 获取用户评论 @Description 获取当前用户的评论列表 @Tags 社交功能 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} service.CommentListResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /social/my/comments [get]

func (*SocialHandler) GetUserLikes

func (h *SocialHandler) GetUserLikes(c *gin.Context)

GetUserLikes 获取用户点赞 @Summary 获取用户点赞 @Description 获取当前用户的点赞列表 @Tags 社交功能 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} []service.LikeStats @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /social/my/likes [get]

func (*SocialHandler) ToggleLike

func (h *SocialHandler) ToggleLike(c *gin.Context)

ToggleLike 切换点赞 @Summary 切换点赞 @Description 对指定目标进行点赞或取消点赞 @Tags 社交功能 @Accept json @Produce json @Security BearerAuth @Param like body service.LikeRequest true "点赞请求" @Success 200 {object} service.LikeStats @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /social/likes [post]

func (*SocialHandler) UpdateComment

func (h *SocialHandler) UpdateComment(c *gin.Context)

UpdateComment 更新评论 @Summary 更新评论 @Description 更新指定评论的内容 @Tags 社交功能 @Accept json @Produce json @Security BearerAuth @Param comment_id path int true "评论ID" @Param request body map[string]string true "更新内容" @Success 200 {object} service.CommentResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /social/comments/{comment_id} [put]

type StorageManagementHandler

type StorageManagementHandler struct {
	// contains filtered or unexported fields
}

StorageManagementHandler 存储管理处理器

func NewStorageManagementHandler

func NewStorageManagementHandler(storageService service.StorageSettingsServiceInterface) *StorageManagementHandler

NewStorageManagementHandler 创建存储管理处理器

func (*StorageManagementHandler) CancelMigration

func (h *StorageManagementHandler) CancelMigration(c *gin.Context)

CancelMigration 取消迁移 @Summary 取消迁移任务 @Description 取消正在进行的存储迁移任务 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param migration_id path string true "迁移任务ID" @Success 200 {object} map[string]interface{} "取消成功" @Failure 400 {object} map[string]interface{} "请求参数错误或取消失败" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/migration/{migration_id}/cancel [post]

func (*StorageManagementHandler) CheckQuotaUsage

func (h *StorageManagementHandler) CheckQuotaUsage(c *gin.Context)

CheckQuotaUsage 检查配额使用情况 @Summary 检查配额使用情况 @Description 检查指定用户或剧集的存储配额使用情况 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param user_id query int false "用户ID" @Param series_id query int false "剧集ID" @Success 200 {object} model.StorageQuota "配额使用情况" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/quota/usage [get]

func (*StorageManagementHandler) GetBackupStatus

func (h *StorageManagementHandler) GetBackupStatus(c *gin.Context)

GetBackupStatus 获取备份状态 @Summary 获取备份状态 @Description 获取指定备份任务的详细状态和进度信息 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param backup_id path string true "备份任务ID" @Success 200 {object} model.StorageBackup "备份状态信息" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 404 {object} map[string]interface{} "备份任务不存在" @Router /admin/storage/backup/{backup_id} [get]

func (*StorageManagementHandler) GetCleanupStatus

func (h *StorageManagementHandler) GetCleanupStatus(c *gin.Context)

GetCleanupStatus 获取清理状态 @Summary 获取清理状态 @Description 获取指定清理任务的详细状态和进度信息 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param cleanup_id path string true "清理任务ID" @Success 200 {object} model.StorageCleanup "清理状态信息" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 404 {object} map[string]interface{} "清理任务不存在" @Router /admin/storage/cleanup/{cleanup_id} [get]

func (*StorageManagementHandler) GetMigrationStatus

func (h *StorageManagementHandler) GetMigrationStatus(c *gin.Context)

GetMigrationStatus 获取迁移状态 @Summary 获取迁移状态 @Description 获取指定迁移任务的详细状态和进度信息 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param migration_id path string true "迁移任务ID" @Success 200 {object} model.StorageMigrationResult "迁移状态信息" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 404 {object} map[string]interface{} "迁移任务不存在" @Router /admin/storage/migration/{migration_id} [get]

func (*StorageManagementHandler) GetMigrations

func (h *StorageManagementHandler) GetMigrations(c *gin.Context)

GetMigrations 获取迁移任务列表 @Summary 获取迁移任务列表 @Description 获取存储迁移任务列表,支持按状态筛选 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param status query string false "任务状态" Enums(all, pending, running, completed, failed, cancelled) default(all) @Param limit query int false "返回数量限制" default(50) @Success 200 {object} object{success=bool,data=[]model.StorageMigrationResult,message=string} "迁移任务列表" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/migrations [get]

func (*StorageManagementHandler) GetProviderPricing

func (h *StorageManagementHandler) GetProviderPricing(c *gin.Context)

GetProviderPricing 获取提供商价格信息 @Summary 获取存储提供商的价格信息 @Description 获取指定存储提供商的价格信息,包括存储费用、流量费用等 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param provider path string true "存储提供商" example(aliyun_oss) @Success 200 {object} object{provider=string,pricing=model.PricingInfo} "价格信息" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/providers/{provider}/pricing [get]

func (*StorageManagementHandler) GetProviderRegions

func (h *StorageManagementHandler) GetProviderRegions(c *gin.Context)

GetProviderRegions 获取提供商区域列表 @Summary 获取存储提供商的区域列表 @Description 获取指定存储提供商支持的区域列表,如阿里云的各个地域 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param provider path string true "存储提供商" example(aliyun_oss) @Success 200 {object} object{provider=string,regions=[]model.RegionInfo,total=int} "区域列表" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/providers/{provider}/regions [get]

func (*StorageManagementHandler) GetQuotaSettings

func (h *StorageManagementHandler) GetQuotaSettings(c *gin.Context)

GetQuotaSettings 获取配额设置 @Summary 获取配额设置 @Description 获取存储配额配置,包括全局配额、用户配额、剧集配额等 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Success 200 {object} model.StorageQuotaSettings "配额设置信息" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/quota/settings [get]

func (*StorageManagementHandler) GetStorageSettings

func (h *StorageManagementHandler) GetStorageSettings(c *gin.Context)

GetStorageSettings 获取存储设置 @Summary 获取存储设置 @Description 获取当前系统的存储配置信息,包括主存储、备份存储、CDN配置等 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Success 200 {object} model.StorageSettingsResponse "存储设置信息" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/settings [get]

func (*StorageManagementHandler) GetStorageStatistics

func (h *StorageManagementHandler) GetStorageStatistics(c *gin.Context)

GetStorageStatistics 获取存储统计 @Summary 获取存储统计信息 @Description 获取存储使用统计,包括容量、文件数量、流量等信息 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Success 200 {object} model.StorageStatistics "存储统计信息" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/statistics [get]

func (*StorageManagementHandler) GetStorageStatus

func (h *StorageManagementHandler) GetStorageStatus(c *gin.Context)

GetStorageStatus 获取存储状态 @Summary 获取存储状态 @Description 获取存储系统的运行状态,包括各存储提供商的健康状态 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Success 200 {object} model.StorageStatus "存储状态信息" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/status [get]

func (*StorageManagementHandler) GetSupportedProviders

func (h *StorageManagementHandler) GetSupportedProviders(c *gin.Context)

GetSupportedProviders 获取支持的存储提供商 @Summary 获取支持的存储提供商列表 @Description 获取系统支持的所有存储提供商信息,包括阿里云OSS、AWS S3等 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Success 200 {object} object{providers=[]model.StorageProviderInfo,total=int} "存储提供商列表" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/providers [get]

func (*StorageManagementHandler) RefreshStorageStats

func (h *StorageManagementHandler) RefreshStorageStats(c *gin.Context)

RefreshStorageStats 刷新存储统计 @Summary 刷新存储统计 @Description 手动触发刷新存储统计数据 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]interface{} "刷新成功" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "服务器错误" @Router /admin/storage/refresh-stats [post]

func (*StorageManagementHandler) RestoreFromBackup

func (h *StorageManagementHandler) RestoreFromBackup(c *gin.Context)

RestoreFromBackup 从备份恢复 @Summary 从备份恢复 @Description 从指定的备份恢复文件 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param backup_id path string true "备份任务ID" @Success 200 {object} map[string]interface{} "恢复成功" @Failure 400 {object} map[string]interface{} "请求参数错误或恢复失败" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/backup/{backup_id}/restore [post]

func (*StorageManagementHandler) RollbackMigration

func (h *StorageManagementHandler) RollbackMigration(c *gin.Context)

RollbackMigration 回滚迁移 @Summary 回滚迁移任务 @Description 回滚已完成的存储迁移任务,将文件恢复到迁移前的状态 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param migration_id path string true "迁移任务ID" @Success 200 {object} map[string]interface{} "回滚成功" @Failure 400 {object} map[string]interface{} "请求参数错误或回滚失败" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/migration/{migration_id}/rollback [post]

func (*StorageManagementHandler) StartBackup

func (h *StorageManagementHandler) StartBackup(c *gin.Context)

StartBackup 开始备份 @Summary 开始存储备份 @Description 启动存储备份任务,备份当前存储的文件 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Success 201 {object} object{backup_id=string,message=string} "备份任务创建成功" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/backup [post]

func (*StorageManagementHandler) StartStorageCleanup

func (h *StorageManagementHandler) StartStorageCleanup(c *gin.Context)

StartStorageCleanup 开始存储清理 @Summary 开始存储清理 @Description 启动存储清理任务,清理未使用、重复或低质量的文件 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param policy body model.CleanupPolicy true "清理策略" @Success 201 {object} object{cleanup_id=string,message=string} "清理任务创建成功" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/cleanup [post]

func (*StorageManagementHandler) StartStorageMigration

func (h *StorageManagementHandler) StartStorageMigration(c *gin.Context)

StartStorageMigration 开始存储迁移 @Summary 开始存储迁移 @Description 启动存储迁移任务,将文件从一个存储提供商迁移到另一个 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param request body model.StorageMigrationRequest true "迁移请求" @Success 201 {object} model.StorageMigrationResult "迁移任务创建成功" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/migration [post]

func (*StorageManagementHandler) TestStorageConnection

func (h *StorageManagementHandler) TestStorageConnection(c *gin.Context)

TestStorageConnection 测试存储连接 @Summary 测试存储连接 @Description 测试指定存储提供商的连接性和配置是否正确 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param request body object{provider=string,config=object} true "存储连接测试请求" @Success 200 {object} model.StorageTestResult "测试结果" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Failure 500 {object} map[string]interface{} "测试失败" @Router /admin/storage/test-connection [post]

func (*StorageManagementHandler) UpdateQuotaSettings

func (h *StorageManagementHandler) UpdateQuotaSettings(c *gin.Context)

UpdateQuotaSettings 更新配额设置 @Summary 更新配额设置 @Description 更新存储配额配置 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param settings body model.StorageQuotaSettings true "配额设置" @Success 200 {object} map[string]interface{} "更新成功" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/quota/settings [put]

func (*StorageManagementHandler) UpdateStorageSettings

func (h *StorageManagementHandler) UpdateStorageSettings(c *gin.Context)

UpdateStorageSettings 更新存储设置 @Summary 更新存储设置 @Description 更新系统存储配置,包括存储提供商、CDN、转码、备份等设置 @Tags 管理后台 - 存储 @Accept json @Produce json @Security BearerAuth @Param request body model.StorageSettingsRequest true "存储设置请求" @Success 200 {object} map[string]interface{} "更新成功" @Failure 400 {object} map[string]interface{} "请求参数错误" @Failure 401 {object} map[string]interface{} "未授权" @Failure 403 {object} map[string]interface{} "权限不足" @Router /admin/storage/settings [put]

type StreamingHandler

type StreamingHandler struct {
	// contains filtered or unexported fields
}

StreamingHandler 播放处理器

func NewStreamingHandler

func NewStreamingHandler(services *service.Services) *StreamingHandler

NewStreamingHandler 创建播放处理器

func (*StreamingHandler) AddToFavorites

func (h *StreamingHandler) AddToFavorites(c *gin.Context)

AddToFavorites 添加到收藏夹 @Summary 添加到收藏夹 @Description 将指定剧集添加到用户收藏夹 @Tags 视频流 @Accept json @Produce json @Security BearerAuth @Param request body map[string]int64 true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /streaming/favorite [post]

func (*StreamingHandler) BroadcastProgress

func (h *StreamingHandler) BroadcastProgress(progress *service.StreamingProgress)

BroadcastProgress 广播进度更新给所有订阅的客户端

func (*StreamingHandler) GetProgress

func (h *StreamingHandler) GetProgress(c *gin.Context)

GetProgress 获取处理进度(HTTP) @Summary 获取处理进度 @Description 获取视频处理进度信息 @Tags 视频流 @Produce json @Param episode_id path int true "分集ID" @Success 200 {object} service.StreamingProgress @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /streaming/progress/{episode_id} [get]

func (*StreamingHandler) GetVideoStream

func (h *StreamingHandler) GetVideoStream(c *gin.Context)

GetVideoStream 获取视频流 @Summary 获取视频流 @Description 获取指定分集的视频流信息 @Tags 视频流 @Produce json @Security BearerAuth @Param id path int true "分集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /streaming/video/{id} [get]

func (*StreamingHandler) GetWatchHistory

func (h *StreamingHandler) GetWatchHistory(c *gin.Context)

GetWatchHistory 获取观看历史 @Summary 获取观看历史 @Description 获取用户的观看历史记录 @Tags 视频流 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {array} model.WatchHistory @Failure 401 {object} map[string]any @Router /streaming/history [get]

func (*StreamingHandler) LikeVideo

func (h *StreamingHandler) LikeVideo(c *gin.Context)

LikeVideo 点赞视频 @Summary 点赞视频 @Description 对指定分集进行点赞 @Tags 视频流 @Accept json @Produce json @Security BearerAuth @Param request body service.LikeRequest true "点赞请求" @Success 200 {object} service.LikeStats @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /streaming/like [post]

func (*StreamingHandler) ProcessVideoWithProgress

func (h *StreamingHandler) ProcessVideoWithProgress(c *gin.Context)

ProcessVideoWithProgress 处理视频并推送进度(异步) @Summary 处理视频并推送进度 @Description 异步处理视频并通过WebSocket推送进度 @Tags 视频流 @Accept json @Produce json @Param request body map[string]any true "处理请求" @Success 202 {object} map[string]any @Failure 400 {object} map[string]any @Router /streaming/process [post]

func (*StreamingHandler) RemoveFromFavorites

func (h *StreamingHandler) RemoveFromFavorites(c *gin.Context)

RemoveFromFavorites 从收藏夹移除 @Summary 从收藏夹移除 @Description 将指定剧集从用户收藏夹移除 @Tags 视频流 @Produce json @Security BearerAuth @Param id path string true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /streaming/favorite/{id} [delete]

func (*StreamingHandler) StreamProgress

func (h *StreamingHandler) StreamProgress(c *gin.Context)

StreamProgress WebSocket流式推送进度 @Summary WebSocket推送进度 @Description 通过WebSocket实时推送视频处理进度 @Tags 视频流 @Param episode_id path int true "分集ID" @Router /streaming/progress/{episode_id}/ws [get]

func (*StreamingHandler) UnlikeVideo

func (h *StreamingHandler) UnlikeVideo(c *gin.Context)

UnlikeVideo 取消点赞视频 @Summary 取消点赞视频 @Description 取消对指定分集的点赞 @Tags 视频流 @Produce json @Security BearerAuth @Param id path string true "分集ID" @Param target_type query string true "目标类型" Enums(episode,series) @Success 200 {object} service.LikeStats @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /streaming/like/{id} [delete]

func (*StreamingHandler) UpdateProgress

func (h *StreamingHandler) UpdateProgress(c *gin.Context)

UpdateProgress 更新观看进度 @Summary 更新观看进度 @Description 更新用户对指定分集的观看进度 @Tags 视频流 @Accept json @Produce json @Security BearerAuth @Param request body model.UpdateProgressRequest true "进度信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /streaming/progress [post]

type SubscriptionHandler

type SubscriptionHandler struct {
	// contains filtered or unexported fields
}

SubscriptionHandler 订阅处理器

func NewSubscriptionHandler

func NewSubscriptionHandler(services *service.Services) *SubscriptionHandler

NewSubscriptionHandler 创建订阅处理器

func (*SubscriptionHandler) Cancel

func (h *SubscriptionHandler) Cancel(c *gin.Context)

Cancel 取消订阅 @Summary 取消订阅 @Description 取消用户当前订阅 @Tags 订阅 @Accept json @Produce json @Security BearerAuth @Param request body model.CancelSubscriptionRequest true "取消信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /subscription/cancel [post]

func (*SubscriptionHandler) GetHistory

func (h *SubscriptionHandler) GetHistory(c *gin.Context)

GetHistory 获取订阅历史 @Summary 获取订阅历史 @Description 获取用户订阅历史记录 @Tags 订阅 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.SubscriptionHistoryResponse @Failure 401 {object} map[string]any @Router /subscription/history [get]

func (*SubscriptionHandler) GetPlanByID

func (h *SubscriptionHandler) GetPlanByID(c *gin.Context)

GetPlanByID 获取订阅计划详情 @Summary 获取订阅计划详情 @Description 根据计划ID获取订阅计划的详细信息 @Tags 订阅 @Produce json @Param plan_id path int true "计划ID" @Success 200 {object} model.SubscriptionPlan @Failure 400 {object} map[string]any @Failure 404 {object} map[string]any @Router /subscription/plans/{plan_id} [get]

func (*SubscriptionHandler) GetPlans

func (h *SubscriptionHandler) GetPlans(c *gin.Context)

GetPlans 获取订阅计划 @Summary 获取订阅计划 @Description 获取所有可用的订阅计划 @Tags 订阅 @Produce json @Success 200 {array} model.SubscriptionPlan @Failure 500 {object} map[string]any @Router /subscription/plans [get]

func (*SubscriptionHandler) Subscribe

func (h *SubscriptionHandler) Subscribe(c *gin.Context)

Subscribe 订阅服务 @Summary 订阅服务 @Description 用户订阅指定计划 @Tags 订阅 @Accept json @Produce json @Security BearerAuth @Param request body model.SubscribeRequest true "订阅信息" @Success 200 {object} model.SubscriptionResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 409 {object} map[string]any @Router /subscription/subscribe [post]

type SuccessResponse

type SuccessResponse struct {
	Message string `json:"message"`
	Data    any    `json:"data,omitempty"`
}

SuccessResponse 成功响应结构

type SyncHandler

type SyncHandler struct {
	// contains filtered or unexported fields
}

SyncHandler 多设备同步处理器

func NewSyncHandler

func NewSyncHandler(syncService service.SyncServiceInterface) *SyncHandler

NewSyncHandler 创建多设备同步处理器

func (*SyncHandler) EndSyncSession

func (h *SyncHandler) EndSyncSession(c *gin.Context)

EndSyncSession 结束同步会话 @Summary 结束同步会话 @Description 结束当前设备的同步会话 @Tags 多设备同步 @Produce json @Security Bearer @Param session_id path string true "会话ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /sync/sessions/{session_id} [delete]

func (*SyncHandler) GetActiveSessions

func (h *SyncHandler) GetActiveSessions(c *gin.Context)

GetActiveSessions 获取活跃会话列表 @Summary 获取活跃会话列表 @Description 获取用户当前所有活跃的同步会话 @Tags 多设备同步 @Produce json @Security Bearer @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /sync/sessions [get]

func (*SyncHandler) GetConflictHistory

func (h *SyncHandler) GetConflictHistory(c *gin.Context)

GetConflictHistory 获取冲突历史 @Summary 获取冲突历史 @Description 获取用户在指定剧集上的同步冲突历史记录 @Tags 多设备同步 @Produce json @Security Bearer @Param episode_id path int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /sync/episodes/{episode_id}/conflicts [get]

func (*SyncHandler) GetSyncState

func (h *SyncHandler) GetSyncState(c *gin.Context)

GetSyncState 获取同步状态 @Summary 获取播放同步状态 @Description 获取指定剧集的当前同步状态 @Tags 多设备同步 @Produce json @Security Bearer @Param episode_id path int true "剧集ID" @Success 200 {object} service.PlaybackState @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Router /sync/episodes/{episode_id}/state [get]

func (*SyncHandler) GetSyncStatistics

func (h *SyncHandler) GetSyncStatistics(c *gin.Context)

GetSyncStatistics 获取同步统计 @Summary 获取同步统计 @Description 获取用户的多设备同步统计信息 @Tags 多设备同步 @Produce json @Security Bearer @Success 200 {object} service.SyncStatistics @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /sync/statistics [get]

func (*SyncHandler) GetUserDevices

func (h *SyncHandler) GetUserDevices(c *gin.Context)

GetUserDevices 获取用户设备列表 @Summary 获取用户设备列表 @Description 获取用户在指定剧集上的所有活跃设备 @Tags 多设备同步 @Produce json @Security Bearer @Param episode_id path int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /sync/episodes/{episode_id}/devices [get]

func (*SyncHandler) ResolveConflict

func (h *SyncHandler) ResolveConflict(c *gin.Context)

ResolveConflict 解决同步冲突 @Summary 解决同步冲突 @Description 手动解决多设备之间的同步冲突 @Tags 多设备同步 @Accept json @Produce json @Security Bearer @Param session_id path string true "会话ID" @Param request body map[string]string true "解决策略" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /sync/sessions/{session_id}/resolve [post]

func (*SyncHandler) StartSyncSession

func (h *SyncHandler) StartSyncSession(c *gin.Context)

StartSyncSession 开始同步会话 @Summary 开始播放同步会话 @Description 启动新的多设备播放同步会话 @Tags 多设备同步 @Accept json @Produce json @Security Bearer @Param request body service.ProgressSyncRequest true "同步请求" @Success 200 {object} service.ProgressSyncResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /sync/sessions [post]

func (*SyncHandler) SubscribeSync

func (h *SyncHandler) SubscribeSync(c *gin.Context)

SubscribeSync WebSocket订阅同步消息 @Summary WebSocket订阅同步消息 @Description 建立WebSocket连接以接收实时的播放同步消息 @Tags 多设备同步 @Security Bearer @Param episode_id path int true "剧集ID" @Success 101 {string} string "Switching Protocols" @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /sync/episodes/{episode_id}/ws [get]

func (*SyncHandler) UpdateProgress

func (h *SyncHandler) UpdateProgress(c *gin.Context)

UpdateProgress 更新播放进度 @Summary 更新播放进度 @Description 更新当前设备的播放进度并同步到其他设备 @Tags 多设备同步 @Accept json @Produce json @Security Bearer @Param session_id path string true "会话ID" @Param request body service.ProgressSyncRequest true "进度信息" @Success 200 {object} service.ProgressSyncResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 500 {object} map[string]any @Router /sync/sessions/{session_id}/progress [put]

type SystemMonitoringHandler

type SystemMonitoringHandler struct {
	// contains filtered or unexported fields
}

SystemMonitoringHandler 系统监控处理器

func NewSystemMonitoringHandler

func NewSystemMonitoringHandler(monitoringService *service.SystemMonitoringService) *SystemMonitoringHandler

NewSystemMonitoringHandler 创建系统监控处理器

func (*SystemMonitoringHandler) GetAlerts

func (h *SystemMonitoringHandler) GetAlerts(c *gin.Context)

GetAlerts 获取系统告警 @Summary 获取系统告警 @Description 获取系统告警信息,包括CPU、内存、磁盘等资源的告警,支持限制返回数量 @Tags 系统监控 @Produce json @Security BearerAuth @Param limit query int false "限制返回的告警数量" default(50) @Success 200 {object} map[string]any "返回系统告警列表" @Failure 500 {object} map[string]any "获取系统告警失败" @Router /api/v1/admin/monitoring/system/alerts [get]

func (*SystemMonitoringHandler) GetHistoricalMetrics

func (h *SystemMonitoringHandler) GetHistoricalMetrics(c *gin.Context)

GetHistoricalMetrics 获取历史性能指标 @Summary 获取历史性能指标 @Description 获取指定时间范围内的历史性能数据,支持按节点ID和时间范围筛选 @Tags 系统监控 @Produce json @Security BearerAuth @Param node_id query string false "节点ID" default(node-01) @Param duration query string false "时间范围(如: 1h, 24h, 7d)" default(24h) @Success 200 {object} map[string]any "返回历史性能指标数据" @Failure 400 {object} map[string]any "无效的请求参数" @Failure 500 {object} map[string]any "获取历史指标失败" @Router /api/v1/admin/monitoring/system/metrics [get]

func (*SystemMonitoringHandler) GetMetricsOverview

func (h *SystemMonitoringHandler) GetMetricsOverview(c *gin.Context)

GetMetricsOverview 获取指标概览 @Summary 获取指标概览 @Description 获取系统关键指标的概览信息,包括CPU、内存、磁盘、数据库、Redis和应用程序的核心指标 @Tags 系统监控 @Produce json @Security BearerAuth @Success 200 {object} map[string]any "返回系统指标概览" @Failure 500 {object} map[string]any "获取指标概览失败" @Router /api/v1/admin/monitoring/system/overview [get]

func (*SystemMonitoringHandler) GetPerformanceAnalysis

func (h *SystemMonitoringHandler) GetPerformanceAnalysis(c *gin.Context)

GetPerformanceAnalysis 获取性能分析报告 @Summary 获取性能分析报告 @Description 获取系统性能分析和优化建议,包括性能评分、瓶颈识别和改进建议 @Tags 系统监控 @Produce json @Security BearerAuth @Success 200 {object} map[string]any "返回性能分析报告" @Failure 500 {object} map[string]any "获取性能分析失败" @Router /api/v1/admin/monitoring/system/performance [get]

func (*SystemMonitoringHandler) GetSystemHealth

func (h *SystemMonitoringHandler) GetSystemHealth(c *gin.Context)

GetSystemHealth 获取系统健康状态 @Summary 获取系统健康状态 @Description 获取系统各组件的健康状态,包括数据库、Redis、应用服务等的运行状态 @Tags 系统监控 @Produce json @Security BearerAuth @Success 200 {object} map[string]any "返回系统健康状态信息" @Failure 500 {object} map[string]any "获取系统健康状态失败" @Router /api/v1/admin/monitoring/system/health [get]

func (*SystemMonitoringHandler) GetSystemStats

func (h *SystemMonitoringHandler) GetSystemStats(c *gin.Context)

GetSystemStats 获取系统统计信息 @Summary 获取系统统计信息 @Description 获取当前系统的各项性能指标,包括CPU、内存、磁盘、数据库、Redis和应用程序统计信息 @Tags 系统监控 @Produce json @Security BearerAuth @Success 200 {object} map[string]any "返回系统统计信息" @Failure 500 {object} map[string]any "获取系统统计信息失败" @Router /api/v1/admin/monitoring/system/stats [get]

type TagHandler

type TagHandler struct{}

TagHandler 标签处理器

func NewTagHandler

func NewTagHandler() *TagHandler

NewTagHandler 创建标签处理器

func (*TagHandler) GetPopularTags

func (h *TagHandler) GetPopularTags(c *gin.Context)

GetPopularTags 获取热门标签 @Summary 获取热门标签 @Description 获取当前最热门的内容标签 @Tags 标签 @Produce json @Param limit query int false "返回数量" default(20) @Success 200 {object} map[string]any @Router /tags/popular [get]

func (*TagHandler) GetTagDetail

func (h *TagHandler) GetTagDetail(c *gin.Context)

GetTagDetail 获取标签详情 @Summary 获取标签详情 @Description 获取指定标签的详细信息和相关内容 @Tags 标签 @Produce json @Param name path string true "标签名称" @Success 200 {object} map[string]any @Failure 404 {object} map[string]any @Router /tags/{name} [get]

type UserHandler

type UserHandler struct {
	// contains filtered or unexported fields
}

UserHandler 用户处理器

func NewUserHandler

func NewUserHandler(services *service.Services) *UserHandler

NewUserHandler 创建用户处理器

func (*UserHandler) ChangePassword

func (h *UserHandler) ChangePassword(c *gin.Context)

ChangePassword 修改密码 @Summary 修改密码 @Description 修改当前用户密码 @Tags 用户 @Accept json @Produce json @Security BearerAuth @Param request body model.ChangePasswordRequest true "密码修改信息" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /users/password [put]

func (*UserHandler) GetBalance

func (h *UserHandler) GetBalance(c *gin.Context)

GetBalance 获取用户余额 @Summary 获取用户余额 @Description 获取当前用户的账户余额信息 @Tags 用户 @Produce json @Security BearerAuth @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Router /users/balance [get]

func (*UserHandler) GetProfile

func (h *UserHandler) GetProfile(c *gin.Context)

GetProfile 获取用户信息 @Summary 获取用户信息 @Description 获取当前登录用户的详细信息 @Tags 用户 @Produce json @Security BearerAuth @Success 200 {object} model.UserResponse @Failure 401 {object} map[string]any @Router /users/profile [get]

func (*UserHandler) GetSubscription

func (h *UserHandler) GetSubscription(c *gin.Context)

GetSubscription 获取用户订阅信息 @Summary 获取用户订阅信息 @Description 获取当前用户的订阅状态和详情 @Tags 用户 @Produce json @Security BearerAuth @Success 200 {object} model.SubscriptionResponse @Failure 401 {object} map[string]any @Failure 404 {object} map[string]any @Failure 500 {object} map[string]any @Router /users/subscription [get]

func (*UserHandler) UpdateAvatar

func (h *UserHandler) UpdateAvatar(c *gin.Context)

UpdateAvatar 更新用户头像 @Summary 更新用户头像 @Description 上传并更新用户头像 @Tags 用户 @Accept multipart/form-data @Produce json @Security BearerAuth @Param avatar formData file true "头像文件" @Success 200 {object} model.UserResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /users/avatar [put]

func (*UserHandler) UpdateProfile

func (h *UserHandler) UpdateProfile(c *gin.Context)

UpdateProfile 更新用户信息 @Summary 更新用户信息 @Description 更新当前登录用户的详细信息 @Tags 用户 @Accept json @Produce json @Security BearerAuth @Param request body model.UpdateProfileRequest true "更新信息" @Success 200 {object} model.UserResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /users/profile [put]

type UserManagementHandler

type UserManagementHandler struct {
	// contains filtered or unexported fields
}

UserManagementHandler 高级用户管理处理器

func NewUserManagementHandler

func NewUserManagementHandler(userMgmtService service.UserManagementServiceInterface) *UserManagementHandler

NewUserManagementHandler 创建用户管理处理器

func (*UserManagementHandler) AddAdminNote

func (h *UserManagementHandler) AddAdminNote(c *gin.Context)

AddAdminNote 添加管理员备注 @Summary 添加管理员备注 @Description 为用户添加管理员备注 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param note body model.AdminNote true "备注内容" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/notes [post]

func (*UserManagementHandler) BanUser

func (h *UserManagementHandler) BanUser(c *gin.Context)

BanUser 封禁用户 @Summary 封禁用户 @Description 封禁指定用户,支持多种封禁类型和时长 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param request body model.UserBanRequest true "封禁请求" @Success 200 {object} model.UserBanResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/ban [post]

func (*UserManagementHandler) BatchUpdateUsers

func (h *UserManagementHandler) BatchUpdateUsers(c *gin.Context)

BatchUpdateUsers 批量更新用户 @Summary 批量更新用户 @Description 批量更新用户信息 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param request body map[string]any true "批量更新请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/batch-update [put]

func (*UserManagementHandler) CreateUserSegment

func (h *UserManagementHandler) CreateUserSegment(c *gin.Context)

CreateUserSegment 创建用户分群 @Summary 创建用户分群 @Description 创建新的用户分群 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param segment body model.UserSegmentCreate true "分群信息" @Success 201 {object} model.UserSegment @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/segments [post]

func (*UserManagementHandler) ExportUsers

func (h *UserManagementHandler) ExportUsers(c *gin.Context)

ExportUsers 导出用户数据 @Summary 导出用户数据 @Description 导出用户数据为CSV文件 @Tags 高级用户管理 @Produce octet-stream @Security BearerAuth @Param page query int false "页码" default(1) @Param pageSize query int false "每页数量" default(20) @Param search query string false "搜索关键词" @Param role query string false "角色筛选" @Param status query string false "状态筛选" @Success 200 {file} csv "CSV文件" @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/export [get]

func (*UserManagementHandler) GetInactiveUsers

func (h *UserManagementHandler) GetInactiveUsers(c *gin.Context)

GetInactiveUsers 获取不活跃用户 @Summary 获取不活跃用户 @Description 获取指定天数内未活跃的用户列表,包含重新激活建议 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param days query int false "不活跃天数" default(30) @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.InactiveUsersList @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/inactive [get]

func (*UserManagementHandler) GetSuspiciousUsers

func (h *UserManagementHandler) GetSuspiciousUsers(c *gin.Context)

GetSuspiciousUsers 获取可疑用户 @Summary 获取可疑用户 @Description 获取有风险或违规行为的用户列表,包含风险评估 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.SuspiciousUsersList @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/suspicious [get]

func (*UserManagementHandler) GetUserActivity

func (h *UserManagementHandler) GetUserActivity(c *gin.Context)

GetUserActivity 获取用户活动 @Summary 获取用户活动 @Description 获取用户的活动统计和分析 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param time_range query string false "时间范围" default("30d") Enums(7d,30d,90d,1y) @Success 200 {object} model.UserActivitySummary @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/activity [get]

func (*UserManagementHandler) GetUserBehaviorAnalysis

func (h *UserManagementHandler) GetUserBehaviorAnalysis(c *gin.Context)

GetUserBehaviorAnalysis 获取用户行为分析 @Summary 获取用户行为分析 @Description 获取用户的深度行为分析报告 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param period query string false "分析周期" default("30d") @Success 200 {object} model.UserBehaviorAnalysis @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/behavior-analysis [get]

func (*UserManagementHandler) GetUserFullProfile

func (h *UserManagementHandler) GetUserFullProfile(c *gin.Context)

GetUserFullProfile 获取用户完整档案 @Summary 获取用户完整档案 @Description 获取用户的详细档案信息,包括活动、订阅、支付、安全等全方位信息 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Success 200 {object} model.UserFullProfile @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/users/{id}/profile [get]

func (*UserManagementHandler) GetUserGrowthAnalytics

func (h *UserManagementHandler) GetUserGrowthAnalytics(c *gin.Context)

GetUserGrowthAnalytics 获取用户增长分析 @Summary 获取用户增长分析 @Description 获取用户增长趋势和分析报告 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param time_range query string false "时间范围" default("30d") @Success 200 {object} model.UserGrowthAnalytics @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/growth-analytics [get]

func (*UserManagementHandler) GetUserRiskAssessment

func (h *UserManagementHandler) GetUserRiskAssessment(c *gin.Context)

GetUserRiskAssessment 获取用户风险评估 @Summary 获取用户风险评估 @Description 获取用户的详细风险评估报告 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Success 200 {object} model.UserRiskAssessment @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/risk-assessment [get]

func (*UserManagementHandler) GetUserSecurityLog

func (h *UserManagementHandler) GetUserSecurityLog(c *gin.Context)

GetUserSecurityLog 获取用户安全日志 @Summary 获取用户安全日志 @Description 获取用户的安全相关日志记录 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.UserSecurityLog @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/security-log [get]

func (*UserManagementHandler) GetUserSegmentAnalysis

func (h *UserManagementHandler) GetUserSegmentAnalysis(c *gin.Context)

GetUserSegmentAnalysis 获取用户分群分析 @Summary 获取用户分群分析 @Description 获取用户分群的详细分析报告 @Tags 高级用户管理 @Produce json @Security BearerAuth @Success 200 {object} model.UserSegmentAnalysis @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/segment-analysis [get]

func (*UserManagementHandler) GetUserSegments

func (h *UserManagementHandler) GetUserSegments(c *gin.Context)

GetUserSegments 获取用户分群列表 @Summary 获取用户分群列表 @Description 获取所有用户分群 @Tags 高级用户管理 @Produce json @Security BearerAuth @Success 200 {array} model.UserSegment @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/segments [get]

func (*UserManagementHandler) ListUsers

func (h *UserManagementHandler) ListUsers(c *gin.Context)

ListUsers 获取用户列表 @Summary 获取用户列表 @Description 获取用户列表(支持分页、筛选、排序) @Tags 高级用户管理 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param pageSize query int false "每页数量" default(20) @Param search query string false "搜索关键词" @Param role query string false "角色筛选" @Param status query string false "状态筛选" @Param riskLevel query string false "风险等级筛选" @Param region query string false "地区筛选" @Param sortBy query string false "排序字段" default(id) @Param sortOrder query string false "排序方向" default(desc) @Success 200 {object} model.UserListResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users [get]

func (*UserManagementHandler) ResetUserPassword

func (h *UserManagementHandler) ResetUserPassword(c *gin.Context)

ResetUserPassword 重置用户密码 @Summary 重置用户密码 @Description 管理员重置用户密码并发送通知 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Success 200 {object} model.PasswordResetResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/reset-password [post]

func (*UserManagementHandler) SearchUsers

func (h *UserManagementHandler) SearchUsers(c *gin.Context)

SearchUsers 高级用户搜索 @Summary 高级用户搜索 @Description 使用多种过滤条件搜索用户 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param query query string false "搜索关键词" @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param filters body model.UserSearchFilters false "搜索过滤器" @Success 200 {object} model.UserSearchResult @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/search [post]

func (*UserManagementHandler) SendBulkNotification

func (h *UserManagementHandler) SendBulkNotification(c *gin.Context)

SendBulkNotification 发送批量通知 @Summary 发送批量通知 @Description 向多个用户发送批量通知 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param request body map[string]any true "批量通知请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/bulk-notification [post]

func (*UserManagementHandler) SendUserNotification

func (h *UserManagementHandler) SendUserNotification(c *gin.Context)

SendUserNotification 发送用户通知 @Summary 发送用户通知 @Description 向指定用户发送管理员通知 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param notification body model.AdminNotification true "通知内容" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/notification [post]

func (*UserManagementHandler) SuspendUser

func (h *UserManagementHandler) SuspendUser(c *gin.Context)

SuspendUser 暂停用户 @Summary 暂停用户 @Description 暂停用户账户 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param request body map[string]string true "暂停请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/suspend [post]

func (*UserManagementHandler) UnbanUser

func (h *UserManagementHandler) UnbanUser(c *gin.Context)

UnbanUser 解封用户 @Summary 解封用户 @Description 解除用户封禁状态 @Tags 高级用户管理 @Produce json @Security BearerAuth @Param id path int true "用户ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/unban [post]

func (*UserManagementHandler) UpdateUserProfile

func (h *UserManagementHandler) UpdateUserProfile(c *gin.Context)

UpdateUserProfile 更新用户档案 @Summary 更新用户档案 @Description 管理员更新用户档案信息 @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param updates body map[string]any true "更新数据" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /admin/users/{id}/profile [put]

func (*UserManagementHandler) UpdateUserStatus

func (h *UserManagementHandler) UpdateUserStatus(c *gin.Context)

UpdateUserStatus 更新用户状态 @Summary 更新用户状态 @Description 更新用户状态(active, banned, suspended, inactive) @Tags 高级用户管理 @Accept json @Produce json @Security BearerAuth @Param id path int true "用户ID" @Param request body map[string]string true "状态更新请求" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Failure 404 {object} map[string]any @Router /admin/users/{id}/status [put]

type VectorRecommendationHandler

type VectorRecommendationHandler struct {
	// contains filtered or unexported fields
}

VectorRecommendationHandler 向量推荐处理器

func NewVectorRecommendationHandler

func NewVectorRecommendationHandler(
	vectorService *service.VectorRecommendationService,
	recommendService service.RecommendationServiceInterface,
	contentService service.ContentServiceInterface,
) *VectorRecommendationHandler

NewVectorRecommendationHandler 创建向量推荐处理器

func (*VectorRecommendationHandler) ComputeContentVector

func (h *VectorRecommendationHandler) ComputeContentVector(c *gin.Context)

ComputeContentVector 计算内容向量 @Summary 计算内容向量 @Description 为指定内容计算特征向量 @Tags 推荐系统 @Accept json @Produce json @Param contentId path int true "内容ID" @Security BearerAuth @Success 200 {object} map[string]any "向量计算结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/recommendations/vector/content/{contentId}/compute [post]

func (*VectorRecommendationHandler) GetPersonalizedRecommendations

func (h *VectorRecommendationHandler) GetPersonalizedRecommendations(c *gin.Context)

GetPersonalizedRecommendations 获取个性化推荐 @Summary 获取基于向量的个性化推荐 @Description 使用用户向量和内容向量计算个性化推荐结果 @Tags 推荐系统 @Accept json @Produce json @Param limit query int false "推荐数量" default(20) @Param algorithm query string false "算法选择" Enums(cosine,euclidean,dot) @Security BearerAuth @Success 200 {object} map[string]any "推荐结果" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/recommendations/vector/personalized [get]

func (*VectorRecommendationHandler) GetSimilarContent

func (h *VectorRecommendationHandler) GetSimilarContent(c *gin.Context)

GetSimilarContent 获取相似内容 @Summary 获取相似内容推荐 @Description 基于内容向量查找相似内容 @Tags 推荐系统 @Accept json @Produce json @Param contentId path int true "内容ID" @Param limit query int false "推荐数量" default(10) @Security BearerAuth @Success 200 {object} map[string]any "相似内容列表" @Failure 400 {object} map[string]any "请求参数错误" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/recommendations/vector/similar/{contentId} [get]

func (*VectorRecommendationHandler) GetUserSimilarity

func (h *VectorRecommendationHandler) GetUserSimilarity(c *gin.Context)

GetUserSimilarity 获取相似用户 @Summary 获取相似用户 @Description 基于用户向量查找相似用户 @Tags 推荐系统 @Accept json @Produce json @Param limit query int false "数量限制" default(10) @Security BearerAuth @Success 200 {object} map[string]any "相似用户列表" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/recommendations/vector/users/similar [get]

func (*VectorRecommendationHandler) RefreshVectorIndex

func (h *VectorRecommendationHandler) RefreshVectorIndex(c *gin.Context)

RefreshVectorIndex 刷新向量索引 @Summary 刷新向量索引 @Description 重新构建向量索引以提高搜索效率 @Tags 推荐系统 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]any "刷新结果" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/recommendations/vector/index/refresh [post]

func (*VectorRecommendationHandler) UpdateUserVector

func (h *VectorRecommendationHandler) UpdateUserVector(c *gin.Context)

UpdateUserVector 更新用户向量 @Summary 更新用户向量 @Description 基于用户行为更新用户向量 @Tags 推荐系统 @Accept json @Produce json @Param request body service.UpdateVectorRequest true "更新请求" @Security BearerAuth @Success 200 {object} map[string]any "更新结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/recommendations/vector/user/update [post]

type VideoEditingHandler

type VideoEditingHandler struct {
	// contains filtered or unexported fields
}

VideoEditingHandler 视频剪辑处理器

func NewVideoEditingHandler

func NewVideoEditingHandler(editingService service.VideoEditingServiceInterface) *VideoEditingHandler

NewVideoEditingHandler 创建视频剪辑处理器

func (*VideoEditingHandler) AddWatermark

func (h *VideoEditingHandler) AddWatermark(c *gin.Context)

AddWatermark 添加水印 @Summary 添加水印 @Description 为视频添加文本或图片水印 @Tags 视频剪辑 @Accept json @Produce json @Security BearerAuth @Param request body service.WatermarkRequest true "水印请求" @Success 200 {object} service.EditResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /editing/watermark [post]

func (*VideoEditingHandler) ApplyEffect

func (h *VideoEditingHandler) ApplyEffect(c *gin.Context)

ApplyEffect 应用视频效果 @Summary 应用视频效果 @Description 为视频添加各种视觉效果 @Tags 视频剪辑 @Accept json @Produce json @Security BearerAuth @Param request body service.EffectRequest true "效果请求" @Success 200 {object} service.EditResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /editing/effect [post]

func (*VideoEditingHandler) CancelTask

func (h *VideoEditingHandler) CancelTask(c *gin.Context)

CancelTask 取消任务 @Summary 取消任务 @Description 取消正在执行的视频剪辑任务 @Tags 视频剪辑 @Produce json @Security BearerAuth @Param task_id path string true "任务ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /editing/task/{task_id}/cancel [post]

func (*VideoEditingHandler) ExportVideo

func (h *VideoEditingHandler) ExportVideo(c *gin.Context)

ExportVideo 导出视频 @Summary 导出视频 @Description 将处理完成的视频导出为指定质量 @Tags 视频剪辑 @Accept json @Produce json @Security BearerAuth @Param task_id path string true "任务ID" @Param request body map[string]any true "导出请求" @Success 200 {object} service.EditResponse @Failure 400 {object} map[string]any @Router /editing/task/{task_id}/export [post]

func (*VideoEditingHandler) GetTaskStatus

func (h *VideoEditingHandler) GetTaskStatus(c *gin.Context)

GetTaskStatus 获取任务状态 @Summary 获取任务状态 @Description 查询视频剪辑任务的执行状态 @Tags 视频剪辑 @Produce json @Security BearerAuth @Param task_id path string true "任务ID" @Success 200 {object} service.EditTask @Failure 404 {object} map[string]any @Router /editing/task/{task_id} [get]

func (*VideoEditingHandler) GetUserTasks

func (h *VideoEditingHandler) GetUserTasks(c *gin.Context)

GetUserTasks 获取用户任务列表 @Summary 获取用户任务列表 @Description 获取当前用户的所有视频剪辑任务 @Tags 视频剪辑 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} map[string]any @Failure 401 {object} map[string]any @Router /editing/tasks [get]

func (*VideoEditingHandler) GetVideoInfo

func (h *VideoEditingHandler) GetVideoInfo(c *gin.Context)

GetVideoInfo 获取视频信息 @Summary 获取视频信息 @Description 获取视频的详细技术信息 @Tags 视频剪辑 @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Success 200 {object} map[string]any @Failure 404 {object} map[string]any @Router /editing/video/{episode_id}/info [get]

func (*VideoEditingHandler) MergeVideos

func (h *VideoEditingHandler) MergeVideos(c *gin.Context)

MergeVideos 合并视频 @Summary 合并多个视频 @Description 将多个视频合并为一个视频 @Tags 视频剪辑 @Accept json @Produce json @Security BearerAuth @Param request body service.MergeRequest true "合并请求" @Success 200 {object} service.EditResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /editing/merge [post]

func (*VideoEditingHandler) ProcessAudio

func (h *VideoEditingHandler) ProcessAudio(c *gin.Context)

ProcessAudio 处理音频 @Summary 处理音频 @Description 对视频中的音频进行各种处理 @Tags 视频剪辑 @Accept json @Produce json @Security BearerAuth @Param request body service.AudioRequest true "音频处理请求" @Success 200 {object} service.EditResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /editing/audio [post]

func (*VideoEditingHandler) TrimVideo

func (h *VideoEditingHandler) TrimVideo(c *gin.Context)

TrimVideo 裁剪视频 @Summary 裁剪视频 @Description 根据指定时间段裁剪视频 @Tags 视频剪辑 @Accept json @Produce json @Security BearerAuth @Param request body service.TrimRequest true "裁剪请求" @Success 200 {object} service.EditResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /editing/trim [post]

type VideoHandler

type VideoHandler struct {
	// contains filtered or unexported fields
}

VideoHandler 视频处理器

func NewVideoHandler

func NewVideoHandler(services *service.Services, uploadService service.VideoUploadServiceInterface, streamingService service.VideoStreamingServiceInterface) *VideoHandler

NewVideoHandler 创建视频处理器

func (*VideoHandler) BatchUploadVideos

func (h *VideoHandler) BatchUploadVideos(c *gin.Context)

BatchUploadVideos 批量上传视频 @Summary 批量上传视频 @Description 批量上传多个视频文件 @Tags 视频 @Accept multipart/form-data @Produce json @Security BearerAuth @Param videos formData file true "视频文件(多个)" @Param series_id formData int true "剧集ID" @Param season_number formData int false "季数" @Param start_episode formData int true "起始集数" @Success 200 {object} service.BatchUploadResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /videos/batch-upload [post]

func (*VideoHandler) DeleteVideo

func (h *VideoHandler) DeleteVideo(c *gin.Context)

DeleteVideo 删除视频 @Summary 删除视频 @Description 删除视频及相关文件 @Tags 视频 @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 403 {object} map[string]any @Router /videos/{episode_id} [delete]

func (*VideoHandler) GetBatchUploadProgress

func (h *VideoHandler) GetBatchUploadProgress(c *gin.Context)

GetBatchUploadProgress 获取批量上传进度 @Summary 获取批量上传进度 @Description 获取批量上传任务的整体进度 @Tags 视频 @Produce json @Security BearerAuth @Param batch_id path string true "批量任务ID" @Success 200 {object} service.BatchUploadProgress @Failure 404 {object} map[string]any @Router /videos/batch-progress/{batch_id} [get]

func (*VideoHandler) GetUploadProgress

func (h *VideoHandler) GetUploadProgress(c *gin.Context)

GetUploadProgress 获取上传进度 @Summary 获取上传进度 @Description 获取视频上传和处理进度 @Tags 视频 @Produce json @Security BearerAuth @Param process_id path string true "处理ID" @Success 200 {object} service.TranscodingProgress @Failure 404 {object} map[string]any @Router /videos/progress/{process_id} [get]

func (*VideoHandler) GetVideoAnalytics

func (h *VideoHandler) GetVideoAnalytics(c *gin.Context)

GetVideoAnalytics 获取视频分析数据 @Summary 获取视频分析数据 @Description 获取视频观看统计和分析数据 @Tags 视频 @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Param time_range query string false "时间范围" Enums(today,week,month,all) default(all) @Success 200 {object} service.VideoAnalytics @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /videos/{episode_id}/analytics [get]

func (*VideoHandler) GetVideoStream

func (h *VideoHandler) GetVideoStream(c *gin.Context)

GetVideoStream 获取视频流 @Summary 获取视频流 @Description 获取视频播放流和相关信息 @Tags 视频 @Produce json @Param episode_id path int true "分集ID" @Success 200 {object} service.StreamResponse @Failure 404 {object} map[string]any @Failure 403 {object} map[string]any @Router /videos/stream/{episode_id} [get]

func (*VideoHandler) GetWatchHistory

func (h *VideoHandler) GetWatchHistory(c *gin.Context)

GetWatchHistory 获取观看历史 @Summary 获取观看历史 @Description 获取用户观看历史记录 @Tags 视频 @Produce json @Security BearerAuth @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Success 200 {object} model.WatchHistoryResponse @Failure 401 {object} map[string]any @Router /videos/watch-history [get]

func (*VideoHandler) ToggleFavorite

func (h *VideoHandler) ToggleFavorite(c *gin.Context)

ToggleFavorite 切换收藏状态 @Summary 切换收藏状态 @Description 收藏或取消收藏剧集 @Tags 视频 @Produce json @Security BearerAuth @Param series_id path int true "剧集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /videos/series/{series_id}/favorite [post]

func (*VideoHandler) ToggleLike

func (h *VideoHandler) ToggleLike(c *gin.Context)

ToggleLike 切换点赞状态 @Summary 切换点赞状态 @Description 点赞或取消点赞视频 @Tags 视频 @Produce json @Security BearerAuth @Param episode_id path int true "分集ID" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /videos/{episode_id}/like [post]

func (*VideoHandler) UpdateWatchProgress

func (h *VideoHandler) UpdateWatchProgress(c *gin.Context)

UpdateWatchProgress 更新观看进度 @Summary 更新观看进度 @Description 更新用户观看进度 @Tags 视频 @Accept json @Produce json @Security BearerAuth @Param request body service.WatchProgressUpdate true "观看进度" @Success 200 {object} map[string]any @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Router /videos/progress [put]

func (*VideoHandler) UploadVideo

func (h *VideoHandler) UploadVideo(c *gin.Context)

UploadVideo 上传视频 @Summary 上传视频 @Description 上传视频文件并开始处理 @Tags 视频 @Accept multipart/form-data @Produce json @Security BearerAuth @Param video formData file true "视频文件" @Param series_id formData int true "剧集ID" @Param episode_number formData int true "集数" @Param season_number formData int false "季数" @Param title formData string true "标题" @Param description formData string false "描述" @Success 200 {object} service.UploadResponse @Failure 400 {object} map[string]any @Failure 401 {object} map[string]any @Failure 413 {object} map[string]any @Router /videos/upload [post]

type VideoProcessingHandler

type VideoProcessingHandler struct {
	// contains filtered or unexported fields
}

VideoProcessingHandler 视频处理处理器

func NewVideoProcessingHandler

func NewVideoProcessingHandler(
	videoUploadService service.VideoUploadServiceInterface,
	videoProcessingService service.VideoProcessingServiceInterface,
	progressService service.ProgressServiceInterface,
) *VideoProcessingHandler

NewVideoProcessingHandler 创建视频处理处理器

func (*VideoProcessingHandler) GenerateThumbnails

func (h *VideoProcessingHandler) GenerateThumbnails(c *gin.Context)

GenerateThumbnails 生成视频缩略图 @Summary 生成视频缩略图 @Description 为视频生成多个时间点的缩略图 @Tags 视频处理 @Accept json @Produce json @Param episodeId path int true "剧集ID" @Param request body service.ThumbnailRequest true "缩略图请求" @Security BearerAuth @Success 200 {object} map[string]any "缩略图生成结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/video/{episodeId}/thumbnails [post]

func (*VideoProcessingHandler) GetTranscodingProgress

func (h *VideoProcessingHandler) GetTranscodingProgress(c *gin.Context)

GetTranscodingProgress 获取转码进度 @Summary 获取转码进度 @Description 获取视频转码任务的进度 @Tags 视频处理 @Accept json @Produce json @Param taskId path string true "任务ID" @Security BearerAuth @Success 200 {object} service.ProcessingProgress "转码进度信息" @Failure 400 {object} map[string]any "请求参数错误" @Failure 404 {object} map[string]any "任务不存在" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/video/transcode/{taskId}/progress [get]

func (*VideoProcessingHandler) ProcessVideoQueue

func (h *VideoProcessingHandler) ProcessVideoQueue(c *gin.Context)

ProcessVideoQueue 处理视频队列 @Summary 处理视频队列 @Description 批量处理视频转码队列 @Tags 视频处理 @Accept json @Produce json @Param request body service.ProcessQueueRequest true "队列处理请求" @Security BearerAuth @Success 200 {object} map[string]any "队列处理结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/video/queue/process [post]

func (*VideoProcessingHandler) TranscodeVideo

func (h *VideoProcessingHandler) TranscodeVideo(c *gin.Context)

TranscodeVideo 转码视频 @Summary 转码视频到多种清晰度 @Description 将视频转码为不同的清晰度版本 @Tags 视频处理 @Accept json @Produce json @Param episodeId path int true "剧集ID" @Param request body service.TranscodeRequest true "转码请求" @Security BearerAuth @Success 200 {object} map[string]any "转码任务信息" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/video/{episodeId}/transcode [post]

type WebSocketClient

type WebSocketClient struct {
	ID      string
	UserID  int64
	Conn    *websocket.Conn
	Send    chan []byte
	Handler *WebSocketHandler
}

WebSocketClient WebSocket客户端 代表一个独立的WebSocket连接实例,包含连接信息和消息发送通道

字段说明:

  • ID: 客户端唯一标识符,格式为时间戳_随机字符串
  • UserID: 关联的用户ID,用于消息路由和权限控制
  • Conn: 底层WebSocket连接对象
  • Send: 消息发送通道,用于异步发送消息给客户端
  • Handler: 指向父WebSocketHandler的引用,用于注销连接

type WebSocketHandler

type WebSocketHandler struct {
	// contains filtered or unexported fields
}

WebSocketHandler WebSocket处理器 负责管理所有WebSocket连接、消息广播和客户端生命周期

字段说明:

  • upgrader: WebSocket协议升级器,用于将HTTP连接升级为WebSocket
  • clients: 客户端映射表,key为clientID,value为WebSocketClient指针
  • clientsMutex: 读写锁,保护clients并发访问
  • broadcast: 广播消息通道(预留,当前未使用)

func NewWebSocketHandler

func NewWebSocketHandler() *WebSocketHandler

NewWebSocketHandler 创建WebSocket处理器

func (*WebSocketHandler) BroadcastProgress

func (h *WebSocketHandler) BroadcastProgress(userID int64, message ProgressMessage)

BroadcastProgress 广播进度更新到特定用户的所有WebSocket连接 这是一个服务端内部调用的方法,用于向指定用户推送实时进度更新

Parameters:

  • userID: 目标用户ID,只有该用户的WebSocket连接会收到消息
  • message: 进度消息对象,包含任务ID、进度百分比、状态等信息

使用场景:

  • 视频上传进度更新
  • 转码任务进度推送
  • 批量操作进度通知

func (*WebSocketHandler) BroadcastProgressByTaskID

func (h *WebSocketHandler) BroadcastProgressByTaskID(userID int64, taskID string, messageType string, progress float64, status, message string, data any)

BroadcastProgressByTaskID 根据TaskID广播进度更新 这是一个便捷方法,用于快速构建并发送进度消息,常用于服务层集成

Parameters:

  • userID: 目标用户ID
  • taskID: 任务唯一标识符(如上传任务ID、转码任务ID)
  • messageType: 消息类型(progress/complete/error等)
  • progress: 进度百分比(0-100)
  • status: 任务状态(processing/completed/failed等)
  • message: 人类可读的消息文本
  • data: 附加数据(可选),可以包含任务详情、错误信息等

使用场景:

  • 在Service层中快速发送进度更新
  • 无需手动构造ProgressMessage对象

func (*WebSocketHandler) BroadcastToAll

func (h *WebSocketHandler) BroadcastToAll(message any)

BroadcastToAll 广播消息给所有已连接的WebSocket客户端 这是一个服务端内部调用的方法,用于向所有在线用户推送系统级通知

Parameters:

  • message: 要广播的消息对象,可以是任意类型(会被序列化为JSON)

使用场景:

  • 系统维护通知
  • 全局公告推送
  • 紧急通知广播

注意:此方法会向所有连接的客户端发送消息,请谨慎使用

func (*WebSocketHandler) GetConnectedClients

func (h *WebSocketHandler) GetConnectedClients() int

GetConnectedClients 获取当前连接的WebSocket客户端总数 这是一个服务端内部调用的方法,用于监控和统计WebSocket连接状态

Returns:

  • int: 当前活跃的WebSocket连接数

使用场景:

  • 系统监控和健康检查
  • 管理后台统计信息展示
  • 负载评估和性能分析
  • 连接限流判断

func (*WebSocketHandler) GetUserClients

func (h *WebSocketHandler) GetUserClients(userID int64) []*WebSocketClient

GetUserClients 获取特定用户的所有WebSocket客户端连接 这是一个服务端内部调用的方法,用于查询某个用户当前的所有活跃连接

Parameters:

  • userID: 用户ID

Returns:

  • []*WebSocketClient: 该用户的所有WebSocket客户端连接切片

使用场景:

  • 查看用户多端登录情况(如手机端、PC端同时在线)
  • 强制断开用户的所有连接(如账号封禁)
  • 用户在线状态检测
  • 调试和问题排查

func (*WebSocketHandler) GetWebSocketStats

func (h *WebSocketHandler) GetWebSocketStats(c *gin.Context)

GetWebSocketStats 获取WebSocket连接统计信息(管理员接口) @Summary 获取WebSocket连接统计 @Description 获取当前WebSocket连接的统计信息,包括总连接数等。仅管理员可访问 @Tags WebSocket实时通信 @Accept json @Produce json @Security BearerAuth @Success 200 {object} map[string]any "统计信息,包含total_connections字段" @Failure 401 {object} map[string]any "用户未认证" @Failure 403 {object} map[string]any "权限不足,需要管理员权限" @Router /api/v1/admin/ws/stats [get]

func (*WebSocketHandler) HandleUploadProgress

func (h *WebSocketHandler) HandleUploadProgress(c *gin.Context)

HandleUploadProgress 处理上传进度WebSocket连接 @Summary 建立上传进度WebSocket连接 @Description 升级HTTP连接为WebSocket长连接,专门用于接收文件上传进度的实时更新。连接建立后会收到进度消息,包括上传百分比、状态变化、错误信息等 @Tags WebSocket实时通信 @Accept json @Produce json @Security BearerAuth @Param Connection header string true "必须为 Upgrade" default(Upgrade) @Param Upgrade header string true "必须为 websocket" default(websocket) @Param Sec-WebSocket-Key header string true "WebSocket握手密钥" default(dGhlIHNhbXBsZSBub25jZQ==) @Param Sec-WebSocket-Version header string true "WebSocket协议版本" default(13) @Success 101 {object} map[string]any "协议切换成功,连接已升级为WebSocket,将收到上传进度消息" @Failure 401 {object} map[string]any "用户未认证" @Failure 400 {object} map[string]any "WebSocket升级失败" @Router /api/v1/ws/upload/progress [get]

func (*WebSocketHandler) HandleWebSocket

func (h *WebSocketHandler) HandleWebSocket(c *gin.Context)

HandleWebSocket 处理WebSocket连接 @Summary 建立WebSocket连接 @Description 升级HTTP连接为WebSocket长连接,用于实时双向通信。客户端需要先通过JWT认证,连接建立后可以接收服务器推送的实时消息和事件通知 @Tags WebSocket实时通信 @Accept json @Produce json @Security BearerAuth @Param Connection header string true "必须为 Upgrade" default(Upgrade) @Param Upgrade header string true "必须为 websocket" default(websocket) @Param Sec-WebSocket-Key header string true "WebSocket握手密钥" default(dGhlIHNhbXBsZSBub25jZQ==) @Param Sec-WebSocket-Version header string true "WebSocket协议版本" default(13) @Success 101 {object} map[string]any "协议切换成功,连接已升级为WebSocket" @Failure 401 {object} map[string]any "用户未认证" @Failure 400 {object} map[string]any "WebSocket升级失败" @Router /api/v1/ws/connect [get]

func (*WebSocketHandler) SendToUser

func (h *WebSocketHandler) SendToUser(userID int64, message any)

SendToUser 发送消息给特定用户的所有WebSocket连接 这是一个服务端内部调用的方法,用于向指定用户推送自定义消息

Parameters:

  • userID: 目标用户ID
  • message: 要发送的消息对象,可以是任意类型(会被序列化为JSON)

使用场景:

  • 用户专属通知(如订单状态变化)
  • 私信推送
  • 账户安全提醒
  • VIP特权通知

与BroadcastProgress的区别:

  • SendToUser 用于发送任意消息类型
  • BroadcastProgress 专门用于进度更新消息(类型固定为ProgressMessage)

type WithdrawHandler

type WithdrawHandler struct {
	// contains filtered or unexported fields
}

WithdrawHandler 提现处理器

func NewWithdrawHandler

func NewWithdrawHandler(
	withdrawService service.WithdrawServiceInterface,
	creatorService service.CreatorServiceInterface,
) *WithdrawHandler

NewWithdrawHandler 创建提现处理器

func (*WithdrawHandler) GetPendingWithdrawals

func (h *WithdrawHandler) GetPendingWithdrawals(c *gin.Context)

GetPendingWithdrawals 获取待处理提现申请(管理员) @Summary 获取待处理提现申请 @Description 管理员获取所有待处理的提现申请 @Tags 管理后台-财务 @Accept json @Produce json @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Security BearerAuth @Success 200 {object} service.PendingWithdrawResponse "待处理提现列表" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/withdraw/pending [get]

func (*WithdrawHandler) GetWithdrawDetail

func (h *WithdrawHandler) GetWithdrawDetail(c *gin.Context)

GetWithdrawDetail 获取提现详情 @Summary 获取提现详情 @Description 获取单个提现申请的详细信息 @Tags 创作者收益 @Accept json @Produce json @Param requestId path int true "提现申请ID" @Security BearerAuth @Success 200 {object} service.WithdrawRequestDetail "提现详情" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 404 {object} map[string]any "提现申请不存在" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/creator/withdraw/{requestId} [get]

func (*WithdrawHandler) GetWithdrawHistory

func (h *WithdrawHandler) GetWithdrawHistory(c *gin.Context)

GetWithdrawHistory 获取提现历史 @Summary 获取提现历史 @Description 获取创作者的提现历史记录 @Tags 创作者收益 @Accept json @Produce json @Param page query int false "页码" default(1) @Param limit query int false "每页数量" default(20) @Param status query string false "状态筛选" @Security BearerAuth @Success 200 {object} service.WithdrawHistoryResponse "提现历史" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/creator/withdraw/history [get]

func (*WithdrawHandler) GetWithdrawStats

func (h *WithdrawHandler) GetWithdrawStats(c *gin.Context)

GetWithdrawStats 获取提现统计(管理员) @Summary 获取提现统计 @Description 管理员获取平台提现统计数据 @Tags 管理后台-财务 @Accept json @Produce json @Param timeRange query string false "时间范围" Enums(today,week,month,quarter,year) @Security BearerAuth @Success 200 {object} service.WithdrawStats "提现统计数据" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/withdraw/stats [get]

func (*WithdrawHandler) GetWithdrawSummary

func (h *WithdrawHandler) GetWithdrawSummary(c *gin.Context)

GetWithdrawSummary 获取提现统计 @Summary 获取提现统计 @Description 获取创作者的提现统计信息 @Tags 创作者收益 @Accept json @Produce json @Security BearerAuth @Success 200 {object} service.CreatorWithdrawSummary "提现统计" @Failure 401 {object} map[string]any "未授权" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/creator/withdraw/summary [get]

func (*WithdrawHandler) ProcessWithdrawRequest

func (h *WithdrawHandler) ProcessWithdrawRequest(c *gin.Context)

ProcessWithdrawRequest 处理提现申请(管理员) @Summary 处理提现申请 @Description 管理员审核处理提现申请 @Tags 管理后台-财务 @Accept json @Produce json @Param requestId path int true "提现申请ID" @Param request body map[string]any true "处理请求" @Security BearerAuth @Success 200 {object} map[string]any "处理结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 404 {object} map[string]any "提现申请不存在" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/admin/withdraw/{requestId}/process [post]

func (*WithdrawHandler) RequestWithdraw

func (h *WithdrawHandler) RequestWithdraw(c *gin.Context)

RequestWithdraw 申请提现 @Summary 申请提现 @Description 创作者申请提现收益 @Tags 创作者收益 @Accept json @Produce json @Param request body service.WithdrawRequestCreate true "提现申请" @Security BearerAuth @Success 200 {object} service.WithdrawRequestResponse "提现申请响应" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/creator/withdraw/request [post]

func (*WithdrawHandler) ValidateWithdraw

func (h *WithdrawHandler) ValidateWithdraw(c *gin.Context)

ValidateWithdraw 验证提现 @Summary 验证提现 @Description 验证提现金额是否有效 @Tags 创作者收益 @Accept json @Produce json @Param amount query number true "提现金额" @Security BearerAuth @Success 200 {object} service.WithdrawValidationResult "验证结果" @Failure 400 {object} map[string]any "请求参数错误" @Failure 401 {object} map[string]any "未授权" @Failure 403 {object} map[string]any "无权限" @Failure 500 {object} map[string]any "服务器错误" @Router /api/v1/creator/withdraw/validate [get]

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL