@@ -0,0 +1,225 @@
|
||||
package officialWebsiteser
|
||||
|
||||
import (
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/v/officialWebsitemod"
|
||||
"91porn-server/models/v/sourcemod"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
)
|
||||
|
||||
type GetBasicDataResp struct {
|
||||
Title string `json:"title"`
|
||||
Description string `json:"description"`
|
||||
//域名信息
|
||||
SourceList []*sourcemod.SourceRes `json:"sourceList"`
|
||||
//接口域名
|
||||
Domain []string `json:"domain"`
|
||||
Banner []Banner `json:"banner"`
|
||||
BannersDescription string `json:"bannersDescription" bson:"bannersDescription"`
|
||||
BannersDuration int `json:"bannersDuration" bson:"bannersDuration"`
|
||||
HeroBanner []BasicDataHeroBanner `json:"heroBanner"`
|
||||
Masterpiece []BasicDataMasterpiece `json:"masterpiece"`
|
||||
Business []BasicDataBusiness `json:"business"`
|
||||
AboutUs BasicDataAboutUs `json:"aboutUs"`
|
||||
FAQ []BasicDataFAQ `json:"faq"`
|
||||
HomePageCMS []BasicDataCMSData `json:"homePageCMS"`
|
||||
RecruitCMS []BasicDataCMSData `json:"recruitCMS"`
|
||||
Tags []officialWebsitemod.Tag `json:"tags"`
|
||||
}
|
||||
|
||||
type Banner struct {
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Image string `json:"image"`
|
||||
PhoneImage string `json:"phoneImage"`
|
||||
Thumbnail string `json:"thumbnail"`
|
||||
URL string `json:"url"`
|
||||
}
|
||||
|
||||
type BasicDataHeroBanner struct {
|
||||
HeroID string `json:"heroId"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Image string `json:"image"`
|
||||
URL string `json:"url"`
|
||||
Duration int `json:"duration"`
|
||||
}
|
||||
|
||||
type BasicDataMasterpiece struct {
|
||||
ID string `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Description string `json:"description"`
|
||||
Cover string `json:"cover"`
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
type BasicDataBusiness struct {
|
||||
Name string `json:"name"`
|
||||
EnglishName string `json:"englishName"`
|
||||
Description string `json:"description"`
|
||||
Cover string `json:"cover"`
|
||||
Detail []BasicDataBusinessDetail `json:"detail"`
|
||||
}
|
||||
|
||||
type BasicDataBusinessDetail struct {
|
||||
Cover string `json:"cover"`
|
||||
Description string `json:"description"`
|
||||
}
|
||||
|
||||
type BasicDataAboutUs struct {
|
||||
Description string `json:"description"`
|
||||
Companies []BasicDataCompanyInfo `json:"companies"`
|
||||
Values string `json:"values"`
|
||||
ValuesImg string `json:"valuesImg"`
|
||||
}
|
||||
|
||||
type BasicDataCompanyInfo struct {
|
||||
Name string `json:"name"`
|
||||
Address string `json:"address"`
|
||||
Description string `json:"description"`
|
||||
Contact []BasicDataContactInfo `json:"contact"`
|
||||
}
|
||||
|
||||
type BasicDataContactInfo struct {
|
||||
Type string `json:"type"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
type SourceResp struct {
|
||||
ID primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"`
|
||||
IsActive bool `json:"isActive,omitempty" bson:"isActive,omitempty"`
|
||||
Type string `json:"type,omitempty" bson:"type,omitempty"`
|
||||
Domain DomainResp `json:"domain,omitempty" bson:"domain,omitempty"`
|
||||
}
|
||||
|
||||
type DomainResp struct {
|
||||
Weight int `json:"weight,omitempty" bson:"weight,omitempty"`
|
||||
Url string `json:"url,omitempty" bson:"url,omitempty"`
|
||||
Desc string `json:"desc,omitempty" bson:"desc,omitempty"`
|
||||
Status int `json:"status,omitempty" bson:"status,omitempty"`
|
||||
}
|
||||
|
||||
type BasicDataFAQ struct {
|
||||
Question string `json:"question"`
|
||||
Answer string `json:"answer"`
|
||||
}
|
||||
|
||||
type BasicDataCMSData struct {
|
||||
Description string `json:"description"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
func GetBasicData() (data GetBasicDataResp, err error) {
|
||||
basicDataMod := &officialWebsitemod.BasicData{}
|
||||
err = basicDataMod.FindOne()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if basicDataMod.ID == primitive.NilObjectID {
|
||||
err = stderr.OfficialWebsiteBasicDataNotExist
|
||||
return
|
||||
}
|
||||
|
||||
data = GetBasicDataResp{
|
||||
Title: basicDataMod.Title,
|
||||
Description: basicDataMod.Description,
|
||||
Banner: make([]Banner, 0),
|
||||
BannersDescription: basicDataMod.BannersDescription,
|
||||
BannersDuration: basicDataMod.BannersDuration,
|
||||
HeroBanner: make([]BasicDataHeroBanner, 0),
|
||||
Masterpiece: make([]BasicDataMasterpiece, 0),
|
||||
Business: make([]BasicDataBusiness, 0),
|
||||
AboutUs: BasicDataAboutUs{},
|
||||
FAQ: make([]BasicDataFAQ, 0),
|
||||
HomePageCMS: make([]BasicDataCMSData, 0),
|
||||
RecruitCMS: make([]BasicDataCMSData, 0),
|
||||
}
|
||||
for _, v := range basicDataMod.Banner {
|
||||
data.Banner = append(data.Banner, Banner{
|
||||
Name: v.Name,
|
||||
Description: v.Description,
|
||||
Image: v.Image,
|
||||
PhoneImage: v.PhoneImage,
|
||||
Thumbnail: v.Thumbnail,
|
||||
URL: v.URL,
|
||||
})
|
||||
}
|
||||
for _, v := range basicDataMod.HeroBanner {
|
||||
data.HeroBanner = append(data.HeroBanner, BasicDataHeroBanner{
|
||||
HeroID: v.HeroID.Hex(),
|
||||
Name: v.Name,
|
||||
Description: v.Description,
|
||||
Image: v.Image,
|
||||
URL: v.URL,
|
||||
Duration: v.Duration,
|
||||
})
|
||||
}
|
||||
for _, v := range basicDataMod.Masterpiece {
|
||||
data.Masterpiece = append(data.Masterpiece, BasicDataMasterpiece{
|
||||
ID: v.ID.Hex(),
|
||||
Name: v.Name,
|
||||
Description: v.Description,
|
||||
Cover: v.Cover,
|
||||
Type: v.Type,
|
||||
})
|
||||
}
|
||||
for _, v := range basicDataMod.Business {
|
||||
data.Business = append(data.Business, BasicDataBusiness{
|
||||
Name: v.Name,
|
||||
EnglishName: v.EnglishName,
|
||||
Description: v.Description,
|
||||
Cover: v.Cover,
|
||||
Detail: make([]BasicDataBusinessDetail, 0, len(v.Detail)),
|
||||
})
|
||||
for _, d := range v.Detail {
|
||||
data.Business[len(data.Business)-1].Detail = append(data.Business[len(data.Business)-1].Detail, BasicDataBusinessDetail{
|
||||
Cover: d.Cover,
|
||||
Description: d.Description,
|
||||
})
|
||||
}
|
||||
}
|
||||
data.AboutUs = BasicDataAboutUs{
|
||||
Description: basicDataMod.AboutUs.Description,
|
||||
Values: basicDataMod.AboutUs.Values,
|
||||
ValuesImg: basicDataMod.AboutUs.ValuesImg,
|
||||
}
|
||||
for _, v := range basicDataMod.AboutUs.Companies {
|
||||
data.AboutUs.Companies = append(data.AboutUs.Companies, BasicDataCompanyInfo{
|
||||
Name: v.Name,
|
||||
Address: v.Address,
|
||||
Description: v.Description,
|
||||
Contact: make([]BasicDataContactInfo, 0),
|
||||
})
|
||||
for _, c := range v.Contact {
|
||||
data.AboutUs.Companies[len(data.AboutUs.Companies)-1].Contact = append(data.AboutUs.Companies[len(data.AboutUs.Companies)-1].Contact, BasicDataContactInfo{
|
||||
Type: c.Type,
|
||||
Value: c.Value,
|
||||
})
|
||||
}
|
||||
}
|
||||
for _, v := range basicDataMod.FAQ {
|
||||
data.FAQ = append(data.FAQ, BasicDataFAQ{
|
||||
Question: v.Question,
|
||||
Answer: v.Answer,
|
||||
})
|
||||
}
|
||||
for _, v := range basicDataMod.HomePageCMS {
|
||||
data.HomePageCMS = append(data.HomePageCMS, BasicDataCMSData{
|
||||
Description: v.Description,
|
||||
Value: v.Value,
|
||||
})
|
||||
}
|
||||
for _, v := range basicDataMod.RecruitCMS {
|
||||
data.RecruitCMS = append(data.RecruitCMS, BasicDataCMSData{
|
||||
Description: v.Description,
|
||||
Value: v.Value,
|
||||
})
|
||||
}
|
||||
|
||||
data.Tags = basicDataMod.Tags
|
||||
|
||||
// 域名信息(Domain/SourceList)改由 controller 实时获取,不进基础数据大缓存
|
||||
|
||||
return data, err
|
||||
}
|
||||
Reference in New Issue
Block a user