56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package resource
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go-common/app/interface/main/app-feed/conf"
|
|
"go-common/app/service/main/resource/model"
|
|
rscrpc "go-common/app/service/main/resource/rpc/client"
|
|
"go-common/library/log"
|
|
"go-common/library/net/metadata"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
type Dao struct {
|
|
c *conf.Config
|
|
// rpc
|
|
rscRPC *rscrpc.Service
|
|
}
|
|
|
|
func New(c *conf.Config) (d *Dao) {
|
|
d = &Dao{
|
|
c: c,
|
|
// rpc
|
|
rscRPC: rscrpc.New(c.ResourceRPC),
|
|
}
|
|
return
|
|
}
|
|
|
|
func (d *Dao) Banner(c context.Context, plat int8, build int, mid int64, resIDs, channel, buvid, network, mobiApp, device string, isAd bool, openEvent, adExtra, hash string) (res map[int][]*model.Banner, version string, err error) {
|
|
ip := metadata.String(c, metadata.RemoteIP)
|
|
arg := &model.ArgBanner{Plat: plat, ResIDs: resIDs, Build: build, MID: mid, Channel: channel, IP: ip, Buvid: buvid, Network: network, MobiApp: mobiApp, Device: device, IsAd: isAd, OpenEvent: openEvent, AdExtra: adExtra, Version: hash}
|
|
bs, err := d.rscRPC.Banners(c, arg)
|
|
if err != nil {
|
|
err = errors.Wrapf(err, "%v", arg)
|
|
return
|
|
}
|
|
if bs != nil {
|
|
res = bs.Banner
|
|
version = bs.Version
|
|
}
|
|
return
|
|
}
|
|
|
|
// AbTest resource abtest
|
|
func (d *Dao) AbTest(ctx context.Context, groups string) (res map[string]*model.AbTest, err error) {
|
|
arg := &model.ArgAbTest{
|
|
Groups: groups,
|
|
}
|
|
if res, err = d.rscRPC.AbTest(ctx, arg); err != nil {
|
|
log.Error("resource d.resRpc.AbTest error(%v)", err)
|
|
return
|
|
}
|
|
return
|
|
}
|