refactor: 调整项目结构为单向依赖

This commit is contained in:
Forest
2025-12-26 15:40:24 +08:00
parent b3463769dc
commit e5a77853b0
98 changed files with 5503 additions and 3352 deletions

View File

@@ -10,10 +10,10 @@ import (
"strconv"
"time"
"github.com/Wei-Shaw/sub2api/internal/model"
"github.com/Wei-Shaw/sub2api/internal/repository"
"github.com/Wei-Shaw/sub2api/internal/service"
"github.com/redis/go-redis/v9"
"golang.org/x/crypto/bcrypt"
"gopkg.in/yaml.v3"
"gorm.io/driver/postgres"
"gorm.io/gorm"
@@ -271,8 +271,7 @@ func initializeDatabase(cfg *SetupConfig) error {
}
}()
// 使用 model 包的 AutoMigrate,确保模型定义统一
return model.AutoMigrate(db)
return repository.AutoMigrate(db)
}
func createAdminUser(cfg *SetupConfig) error {
@@ -299,29 +298,28 @@ func createAdminUser(cfg *SetupConfig) error {
// Check if admin already exists
var count int64
db.Model(&model.User{}).Where("role = ?", "admin").Count(&count)
if err := db.Table("users").Where("role = ?", service.RoleAdmin).Count(&count).Error; err != nil {
return err
}
if count > 0 {
return nil // Admin already exists
}
// Hash password
hashedPassword, err := bcrypt.GenerateFromPassword([]byte(cfg.Admin.Password), bcrypt.DefaultCost)
if err != nil {
admin := &service.User{
Email: cfg.Admin.Email,
Role: service.RoleAdmin,
Status: service.StatusActive,
Balance: 0,
Concurrency: 5,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
if err := admin.SetPassword(cfg.Admin.Password); err != nil {
return err
}
// Create admin user
admin := &model.User{
Email: cfg.Admin.Email,
PasswordHash: string(hashedPassword),
Role: model.RoleAdmin,
Status: model.StatusActive,
Balance: 0,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
return db.Create(admin).Error
return repository.NewUserRepository(db).Create(context.Background(), admin)
}
func writeConfigFile(cfg *SetupConfig) error {