package repositories import ( "gitea.zjmud.xyz/phyer/rbac/config" "gitea.zjmud.xyz/phyer/rbac/models" "gorm.io/gorm" ) var db *gorm.DB func InitDB() error { var err error db, err = gorm.Open(mysql.Open(config.GetDSN()), &gorm.Config{}) if err != nil { return err } return db.AutoMigrate(&models.User{}) } func GetAllUsers() ([]models.User, error) { var users []models.User result := db.Find(&users) return users, result.Error } func GetUserByID(id string) (*models.User, error) { var user models.User result := db.First(&user, "id = ?", id) return &user, result.Error } func GetUserByUsername(username string) (*models.User, error) { var user models.User result := db.First(&user, "username = ?", username) return &user, result.Error } func CreateUser(user *models.User) (*models.User, error) { result := db.Create(user) return user, result.Error } func UpdateUser(id string, updateData map[string]interface{}) (*models.User, error) { var user models.User result := db.Model(&user).Where("id = ?", id).Updates(updateData) if result.Error != nil { return nil, result.Error } return GetUserByID(id) } func DeleteUser(id string) error { result := db.Delete(&models.User{}, "id = ?", id) return result.Error }