43 lines
970 B
Go
43 lines
970 B
Go
package sys
|
|
|
|
import (
|
|
"SciencesServer/app/api/website/model"
|
|
"SciencesServer/config"
|
|
)
|
|
|
|
type Banner struct {
|
|
tenantID uint64
|
|
}
|
|
|
|
type BannerHandle func(tenantID uint64) *Banner
|
|
|
|
type BannerInfo struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
IsMultiple int `json:"is_multiple"`
|
|
Images string `json:"images"`
|
|
}
|
|
|
|
func (c *Banner) Instance(key string) (*BannerInfo, error) {
|
|
mSysBanner := model.NewSysBanner()
|
|
if err := mSysBanner.Get(c.tenantID, map[string]interface{}{
|
|
"key": key, "local": key,
|
|
}); err != nil {
|
|
return nil, err
|
|
} else if mSysBanner.ID <= 0 {
|
|
return nil, nil
|
|
}
|
|
return &BannerInfo{
|
|
ID: mSysBanner.GetEncodeID(),
|
|
Title: mSysBanner.Title,
|
|
IsMultiple: mSysBanner.IsMultiple,
|
|
Images: mSysBanner.Images.AnalysisSlice(config.SystemConfig[config.SysImageDomain]),
|
|
}, nil
|
|
}
|
|
|
|
func NewBanner() BannerHandle {
|
|
return func(tenantID uint64) *Banner {
|
|
return &Banner{tenantID: tenantID}
|
|
}
|
|
}
|