package models import ( "sync" "time" ) // CmsProduct CMS 产品 yz_cms_product type CmsProduct struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Tid uint64 `orm:"column(tid);default(0)" json:"tid"` Title string `orm:"column(title);size(100)" json:"title"` Thumb string `orm:"column(thumb);size(500);default()" json:"thumb"` Desc string `orm:"column(desc);size(500);default()" json:"desc"` Content string `orm:"column(content);type(mediumtext);null" json:"content"` URL string `orm:"column(url);size(500);default()" json:"url"` Sort int `orm:"column(sort);default(0)" json:"sort"` Status int8 `orm:"column(status);default(1)" json:"status"` CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"` } func (m *CmsProduct) TableName() string { return "yz_cms_product" } // CmsProductCategory CMS 产品分类 yz_cms_product_category type CmsProductCategory struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Tid uint64 `orm:"column(tid);default(0)" json:"tid"` Title string `orm:"column(title);size(100)" json:"title"` Pid uint64 `orm:"column(pid);default(0)" json:"pid"` Desc string `orm:"column(desc);size(500);default()" json:"desc"` Sort int `orm:"column(sort);default(0)" json:"sort"` Status int8 `orm:"column(status);default(1)" json:"status"` CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"` } func (m *CmsProductCategory) TableName() string { return "yz_cms_product_category" } var cmsProductTablesOnce sync.Once // EnsureCmsProductTables 首次使用时自动建表(若不存在)。 func EnsureCmsProductTables() error { var err error cmsProductTablesOnce.Do(func() { _, err = Orm.Raw(` CREATE TABLE IF NOT EXISTS yz_cms_product ( id bigint unsigned NOT NULL AUTO_INCREMENT, tid bigint unsigned NOT NULL DEFAULT 0, title varchar(100) NOT NULL DEFAULT '', thumb varchar(500) NOT NULL DEFAULT '', ` + "`desc`" + ` varchar(500) NOT NULL DEFAULT '', content mediumtext, url varchar(500) NOT NULL DEFAULT '', sort int NOT NULL DEFAULT 0, status tinyint NOT NULL DEFAULT 1, create_time datetime NOT NULL, update_time datetime DEFAULT NULL, delete_time datetime DEFAULT NULL, PRIMARY KEY (id), KEY idx_tid_status (tid, status) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`).Exec() if err != nil { return } _, err = Orm.Raw(` CREATE TABLE IF NOT EXISTS yz_cms_product_category ( id bigint unsigned NOT NULL AUTO_INCREMENT, tid bigint unsigned NOT NULL DEFAULT 0, title varchar(100) NOT NULL DEFAULT '', pid bigint unsigned NOT NULL DEFAULT 0, ` + "`desc`" + ` varchar(500) NOT NULL DEFAULT '', sort int NOT NULL DEFAULT 0, status tinyint NOT NULL DEFAULT 1, create_time datetime NOT NULL, update_time datetime DEFAULT NULL, delete_time datetime DEFAULT NULL, PRIMARY KEY (id), KEY idx_tid_pid (tid, pid) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`).Exec() }) return err }