services

package
v1.7.1-local.7edcf03 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2025 License: MIT Imports: 9 Imported by: 0

README

服务模块化重构说明

概述

本次重构将原本单一的services文件夹中的服务拆分为独立的模块文件夹,每个服务模块包含多个功能专门化的文件。

重构结构

1. admin服务模块 (internal/services/admin/)
  • service.go - 服务主结构和构造函数
  • stats.go - 统计信息相关功能
  • files.go - 文件管理相关功能
  • users.go - 用户管理相关功能
  • config.go - 配置管理相关功能
  • maintenance.go - 系统维护相关功能
2. auth服务模块 (internal/services/auth/)
  • service.go - 认证服务主结构
  • auth.go - 密码哈希、用户登录注册等认证功能
3. chunk服务模块 (internal/services/chunk/)
  • service.go - 分片服务主结构
  • upload.go - 分片上传管理功能
4. share服务模块 (internal/services/share/)
  • service.go - 分享服务主结构
  • file.go - 文件分享相关功能
5. user服务模块 (internal/services/user/)
  • service.go - 用户服务主结构
  • profile.go - 用户资料管理功能

重构特点

1. 模块化设计
  • 每个服务都有独立的文件夹
  • 相关功能按照业务逻辑分组到不同文件
  • 清晰的职责分离
2. 依赖管理
  • admin服务依赖auth服务进行用户认证
  • user服务内部使用auth服务进行密码管理
  • 所有服务都依赖ConfigManager和DAOManager
3. 接口一致性
  • 所有服务都有统一的NewService构造函数
  • 使用ConcreteStorageService处理存储操作
  • 统一的错误处理模式

功能完整性

admin服务功能
  • ✅ 系统统计信息获取
  • ✅ 文件管理(获取、删除、更新、下载)
  • ✅ 用户管理(CRUD操作)
  • ✅ 配置管理(获取、更新各类配置)
  • ✅ 系统维护(清理过期文件、备份、监控)
auth服务功能
  • ✅ 密码哈希和验证
  • ✅ 用户登录和注册
  • ✅ 密码修改
  • ✅ 随机令牌生成
chunk服务功能
  • ✅ 分片上传初始化
  • ✅ 单个分片上传处理
  • ✅ 上传进度检查
  • ✅ 上传完成和取消
  • ✅ 过期上传清理
share服务功能
  • ✅ 文件分享创建和管理
  • ✅ 文件下载处理
  • ✅ 分享统计和权限控制
  • ✅ 用户文件列表
user服务功能
  • ✅ 用户资料管理
  • ✅ 用户统计信息
  • ✅ 配额检查
  • ✅ 账户删除

编译状态

当前所有服务模块都能成功编译,没有语法错误。部分DAO方法可能需要后续实现(如分页查询、批量操作等),但基本结构已经完整。

迁移指南

从原有服务迁移
  1. 原有的AdminService、ChunkService、ShareService等单一服务文件已被模块化
  2. 每个服务的NewService构造函数保持一致的接口
  3. 业务逻辑按照功能类型分布在不同的文件中
使用新服务
// 创建服务实例
adminService := admin.NewService(daoManager, configManager, storageService)
authService := auth.NewService(daoManager, configManager)
chunkService := chunk.NewService(daoManager, configManager, storageService)
shareService := share.NewService(daoManager, configManager, storageService)
userService := user.NewService(daoManager, configManager)

// 使用具体功能
stats, err := adminService.GetStats()
user, err := authService.Login(username, password)
progress, err := chunkService.CheckUploadProgress(uploadID)

后续优化建议

  1. DAO方法完善 - 需要补充一些缺失的DAO方法实现
  2. JWT支持 - auth服务可以添加JWT令牌管理功能
  3. 缓存层 - 可以在服务层添加缓存支持
  4. 事务管理 - 对于复杂操作添加数据库事务支持
  5. 日志增强 - 添加更详细的日志记录
  6. 测试用例 - 为每个服务模块添加单元测试

总结

本次重构成功将原有的单一服务文件拆分为模块化的服务架构,提高了代码的可维护性和扩展性。每个服务模块职责清晰,依赖关系明确,为后续功能开发提供了良好的基础。

Documentation

Overview

Package services 提供与原有代码的兼容性

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminService

type AdminService = admin.Service

兼容性类型别名

func NewAdminService

func NewAdminService(repositoryManager *repository.RepositoryManager, manager *config.ConfigManager, storageService *storage.ConcreteStorageService) *AdminService

兼容性构造函数

type AuthClaims

type AuthClaims = auth.AuthClaims

导出auth包中的类型

type AuthService

type AuthService = auth.Service

func NewAuthService

func NewAuthService(repositoryManager *repository.RepositoryManager, manager *config.ConfigManager) *AuthService

type ChunkService

type ChunkService = chunk.Service

func NewChunkService

func NewChunkService(repositoryManager *repository.RepositoryManager, manager *config.ConfigManager, storageService *storage.ConcreteStorageService) *ChunkService

type ShareFileRequest

type ShareFileRequest = models.ShareFileRequest

type ShareService

type ShareService = share.Service

func NewShareService

func NewShareService(repositoryManager *repository.RepositoryManager, manager *config.ConfigManager, storageService *storage.ConcreteStorageService, userService *UserService) *ShareService

type ShareTextRequest

type ShareTextRequest = models.ShareTextRequest

请求结构别名,使用统一的 models 定义

type UserService

type UserService = user.Service

func NewUserService

func NewUserService(repositoryManager *repository.RepositoryManager, manager *config.ConfigManager) *UserService

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL