You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
820 B
Go
57 lines
820 B
Go
package blink
|
|
|
|
import (
|
|
"joybuywork/internal/config"
|
|
"fmt"
|
|
)
|
|
|
|
type AdsJump struct {
|
|
link
|
|
strategyId string //广告策略id
|
|
lang string //活动用户语言
|
|
}
|
|
|
|
func NewAdsJump(strategyId string, opts ...AdsJumpOption) AdsJump {
|
|
|
|
l := AdsJump{
|
|
link: link{
|
|
host: config.Config.Server.AdsJump,
|
|
},
|
|
strategyId: strategyId,
|
|
}
|
|
|
|
for _, opt := range opts {
|
|
opt(&l)
|
|
}
|
|
|
|
return l
|
|
}
|
|
|
|
// AddOption 追加参数
|
|
func (l AdsJump) AddOption(opts ...AdsJumpOption) AdsJump {
|
|
for _, opt := range opts {
|
|
opt(&l)
|
|
}
|
|
|
|
return l
|
|
}
|
|
|
|
// Link 跳转链接
|
|
func (l AdsJump) Link() string {
|
|
return l.params(l.host)
|
|
}
|
|
|
|
// 参数
|
|
func (l AdsJump) params(link string) (url string) {
|
|
url = fmt.Sprintf(
|
|
"%s?%s=%s",
|
|
link,
|
|
adsJumpChannel,
|
|
l.strategyId,
|
|
)
|
|
|
|
url = queryAddStr(url, langParamKey, l.lang)
|
|
|
|
return
|
|
}
|