|
|
|
@ -17,43 +17,67 @@ func ConfigGormDB() { |
|
|
|
|
if err != nil { |
|
|
|
|
panic(err) |
|
|
|
|
} |
|
|
|
|
if err = DB.AutoMigrate(&User{}, &Goods{}, &Price{}); err != nil { |
|
|
|
|
if err = DB.AutoMigrate(&User{}, &UserToken{}, &Goods{}, &Price{}); err != nil { |
|
|
|
|
panic(err) |
|
|
|
|
} |
|
|
|
|
hash, err := HashPassword("123456") |
|
|
|
|
if err != nil { |
|
|
|
|
panic(err) |
|
|
|
|
} |
|
|
|
|
admin := User{ |
|
|
|
|
ID: 1, |
|
|
|
|
Name: "超级管理员", |
|
|
|
|
PhoneNumber: "18982052224", |
|
|
|
|
Password: hash, |
|
|
|
|
Admin: true, |
|
|
|
|
} |
|
|
|
|
err = DB.Save(&admin).Error |
|
|
|
|
if err != nil { |
|
|
|
|
panic(err) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 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 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 分页查询作用域
|
|
|
|
|