Files
go-common/app/interface/main/app-show/service/region/banner.go
2019-04-22 18:49:16 +08:00

255 lines
6.6 KiB
Go

package region
import (
"context"
"strconv"
"time"
"go-common/app/interface/main/app-show/model"
"go-common/app/interface/main/app-show/model/banner"
resource "go-common/app/service/main/resource/model"
"go-common/library/log"
)
var (
_banners = map[int]map[int8]int{
13: map[int8]int{
model.PlatIPhone: 454,
model.PlatIPad: 788,
model.PlatAndroid: 617,
model.PlatIPhoneI: 1022,
model.PlatAndroidG: 1360,
model.PlatAndroidI: 1791,
model.PlatIPadI: 1192,
},
1: map[int8]int{
model.PlatIPhone: 453,
model.PlatIPad: 787,
model.PlatAndroid: 616,
model.PlatIPhoneI: 1017,
model.PlatAndroidG: 1355,
model.PlatAndroidI: 1785,
model.PlatIPadI: 1187,
},
3: map[int8]int{
model.PlatIPhone: 455,
model.PlatIPad: 789,
model.PlatAndroid: 618,
model.PlatIPhoneI: 1028,
model.PlatAndroidG: 1366,
model.PlatAndroidI: 1798,
model.PlatIPadI: 1198,
},
129: map[int8]int{
model.PlatIPhone: 456,
model.PlatIPad: 790,
model.PlatAndroid: 619,
model.PlatIPhoneI: 1033,
model.PlatAndroidG: 1371,
model.PlatAndroidI: 1804,
model.PlatIPadI: 1203,
},
4: map[int8]int{
model.PlatIPhone: 457,
model.PlatIPad: 791,
model.PlatAndroid: 620,
model.PlatIPhoneI: 1038,
model.PlatAndroidG: 1376,
model.PlatAndroidI: 1810,
model.PlatIPadI: 1208,
},
36: map[int8]int{
model.PlatIPhone: 458,
model.PlatIPad: 792,
model.PlatAndroid: 621,
model.PlatIPhoneI: 1043,
model.PlatAndroidG: 1381,
model.PlatAndroidI: 1816,
model.PlatIPadI: 1213,
},
160: map[int8]int{
model.PlatIPhone: 459,
model.PlatIPad: 793,
model.PlatAndroid: 622,
model.PlatIPhoneI: 1048,
model.PlatAndroidG: 1386,
model.PlatAndroidI: 1822,
model.PlatIPadI: 1218,
},
119: map[int8]int{
model.PlatIPhone: 460,
model.PlatIPad: 794,
model.PlatAndroid: 623,
model.PlatIPhoneI: 1053,
model.PlatAndroidG: 1391,
model.PlatAndroidI: 1828,
model.PlatIPadI: 1223,
},
155: map[int8]int{
model.PlatIPhone: 462,
model.PlatIPad: 795,
model.PlatAndroid: 624,
model.PlatIPhoneI: 1058,
model.PlatAndroidG: 1396,
model.PlatAndroidI: 1834,
model.PlatIPadI: 1228,
},
5: map[int8]int{
model.PlatIPhone: 463,
model.PlatIPad: 796,
model.PlatAndroid: 625,
model.PlatIPhoneI: 1063,
model.PlatAndroidG: 1401,
model.PlatAndroidI: 1840,
model.PlatIPadI: 1233,
},
23: map[int8]int{
model.PlatIPhone: 464,
model.PlatIPad: 797,
model.PlatAndroid: 626,
model.PlatIPhoneI: 1068,
model.PlatAndroidG: 1406,
model.PlatAndroidI: 1846,
model.PlatIPadI: 1238,
},
11: map[int8]int{
model.PlatIPhone: 465,
model.PlatIPad: 798,
model.PlatAndroid: 627,
model.PlatIPhoneI: 1073,
model.PlatAndroidG: 1411,
model.PlatAndroidI: 1852,
model.PlatIPadI: 1243,
},
655: map[int8]int{
model.PlatIPhone: 466,
model.PlatIPad: 799,
model.PlatAndroid: 628,
model.PlatIPhoneI: 1079,
model.PlatAndroidG: 1417,
model.PlatAndroidI: 1859,
model.PlatIPadI: 1249,
},
165: map[int8]int{
model.PlatIPhone: 1473,
model.PlatIPad: 1485,
model.PlatAndroid: 1479,
model.PlatIPhoneI: 1491,
model.PlatAndroidG: 1497,
model.PlatAndroidI: 1873,
model.PlatIPadI: 1503,
},
167: map[int8]int{
model.PlatIPhone: 1934,
model.PlatIPad: 1932,
model.PlatAndroid: 1933,
},
181: map[int8]int{
model.PlatIPhone: 2225,
model.PlatIPad: 2239,
model.PlatAndroid: 2232,
},
177: map[int8]int{
model.PlatIPhone: 2275,
model.PlatIPad: 2289,
model.PlatAndroid: 2282,
},
188: map[int8]int{
model.PlatIPhone: 2996,
model.PlatIPad: 3008,
model.PlatAndroid: 3002,
model.PlatIPhoneI: 3014,
model.PlatAndroidG: 3020,
model.PlatAndroidI: 3032,
model.PlatIPadI: 3026,
},
}
_bannersPlat = map[int8]string{
model.PlatIPhone: "454,453,455,456,457,458,459,460,462,463,464,465,466,1473,1934,2225,2275",
model.PlatIPad: "788,787,789,790,791,792,793,794,795,796,797,798,799,1485,1932,2239,2289",
model.PlatAndroid: "617,616,618,619,620,621,622,623,624,625,626,627,628,1479,1933,2232,2282",
model.PlatIPhoneI: "1022,1017,1028,1033,1038,1043,1048,1053,1058,1063,1068,1073,1079,1491",
model.PlatAndroidG: "1360,1355,1366,1371,1376,1381,1386,1391,1396,1401,1406,1411,1417,1497",
model.PlatAndroidI: "1791,1785,1798,1804,1810,1816,1822,1828,1834,1840,1846,1852,1859,1873",
model.PlatIPadI: "1192,1187,1198,1203,1208,1213,1218,1223,1228,1233,1238,1243,1249,1503",
}
_bannersPGC = map[int8]map[int]int{
model.PlatAndroid: map[int]int{
13: 83,
167: 85,
177: 232,
11: 220,
23: 49,
},
model.PlatIPhone: map[int]int{
13: 97,
167: 98,
177: 233,
11: 221,
23: 50,
},
model.PlatIPad: map[int]int{
13: 332,
167: 333,
177: 334,
11: 336,
23: 335,
},
}
)
// getBanners get banners by plat, build channel, ip.
func (s *Service) getBanners(c context.Context, plat int8, build, rid int, mid int64, channel, ip, buvid, network, mobiApp, device, adExtra string) (res map[string][]*banner.Banner) {
var (
resID = _banners[rid][plat]
bs []*banner.Banner
)
res = map[string][]*banner.Banner{}
if bs = s.bgmBanners(c, plat, rid); len(bs) == 0 {
bs = s.resBanners(c, plat, build, mid, resID, channel, ip, buvid, network, mobiApp, device, adExtra)
}
if len(bs) > 0 {
res["top"] = bs
}
return
}
// resBannersplat
func (s *Service) resBanners(c context.Context, plat int8, build int, mid int64, resID int, channel, ip, buvid, network, mobiApp, device, adExtra string) (res []*banner.Banner) {
var (
plm = s.bannerCache[plat] // operater banner
err error
resbs map[int][]*resource.Banner
tmp []*resource.Banner
)
resIDStr := strconv.Itoa(resID)
if resbs, err = s.res.ResBanner(c, plat, build, mid, resIDStr, channel, ip, buvid, network, mobiApp, device, adExtra, true); err != nil || len(resbs) == 0 {
log.Error("s.res.ResBanner is null or err(%v)", err)
resbs = plm
}
tmp = resbs[resID]
for _, rb := range tmp {
b := &banner.Banner{}
b.ResChangeBanner(rb)
res = append(res, b)
}
return
}
// bgmBanners bangumi banner
func (s *Service) bgmBanners(c context.Context, plat int8, rid int) (bgmBanner []*banner.Banner) {
var (
bgmb = s.bannerBmgCache[plat][rid]
resID = _banners[rid][plat]
)
for i, bb := range bgmb {
b := &banner.Banner{}
b.BgmChangeBanner(bb)
b.RequestId = strconv.FormatInt(time.Now().UnixNano()/1000000, 10)
b.Index = i + 1
b.ResourceID = resID
bgmBanner = append(bgmBanner, b)
}
return
}