package officialWebsitemod import ( "91porn-server/common/stderr" "time" "go.mongodb.org/mongo-driver/bson/primitive" ) // BasicData 官方网站公用数据结构,包括基础静态数据和CMS动态数据 // 表: official_website_basic_data type BasicData struct { ID primitive.ObjectID `json:"id" bson:"_id,omitempty"` Title string `json:"title" bson:"title"` Description string `json:"description" bson:"description"` // 轮播图和创作者轮博分开 Banner []Banner `json:"banner" bson:"banner"` HeroBanner []HeroBanner `json:"heroBanner" bson:"heroBanner"` BannersDescription string `json:"bannersDescription" bson:"bannersDescription"` BannersDuration int `json:"bannersDuration" bson:"bannersDuration"` Masterpiece []Masterpiece `json:"masterpiece" bson:"masterpiece"` Business []Business `json:"business" bson:"business"` AboutUs AboutUs `json:"aboutUs" bson:"aboutUs"` FAQ []FAQ `json:"faq" bson:"faq"` HomePageCMS []CMSData `json:"homePageCMS" bson:"homePageCMS"` HomePageCMSDescription string `json:"homePageCMSDescription" bson:"homePageCMSDescription"` RecruitCMS []CMSData `json:"recruitCMS" bson:"recruitCMS"` Tags []Tag `json:"tags" bson:"tags"` // 标签列表 BaseModel `bson:",inline"` } func (b *BasicData) tableName() string { return tableBasicData } func (b *BasicData) FindOne() error { if b == nil { return stderr.ErrDataInvalid } return findOneByTable(b.tableName(), b, nil) } func (b *BasicData) Create() error { if b == nil { return stderr.ErrDataInvalid } oldOne := &BasicData{} if err := oldOne.FindOne(); err == nil && oldOne.ID != primitive.NilObjectID { return stderr.OfficialWebsiteBasicDataExist } b.CreatedAt = time.Now().UTC() b.UpdatedAt = b.CreatedAt id, err := createByTable(b.tableName(), b) if err != nil { return err } b.ID = id return nil } func (b *BasicData) Update(filter M, update M) (int64, error) { return updateByTable(b.tableName(), filter, update) } func (b *BasicData) Delete(filter M) (int64, error) { return deleteByTable(b.tableName(), filter) }