diff --git a/app/api/proto/ads.go b/app/api/proto/ads.go index ce87080..d4900db 100644 --- a/app/api/proto/ads.go +++ b/app/api/proto/ads.go @@ -13,22 +13,5 @@ type AdsClickInfo struct { Location int64 `json:"location,omitempty" binding:"required"` // 位置ID } -type AdvitiseData struct { - HomeList []proxy.AdvitiseInfo `json:"homeList" bson:"homeList"` // 首页列表 - DetailTopList []proxy.AdvitiseInfo `json:"detailTopList" bson:"detailTopList"` // 详情页顶部广告 - NineGridList []proxy.AdvitiseInfo `json:"nineGridList" bson:"nineGridList"` // 9宫格 - DetailbannerList []proxy.AdvitiseInfo `json:"detailbannerList" bson:"detailbannerList"` // 详情banner - LaunchScreenList []proxy.AdvitiseInfo `json:"launchScreenList"` // 启动页广告 - FloatingList []proxy.AdvitiseInfo `json:"floatingList" bson:"floatingList"` // 悬浮小方块 - AList []proxy.AdvitiseInfo `json:"AList"` // 固定12广告位 - BList []proxy.AdvitiseInfo `json:"BList"` // 固定13广告位 - DialogList []proxy.AdvitiseInfo `json:"dialogList" bson:"dialogList"` // 弹窗广告 - BottomBanner []proxy.AdvitiseInfo `json:"bottomBanner" bson:"bottomBanner"` // 底部banner - - VideoInfoList []proxy.AdvitiseInfo `json:"videoInfoList" bson:"videoInfoList"` // 视频详情 - DownList []proxy.AdvitiseInfo `json:"downList" bson:"downList"` // 底部广告 - FriendList []proxy.AdvitiseInfo `json:"friendList" bson:"friendList"` // 友链 - TitleList []proxy.AdvitiseInfo `json:"titleList" bson:"titleList"` // 标题广告 - PlayList []proxy.AdvitiseInfo `json:"playList" bson:"playList"` // 播放强制跳转 - PauseyList []proxy.AdvitiseInfo `json:"pauseyList" bson:"pauseyList"` // 暂停广告 -} +// AdvitiseData 广告数据,直接使用媒资中心返回的结构 +type AdvitiseData = proxy.AdvitiseData diff --git a/app/docs/docs.go b/app/docs/docs.go index 408f0ce..da7f183 100644 --- a/app/docs/docs.go +++ b/app/docs/docs.go @@ -2308,123 +2308,6 @@ const docTemplate = `{ "TranTypeAdminAdjust" ] }, - "proto.AdvitiseData": { - "type": "object", - "properties": { - "AList": { - "description": "固定12广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "BList": { - "description": "固定13广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "bottomBanner": { - "description": "底部banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailTopList": { - "description": "详情页顶部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailbannerList": { - "description": "详情banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "dialogList": { - "description": "弹窗广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "downList": { - "description": "底部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "floatingList": { - "description": "悬浮小方块", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "friendList": { - "description": "友链", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "homeList": { - "description": "首页列表", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "launchScreenList": { - "description": "启动页广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "nineGridList": { - "description": "9宫格", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "pauseyList": { - "description": "暂停广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "playList": { - "description": "播放强制跳转", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "titleList": { - "description": "标题广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "videoInfoList": { - "description": "视频详情", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - } - } - }, "proto.AnnouncementItem": { "type": "object", "properties": { @@ -2526,7 +2409,7 @@ const docTemplate = `{ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -3147,7 +3030,7 @@ const docTemplate = `{ "description": "广告配置", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -3442,7 +3325,7 @@ const docTemplate = `{ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -5357,7 +5240,7 @@ const docTemplate = `{ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -5498,6 +5381,116 @@ const docTemplate = `{ } } }, + "proxy.AdvitiseData": { + "type": "object", + "properties": { + "appInfoAList": { + "description": "应用管理广告A", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "appInfoBList": { + "description": "应用管理广告B", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "dialogList": { + "description": "弹窗广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "forcedJumpList": { + "description": "强制跳转广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "friendList": { + "description": "友链", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "homeList": { + "description": "首页列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "hotAppList": { + "description": "热门应用", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "mustAppList": { + "description": "必备精品", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "newAppList": { + "description": "最新上架", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "nineGridList": { + "description": "9宫格", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "stopList": { + "description": "暂停广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "titleAppList": { + "description": "标题广告(APP名称)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoDownList": { + "description": "帖子详情(下)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoList": { + "description": "视频列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoTopList": { + "description": "帖子详情(上)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + } + } + }, "proxy.AdvitiseInfo": { "type": "object", "properties": { diff --git a/app/docs/swagger.json b/app/docs/swagger.json index 6acdac1..d4989e8 100644 --- a/app/docs/swagger.json +++ b/app/docs/swagger.json @@ -2306,123 +2306,6 @@ "TranTypeAdminAdjust" ] }, - "proto.AdvitiseData": { - "type": "object", - "properties": { - "AList": { - "description": "固定12广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "BList": { - "description": "固定13广告位", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "bottomBanner": { - "description": "底部banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailTopList": { - "description": "详情页顶部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "detailbannerList": { - "description": "详情banner", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "dialogList": { - "description": "弹窗广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "downList": { - "description": "底部广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "floatingList": { - "description": "悬浮小方块", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "friendList": { - "description": "友链", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "homeList": { - "description": "首页列表", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "launchScreenList": { - "description": "启动页广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "nineGridList": { - "description": "9宫格", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "pauseyList": { - "description": "暂停广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "playList": { - "description": "播放强制跳转", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "titleList": { - "description": "标题广告", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - }, - "videoInfoList": { - "description": "视频详情", - "type": "array", - "items": { - "$ref": "#/definitions/proxy.AdvitiseInfo" - } - } - } - }, "proto.AnnouncementItem": { "type": "object", "properties": { @@ -2524,7 +2407,7 @@ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -3145,7 +3028,7 @@ "description": "广告配置", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -3440,7 +3323,7 @@ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -5355,7 +5238,7 @@ "description": "广告", "allOf": [ { - "$ref": "#/definitions/proto.AdvitiseData" + "$ref": "#/definitions/proxy.AdvitiseData" } ] }, @@ -5496,6 +5379,116 @@ } } }, + "proxy.AdvitiseData": { + "type": "object", + "properties": { + "appInfoAList": { + "description": "应用管理广告A", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "appInfoBList": { + "description": "应用管理广告B", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "dialogList": { + "description": "弹窗广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "forcedJumpList": { + "description": "强制跳转广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "friendList": { + "description": "友链", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "homeList": { + "description": "首页列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "hotAppList": { + "description": "热门应用", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "mustAppList": { + "description": "必备精品", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "newAppList": { + "description": "最新上架", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "nineGridList": { + "description": "9宫格", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "stopList": { + "description": "暂停广告", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "titleAppList": { + "description": "标题广告(APP名称)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoDownList": { + "description": "帖子详情(下)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoList": { + "description": "视频列表", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + }, + "videoTopList": { + "description": "帖子详情(上)", + "type": "array", + "items": { + "$ref": "#/definitions/proxy.AdvitiseInfo" + } + } + } + }, "proxy.AdvitiseInfo": { "type": "object", "properties": { diff --git a/app/docs/swagger.yaml b/app/docs/swagger.yaml index c2e57ea..c7c4789 100644 --- a/app/docs/swagger.yaml +++ b/app/docs/swagger.yaml @@ -122,89 +122,6 @@ definitions: - TranTypeDarkAlley - TranTypeVideoUnlock - TranTypeAdminAdjust - proto.AdvitiseData: - properties: - AList: - description: 固定12广告位 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - BList: - description: 固定13广告位 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - bottomBanner: - description: 底部banner - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - detailTopList: - description: 详情页顶部广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - detailbannerList: - description: 详情banner - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - dialogList: - description: 弹窗广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - downList: - description: 底部广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - floatingList: - description: 悬浮小方块 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - friendList: - description: 友链 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - homeList: - description: 首页列表 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - launchScreenList: - description: 启动页广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - nineGridList: - description: 9宫格 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - pauseyList: - description: 暂停广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - playList: - description: 播放强制跳转 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - titleList: - description: 标题广告 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - videoInfoList: - description: 视频详情 - items: - $ref: '#/definitions/proxy.AdvitiseInfo' - type: array - type: object proto.AnnouncementItem: properties: content: @@ -277,7 +194,7 @@ definitions: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告 category: allOf: @@ -719,7 +636,7 @@ definitions: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告配置 config: allOf: @@ -916,7 +833,7 @@ definitions: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告 bottonTranslations: allOf: @@ -2266,7 +2183,7 @@ definitions: properties: advitise: allOf: - - $ref: '#/definitions/proto.AdvitiseData' + - $ref: '#/definitions/proxy.AdvitiseData' description: 广告 coverImg: description: 封面 @@ -2363,6 +2280,84 @@ definitions: description: 总共数量 type: integer type: object + proxy.AdvitiseData: + properties: + appInfoAList: + description: 应用管理广告A + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + appInfoBList: + description: 应用管理广告B + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + dialogList: + description: 弹窗广告 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + forcedJumpList: + description: 强制跳转广告 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + friendList: + description: 友链 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + homeList: + description: 首页列表 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + hotAppList: + description: 热门应用 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + mustAppList: + description: 必备精品 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + newAppList: + description: 最新上架 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + nineGridList: + description: 9宫格 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + stopList: + description: 暂停广告 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + titleAppList: + description: 标题广告(APP名称) + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + videoDownList: + description: 帖子详情(下) + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + videoList: + description: 视频列表 + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + videoTopList: + description: 帖子详情(上) + items: + $ref: '#/definitions/proxy.AdvitiseInfo' + type: array + type: object proxy.AdvitiseInfo: properties: id: diff --git a/app/service/appser/cache.go b/app/service/appser/cache.go index d21ae5f..9ff2b65 100644 --- a/app/service/appser/cache.go +++ b/app/service/appser/cache.go @@ -124,7 +124,7 @@ func UpdateAppListCache(ctx context.Context) { } // 广告位 A(code=12) if category.Code == 12 { - for _, ad := range advitise.AList { + for _, ad := range advitise.AppInfoAList { apps = append(apps, proto.AppInfoData{ AdvitiseId: ad.Id, CategoryId: category.Id, @@ -137,7 +137,7 @@ func UpdateAppListCache(ctx context.Context) { } // 广告位 B(code=13) if category.Code == 13 { - for _, ad := range advitise.BList { + for _, ad := range advitise.AppInfoBList { apps = append(apps, proto.AppInfoData{ AdvitiseId: ad.Id, CategoryId: category.Id, diff --git a/app/service/configser/announcement.go b/app/service/configser/announcement.go index f37e2ca..f2f3002 100644 --- a/app/service/configser/announcement.go +++ b/app/service/configser/announcement.go @@ -1,97 +1,61 @@ package configser import ( - "strconv" - "videoweb/app/api/proto" - "videoweb/app/appg" - "videoweb/pub/adcenter" + "context" + "net/http" "videoweb/pub/common/log" "videoweb/pub/common/netutil" + "videoweb/pub/pubdef" + "videoweb/pub/storage" "videoweb/pub/storage/proxy" ) -// UpdateAdvitiseDataFromJt 从广告中心拉取福利页广告 -func UpdateAdvitiseDataFromJt() { +// UpdateAdvitiseData 从媒资中心按 AppId 拉取广告,图片拼接 CDN 后写入缓存 +func UpdateAdvitiseData(ctx context.Context) { config := GetConfigInfo() - var resp proto.AdvitiseData - jtAds, err := adcenter.JtAdvertiseThreeServer(appg.Conf.AdCenter.ApiDomain, appg.Conf.AdCenter.MerchantCode, appg.Conf.AdCenter.AppCode, appg.Conf.AdCenter.AesKey) - if err != nil { - log.Error("JtAdvertiseThreeServer error occur", log.E(err)) + queryAdvitiseReq := &proxy.AppAdvitiseInfoReq{ + Id: pubdef.AppId, + } + advitiseResult, err := storage.QueryAdvitiseList(ctx, queryAdvitiseReq, "") + if err != nil || advitiseResult.Code != http.StatusOK { + if advitiseResult != nil { + log.Warn("UpdateAdvitiseData.QueryAdvitiseList failed", log.Any("filter", queryAdvitiseReq), log.E(err), log.Any("respCode", advitiseResult.Code)) + } else { + log.Warn("UpdateAdvitiseData.QueryAdvitiseList failed", log.Any("filter", queryAdvitiseReq), log.E(err)) + } return } - adMap := make(map[string]adcenter.AdCacheInfo) - for _, loc := range jtAds { - pos, err := strconv.Atoi(loc.AdvertiseLocationCode) - if err != nil { - log.Error("广告位置代码错误,必须为数字", log.Any("code", loc.AdvertiseLocationCode)) - continue - } - //if pos < 100001 { - // continue - //} - ads := make([]proxy.AdvitiseInfo, 0) - for _, ad := range loc.AdDetailInfoList { - //extra := ad.GetExtraData() - ads = append(ads, proxy.AdvitiseInfo{ - Id: ad.AdvertiseCode, - Location: int64(pos), - Title: ad.AdvertiseName, - Images: netutil.MergeURL(config.ImgCdn, ad.GetCoverLsj()), - Link: ad.GetRealLink(), - }) - adMap[ad.AdvertiseCode] = adcenter.AdCacheInfo{ - AdvertiseCode: ad.AdvertiseCode, - CustomerCode: ad.CustomerCode, - AdvertiseName: ad.AdvertiseName, - AdvertiseUrl: ad.AdvertiseUrl, - AdvertiseIcon: ad.AdvertiseIcon, - AdvertiseType: ad.AdvertiseType, - AdMode: ad.AdMode, - AppCode: ad.AppCode, - LocationType: ad.LocationType, - AdvertiseDesc: ad.AdvertiseDesc, - PageType: ad.PageType, - StartTimeStamp: ad.StartTimeStamp, - EndTimeStamp: ad.EndTimeStamp, - Sort: ad.Sort, - AdExtData: ad.AdExtData, - DeptCode: loc.DeptCode, - MerchantCode: loc.MerchantCode, - AdvertiseLocationCode: loc.AdvertiseLocationCode, - AdvertiseLocationName: loc.AdvertiseLocationName, - DisplayMode: loc.DisplayMode, - AdvertiseHeight: loc.AdvertiseHeight, - AdvertiseWidth: loc.AdvertiseWidth, - MaterialType: loc.MaterialType, - AdLimit: loc.AdLimit, - } - } - switch pos { - case 1: //弹窗 - resp.DialogList = ads - case 2: // 应用 - resp.DetailTopList = ads - case 3: // 横幅 - resp.NineGridList = ads - resp.DetailbannerList = ads - case 12: - resp.AList = ads - case 13: - resp.BList = ads - } + data := advitiseResult.Data + for _, list := range []*[]proxy.AdvitiseInfo{ + &data.DialogList, + &data.HomeList, + &data.VideoTopList, + &data.VideoDownList, + &data.HotAppList, + &data.NewAppList, + &data.MustAppList, + &data.TitleAppList, + &data.FriendList, + &data.NineGridList, + &data.VideoList, + &data.StopList, + &data.ForcedJumpList, + &data.AppInfoAList, + &data.AppInfoBList, + } { + mergeAdvitiseImages(*list, config.ImgCdn) } + CacheMgr.Lock.Lock() defer CacheMgr.Lock.Unlock() - CacheMgr.Advitise = resp - CacheMgr.AdvitiseMap = adMap + CacheMgr.Advitise = data } -func GetAdvertiseLocation(adverId string) (res adcenter.AdCacheInfo) { - CacheMgr.Lock.RLock() - defer CacheMgr.Lock.RUnlock() - if ad, ok := CacheMgr.AdvitiseMap[adverId]; ok { - res = ad +func mergeAdvitiseImages(list []proxy.AdvitiseInfo, cdn string) { + for i := range list { + if len(list[i].Images) > 0 { + list[i].Images = netutil.MergeURL(cdn, list[i].Images) + } } - return } diff --git a/app/service/configser/catch.go b/app/service/configser/catch.go index 105d4bc..f0a093d 100644 --- a/app/service/configser/catch.go +++ b/app/service/configser/catch.go @@ -8,7 +8,6 @@ import ( "sync" "videoweb/app/api/proto" "videoweb/app/service/translationser" - "videoweb/pub/adcenter" "videoweb/pub/common/log" "videoweb/pub/common/netutil" "videoweb/pub/common/srvdef" @@ -35,7 +34,6 @@ type CacheInfo struct { Lock sync.RWMutex // 读写锁 Config proto.ConfigInfo // 系统配置缓存 Advitise proto.AdvitiseData - AdvitiseMap map[string]adcenter.AdCacheInfo TagCategoryList []proto.VideoTagCategoryData TotalHistory int64 IpBlackMaps map[string]struct{} @@ -61,14 +59,14 @@ func init() { func Start() { ctx := context.Background() UpdateConfigInfo(ctx) - UpdateAdvitiseDataFromJt() + UpdateAdvitiseData(ctx) updateIpBlack() updateTagsCache() updateAppRichTexts() updateAnnouncements() _, _ = skdCron.AddFunc("0 */5 * * * ?", func() { UpdateConfigInfo(ctx) - UpdateAdvitiseDataFromJt() + UpdateAdvitiseData(ctx) updateIpBlack() updateTagsCache() updateAppRichTexts() diff --git a/pub/storage/proxy/object.go b/pub/storage/proxy/object.go index 40b87ef..57a3789 100644 --- a/pub/storage/proxy/object.go +++ b/pub/storage/proxy/object.go @@ -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), diff --git a/pub/storage/proxy/types.go b/pub/storage/proxy/types.go index ae9fdd4..f40ad9a 100644 --- a/pub/storage/proxy/types.go +++ b/pub/storage/proxy/types.go @@ -1,6 +1,7 @@ package proxy import ( + "encoding/json" "strings" "time" "videoweb/pub/models/videoinformationmod" @@ -408,6 +409,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"` // 首页列表 diff --git a/pub/storage/upload.go b/pub/storage/upload.go index 5b7a39a..06bc7e6 100644 --- a/pub/storage/upload.go +++ b/pub/storage/upload.go @@ -29,6 +29,10 @@ func UploadImage(ctx context.Context, f *multipart.FileHeader, domain string) (p return proxy.UploadImg(f.Filename, buffer.Bytes(), domain) } +func QueryAdvitiseList(ctx context.Context, in *proxy.AppAdvitiseInfoReq, domain string) (*proxy.AdvitiseQuerysResult, error) { + return proxy.QueryAdvitise(in, domain) +} + func QueryMedias(ctx context.Context, in *proxy.MediaQueryesReq, domain string) (*proxy.VideoQuerysResult, error) { return proxy.QueryMedias(in, domain) }