Files
2019-04-22 18:49:16 +08:00

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
}