package models import ( "time" "github.com/beego/beego/v2/client/orm" ) // CmsArticleCategory CMS 文章分类 yz_cms_article_category type CmsArticleCategory struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Tid uint64 `orm:"column(tid);default(0)" json:"tid"` Cid uint64 `orm:"column(cid);default(0)" json:"cid"` Name string `orm:"column(name);size(100)" json:"name"` Image string `orm:"column(image);size(500);default()" json:"image"` 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 *CmsArticleCategory) TableName() string { return "yz_cms_article_category" } // CmsArticle CMS 文章 yz_cms_article type CmsArticle 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(255)" json:"title"` Author string `orm:"column(author);size(100);default()" json:"author"` CateID uint64 `orm:"column(cate_id);default(0)" json:"cate_id"` Content string `orm:"column(content);type(mediumtext);null" json:"content"` Desc string `orm:"column(desc);size(500);default()" json:"desc"` Image string `orm:"column(image);size(500);default()" json:"image"` IsTrans int8 `orm:"column(is_trans);default(0)" json:"is_trans"` TransURL *string `orm:"column(transurl);size(500);null" json:"transurl"` Status int8 `orm:"column(status);default(0)" json:"status"` Top int8 `orm:"column(top);default(0)" json:"top"` Recommend int8 `orm:"column(recommend);default(0)" json:"recommend"` Views int `orm:"column(views);default(0)" json:"views"` Likes int `orm:"column(likes);default(0)" json:"likes"` PublisherID *uint64 `orm:"column(publisher_id);null" json:"publisher_id"` PublishTime *time.Time `orm:"column(publish_time);type(datetime);null" json:"publish_time"` 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 *CmsArticle) TableName() string { return "yz_cms_article" } func CmsCategoryNameMap(tid uint64, ids []uint64) map[uint64]string { out := make(map[uint64]string) if len(ids) == 0 { return out } var rows []CmsArticleCategory qs := Orm.QueryTable(new(CmsArticleCategory)). Filter("id__in", ids). Filter("delete_time__isnull", true) cond := orm.NewCondition().Or("tid", 0).Or("tid", tid) _, _ = qs.SetCond(cond).All(&rows, "ID", "Name") for _, r := range rows { out[r.ID] = r.Name } return out } func CmsCategoryImageMap(tid uint64, ids []uint64) map[uint64]string { out := make(map[uint64]string) if len(ids) == 0 { return out } var rows []CmsArticleCategory qs := Orm.QueryTable(new(CmsArticleCategory)). Filter("id__in", ids). Filter("delete_time__isnull", true) cond := orm.NewCondition().Or("tid", 0).Or("tid", tid) _, _ = qs.SetCond(cond).All(&rows, "ID", "Image") for _, r := range rows { out[r.ID] = r.Image } return out } func CmsFormatTime(t *time.Time) string { if t == nil { return "" } return t.Format("2006-01-02 15:04:05") } func CmsSimilarArticles(tid uint64, title string, limit int) ([]orm.Params, error) { if limit <= 0 { limit = 5 } var rows []CmsArticle _, err := Orm.QueryTable(new(CmsArticle)). Filter("tid", tid). Filter("delete_time__isnull", true). Filter("title__icontains", title). Limit(limit). All(&rows, "ID", "Title") if err != nil { return nil, err } out := make([]orm.Params, 0, len(rows)) for _, r := range rows { out = append(out, orm.Params{ "id": r.ID, "title": r.Title, "similarity": 80, }) } return out, nil }