refactor: ♻️ 手写 gorm.Model 中的字段

方便定义 json 的 tag,控制字段可见性输出和数据库中的字段顺序
main
熊二 2 years ago
parent a5e311c337
commit a5c6cc4045
  1. 29
      app/db.go

@ -25,7 +25,7 @@ func ConfigGormDB() {
panic(err)
}
admin := User{
Model: gorm.Model{ID: 1},
ID: 1,
Name: "超级管理员",
PhoneNumber: "18982052224",
Password: hash,
@ -39,36 +39,45 @@ func ConfigGormDB() {
// User 用户
type User struct {
gorm.Model
ID uint `json:"id" gorm:"primarykey"`
Name string `json:"name"` // 用户名称
PhoneNumber string `json:"phone_number"` // 用户手机
Password string `json:"-"` // 登录密码
Admin bool `json:"admin"` // 是不是管理员
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
}
// UserToken 用户令牌
type UserToken struct {
Code string `gorm:"primarykey"` // 主键
UserID uint // 用户ID
User *User // 关联用户
AccessToken string // 授权令牌
RefreshToken string // 刷新令牌
CreatedAt time.Time // 创建时间
Code string `json:"code" gorm:"primarykey"` // 主键
UserID uint `json:"user_id"` // 用户ID
User *User `json:"user,omitempty"` // 关联用户
AccessToken string `json:"access_token"` // 授权令牌
RefreshToken string `json:"refresh_token"` // 刷新令牌
CreatedAt time.Time `json:"-"` // 创建时间
}
// Goods 商品
type Goods struct {
gorm.Model
ID uint `json:"id" gorm:"primarykey"`
Name string `json:"name"` // 商品名称
Price float32 `json:"price"` // 商品当前价格
Prices []Price `json:"prices,omitempty"` // 商品价格列表
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
}
// Price 商品价格
type Price struct {
gorm.Model
ID uint `json:"id" gorm:"primarykey"`
GoodsID uint `json:"goods_id"` // 管理商品
Price float32 `json:"price"` // 商品价格
CreatedAt time.Time `json:"-"`
UpdatedAt time.Time `json:"-"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
}
// Paginate 分页查询作用域

Loading…
Cancel
Save