Files
ai_english/serve/scripts/create_test_users.go

106 lines
2.8 KiB
Go
Raw Normal View History

2025-11-17 13:39:05 +08:00
package main
import (
"fmt"
"log"
"time"
"github.com/Nanqipro/YunQue-Tech-Projects/ai_english_learning/serve/config"
"github.com/Nanqipro/YunQue-Tech-Projects/ai_english_learning/serve/internal/database"
"github.com/Nanqipro/YunQue-Tech-Projects/ai_english_learning/serve/internal/models"
"github.com/Nanqipro/YunQue-Tech-Projects/ai_english_learning/serve/internal/utils"
)
func main() {
// 加载配置
config.LoadConfig()
if config.GlobalConfig == nil {
log.Fatal("Failed to load configuration")
}
// 初始化数据库
database.InitDatabase()
defer database.CloseDatabase()
db := database.GetDB()
// 测试用户数据
testUsers := []struct {
Username string
Email string
Password string
Nickname string
}{
{
Username: "testuser",
Email: "test@example.com",
Password: "Test@123",
Nickname: "测试用户",
},
{
Username: "student1",
Email: "student1@example.com",
Password: "Student@123",
Nickname: "学生一号",
},
{
Username: "student2",
Email: "student2@example.com",
Password: "Student@123",
Nickname: "学生二号",
},
{
Username: "teacher",
Email: "teacher@example.com",
Password: "Teacher@123",
Nickname: "教师账号",
},
}
fmt.Println("开始创建测试用户...")
for _, userData := range testUsers {
// 检查用户是否已存在
var existingUser models.User
result := db.Where("username = ? OR email = ?", userData.Username, userData.Email).First(&existingUser)
if result.Error == nil {
fmt.Printf("用户 %s 已存在,跳过创建\n", userData.Username)
continue
}
// 加密密码
hashedPassword, err := utils.HashPassword(userData.Password)
if err != nil {
log.Printf("Failed to hash password for %s: %v", userData.Username, err)
continue
}
// 创建用户
user := models.User{
Username: userData.Username,
Email: userData.Email,
PasswordHash: hashedPassword,
Nickname: &userData.Nickname,
Status: "active",
CreatedAt: time.Now(),
UpdatedAt: time.Now(),
}
if err := db.Create(&user).Error; err != nil {
log.Printf("Failed to create user %s: %v", userData.Username, err)
continue
}
fmt.Printf("✓ 成功创建用户: %s (邮箱: %s, 密码: %s)\n",
userData.Username, userData.Email, userData.Password)
}
fmt.Println("\n测试用户创建完成")
fmt.Println("\n可用的测试账号")
fmt.Println("1. 用户名: testuser 邮箱: test@example.com 密码: Test@123")
fmt.Println("2. 用户名: student1 邮箱: student1@example.com 密码: Student@123")
fmt.Println("3. 用户名: student2 邮箱: student2@example.com 密码: Student@123")
fmt.Println("4. 用户名: teacher 邮箱: teacher@example.com 密码: Teacher@123")
}