package main import ( "fmt" "log" "shudao-chat-go/models" "github.com/beego/beego/v2/server/web" "golang.org/x/crypto/bcrypt" ) // InitAdminUser 初始化管理员账号 func InitAdminUser() { fmt.Println("=== 开始初始化管理员账号 ===") // 检查管理员账号是否已存在 var existingUser models.User result := models.DB.Where("username = ?", "Admin").First(&existingUser) if result.Error == nil { fmt.Printf("管理员账号已存在 (ID: %d), 跳过初始化\n", existingUser.ID) return } // 生成密码哈希 password := "admin123" hashedPassword, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost) if err != nil { log.Fatalf("密码加密失败: %v", err) } // 创建管理员账号 adminUser := models.User{ Username: "Admin", Password: string(hashedPassword), Nickname: "系统管理员", Email: "admin@shudaodsj.com", Role: "admin", Status: 1, // 正常状态 } // 插入数据库 if err := models.DB.Create(&adminUser).Error; err != nil { log.Fatalf("创建管理员账号失败: %v", err) } fmt.Printf("✅ 管理员账号创建成功!\n") fmt.Printf(" 用户名: %s\n", adminUser.Username) fmt.Printf(" 密码: %s\n", password) fmt.Printf(" 角色: %s\n", adminUser.Role) fmt.Printf(" ID: %d\n", adminUser.ID) fmt.Println("=== 初始化完成 ===") } func main() { // 加载配置 if err := web.LoadAppConfig("ini", "conf/app.conf"); err != nil { log.Fatalf("加载配置文件失败: %v", err) } // 初始化管理员账号 InitAdminUser() }