71 lines
2.3 KiB
Go
71 lines
2.3 KiB
Go
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)
|
|
}
|