Files
liumangmang b010f82221 feat(auth): 添加完整的用户认证API项目
- 实现用户注册、登录、JWT令牌认证功能
- 集成Gin、GORM、Viper、Zap等框架
- 添加密码加密、数据库操作、中间件等完整功能
- 配置多环境支持、日志轮转、CORS处理
- 创建完整的项目结构和配置文件体系
2025-12-30 18:00:42 +08:00

57 lines
1.4 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package main
import (
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
//type User struct {
// ID uint `gorm:"primaryKey"`
// Name string `gorm:"size:100"`
// Email string `gorm:"size:100;unique"`
// Age int
// DeletedAt gorm.DeletedAt `gorm:"index"` // 软删除字段
//}
func main() {
db, _ := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
db.AutoMigrate(&User{})
//// 插入测试数据
//users := []User{
// {Name: "Alice", Email: "alice@example.com", Age: 30},
// {Name: "Bob", Email: "bob@example.com", Age: 25},
// {Name: "Charlie", Email: "charlie@example.com", Age: 35},
//}
//db.Create(users)
// 1. 软删除(标记 deleted_at
db.Delete(&User{}, 11) // 删除 ID=1 的用户
fmt.Println("Soft deleted user ID=1")
// 2. 查询时默认不包括已删除的
var activeUsers []User
db.Find(&activeUsers)
fmt.Printf("Active users: %d\n", len(activeUsers))
// 3. 查询所有记录(包括已删除的)
var allUsers []User
db.Unscoped().Find(&allUsers)
fmt.Printf("All users (including deleted): %d\n", len(allUsers))
// 4. 永久删除(硬删除)
db.Unscoped().Delete(&User{}, 12)
fmt.Println("Permanently deleted user ID=2")
// 5. 批量删除
db.Where("age < ?", 30).Delete(&User{})
fmt.Println("Batch delete completed")
// 最终统计
var finalCount int64
db.Model(&User{}).Count(&finalCount)
fmt.Printf("Final active users: %d\n", finalCount)
}