package model import ( "github.com/bwmarrin/snowflake" "gorm.io/gorm" "hospital-admin-api/config" "time" ) type BasicBank struct { BankId int64 `gorm:"column:bank_id;type:bigint(19);primary_key;comment:主键id" json:"bank_id"` BankCode string `gorm:"column:bank_code;type:varchar(255);comment:银行编码" json:"bank_code"` BankName string `gorm:"column:bank_name;type:varchar(50);comment:银行名称" json:"bank_name"` BankIconPath string `gorm:"column:bank_icon_path;type:varchar(255);comment:银行图标地址" json:"bank_icon_path"` BankImgPath string `gorm:"column:bank_img_path;type:varchar(255);comment:银行图片地址" json:"bank_img_path"` Model } func (m *BasicBank) TableName() string { return "gdxz_basic_bank" } func (m *BasicBank) BeforeCreate(tx *gorm.DB) error { if m.BankId == 0 { // 创建雪花算法实例 sf, err := snowflake.NewNode(config.C.Snowflake) if err != nil { return err } // 生成新的雪花算法 ID m.BankId = sf.Generate().Int64() } m.CreatedAt = LocalTime(time.Now()) tx.Statement.SetColumn("CreatedAt", m.CreatedAt) m.UpdatedAt = LocalTime(time.Now()) tx.Statement.SetColumn("UpdatedAt", m.UpdatedAt) return nil }