package configser import ( "strconv" "videoweb/app/api/proto" "videoweb/app/appg" "videoweb/pub/adcenter" "videoweb/pub/common/log" "videoweb/pub/common/netutil" "videoweb/pub/storage/proxy" ) // UpdateAdvitiseDataFromJt 从广告中心拉取福利页广告 func UpdateAdvitiseDataFromJt() { 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)) 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.NineGridList = ads case 3: // 横幅 resp.DetailbannerList = ads case 8: resp.FriendList = ads case 12: resp.AList = ads case 13: resp.BList = ads } } CacheMgr.Lock.Lock() defer CacheMgr.Lock.Unlock() CacheMgr.Advitise = resp CacheMgr.AdvitiseMap = adMap } func GetAdvertiseLocation(adverId string) (res adcenter.AdCacheInfo) { CacheMgr.Lock.RLock() defer CacheMgr.Lock.RUnlock() if ad, ok := CacheMgr.AdvitiseMap[adverId]; ok { res = ad } return }