226 lines
7.1 KiB
Go
226 lines
7.1 KiB
Go
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
|
|
}
|