广告改为参考模板从媒资中心按 AppId 拉取

- 新增 proxy.QueryAdvitise / storage.QueryAdvitiseList,调用 /media/web/app/advitise
- proxy.AdvitiseInfo 兼容 id 为数字或字符串
- configser 改用 UpdateAdvitiseData,定时拉取并拼接 CDN,移除广告中心(Jt)拉取
- proto.AdvitiseData 改为 proxy.AdvitiseData 别名,应用列表 A/B 广告位改用 appInfoAList/appInfoBList
- 同步 swagger 文档

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-29 11:28:04 +08:00
co-authored by Claude Opus 5.5
parent a074446edb
commit 9a2d92d4b7
10 changed files with 1233 additions and 7323 deletions
+24
View File
@@ -156,6 +156,30 @@ func QueryMedia(baseInfo *MediaQueryeReq, domain string) (result *VideoQueryResu
return
}
func QueryAdvitise(baseInfo *AppAdvitiseInfoReq, domain string) (result *AdvitiseQuerysResult, err error) {
result = &AdvitiseQuerysResult{}
paramJson, err := json.Marshal(baseInfo)
if err != nil {
return
}
if len(domain) == 0 {
domain = DomainAddressRepair(domain, BucketVideoAddressV2)
}
url := domain
if !strings.Contains(domain, "/media/web/app/advitise") {
url = domain + "/media/web/app/advitise"
}
fr, err := http.Post(url, header, bytes.NewReader(paramJson))
if err != nil {
return
}
if err = json.Unmarshal(fr.Data, result); err != nil {
fmt.Println(err)
return nil, err
}
return
}
func QueryMedias(baseInfo *MediaQueryesReq, domain string) (result *VideoQuerysResult, err error) {
result = &VideoQuerysResult{
Data: make([]MediaResp, 0),
+28
View File
@@ -1,6 +1,7 @@
package proxy
import (
"encoding/json"
"strings"
"time"
"videoweb/pub/models/videoinformationmod"
@@ -425,6 +426,33 @@ type AdvitiseInfo struct {
Images string `json:"images" bson:"images"` // 视频banner
Link string `json:"link" bson:"link"` // 链接
}
// UnmarshalJSON 兼容远端 id 返回数字或字符串两种格式,统一解析为字符串,避免大整数(雪花ID)在 JS 端丢精度
func (a *AdvitiseInfo) UnmarshalJSON(data []byte) error {
type alias AdvitiseInfo
aux := &struct {
Id json.RawMessage `json:"id"`
*alias
}{alias: (*alias)(a)}
if err := json.Unmarshal(data, aux); err != nil {
return err
}
raw := strings.TrimSpace(string(aux.Id))
switch {
case raw == "" || raw == "null":
a.Id = ""
case strings.HasPrefix(raw, `"`):
var s string
if err := json.Unmarshal([]byte(raw), &s); err != nil {
return err
}
a.Id = s
default:
a.Id = raw
}
return nil
}
type AdvitiseData struct {
DialogList []AdvitiseInfo `json:"dialogList" bson:"dialogList"` // 弹窗广告
HomeList []AdvitiseInfo `json:"homeList" bson:"homeList"` // 首页列表