72 lines
1.2 KiB
Go
72 lines
1.2 KiB
Go
package db
|
|
|
|
import (
|
|
"os"
|
|
|
|
"gorm.io/driver/mysql"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// 定义User模型
|
|
type User struct {
|
|
UserID int `gorm:"primaryKey"`
|
|
Username string `gorm:"not null"`
|
|
Email string `gorm:"not null"`
|
|
AvatarURL string
|
|
AccessToken string `gorm:"not null"`
|
|
}
|
|
|
|
// 初始化GORM数据库
|
|
func initializeDB() (*gorm.DB, error) {
|
|
dsn := os.Getenv("MYSQL_DSN")
|
|
|
|
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return db, nil
|
|
}
|
|
|
|
// 创建用户
|
|
func createUser(db *gorm.DB, user *User) error {
|
|
result := db.Create(user)
|
|
if result.Error != nil {
|
|
return result.Error
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// 根据用户ID查询用户
|
|
func getUserByID(db *gorm.DB, userID int) (*User, error) {
|
|
var user User
|
|
|
|
result := db.First(&user, userID)
|
|
if result.Error != nil {
|
|
return nil, result.Error
|
|
}
|
|
|
|
return &user, nil
|
|
}
|
|
|
|
// 更新用户
|
|
func updateUser(db *gorm.DB, user *User) error {
|
|
result := db.Save(user)
|
|
if result.Error != nil {
|
|
return result.Error
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
// 删除用户
|
|
func deleteUser(db *gorm.DB, user *User) error {
|
|
result := db.Delete(user)
|
|
if result.Error != nil {
|
|
return result.Error
|
|
}
|
|
|
|
return nil
|
|
}
|