|
|
package fissionaction
|
|
|
|
|
|
import (
|
|
|
"joybuywork/internal/consts"
|
|
|
"joybuywork/internal/repository/mtype"
|
|
|
"fmt"
|
|
|
)
|
|
|
|
|
|
type CusDem func(option *mtype.Dimension)
|
|
|
|
|
|
// SetChannelId 设置渠道
|
|
|
func SetChannelId(id int64) CusDem {
|
|
|
return func(option *mtype.Dimension) {
|
|
|
option.ChannelId = id
|
|
|
}
|
|
|
}
|
|
|
|
|
|
type Option func(option *mtype.DimensionOption)
|
|
|
|
|
|
// SetCondId 完成事件id
|
|
|
func SetCondId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.CondId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetMediaId 社媒id
|
|
|
func SetMediaId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.MediaId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetRewardId 活动奖品id
|
|
|
func SetRewardId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.RewardId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetRewardRecordId 奖品记录id
|
|
|
func SetRewardRecordId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.RewardRecordId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetRewardType 奖品记录id
|
|
|
func SetRewardType(t int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.RewardType = mustId(t)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetRewardNum 奖品数量
|
|
|
func SetRewardNum(num int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.RewardNum = num
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetDownloadFrom 下载页来源
|
|
|
func SetDownloadFrom(from string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.DownloadFrom = mustStr(from)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetPropName 道具名称
|
|
|
func SetPropName(name string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.PropName = mustStr(name)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetPropNum 道具数量
|
|
|
func SetPropNum(num int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.PropNum = num
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetFromWebId 绑定的浏览器id
|
|
|
func SetFromWebId(webId string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.FromWebId = mustStr(webId)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetCpnFirst 绑定的浏览器id
|
|
|
func SetCpnFirst(isTure bool) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
if isTure {
|
|
|
option.CpnFirst = "true"
|
|
|
} else {
|
|
|
option.CpnFirst = "false"
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetSignDate 触发签到的时间
|
|
|
func SetSignDate(utm int32, date string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.UTM = fmt.Sprint(utm)
|
|
|
option.SignDate = mustStr(date)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetImgUrl 图片地址
|
|
|
func SetImgUrl(url string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ImgUrl = mustStr(url)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetImgId 长图id
|
|
|
func SetImgId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ImgId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetZoneId 热区id
|
|
|
func SetZoneId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ZoneId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetTaskId 完成的任务ID
|
|
|
func SetTaskId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.TaskId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetFrom 事件来源
|
|
|
func SetFrom(from string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.From = mustStr(from)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetFromStatus 事件状态
|
|
|
func SetFromStatus(status string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.FromStatus = mustStr(status)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetBlackbox 黑盒数据
|
|
|
func SetBlackbox(blackbox string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.Blackbox = mustStr(blackbox)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetUid 第三方用户id
|
|
|
func SetUid(uid string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.Uid = mustStr(uid)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetQaId 题目ID
|
|
|
func SetQaId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.QaId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetQaOptionId 选择的选项ID
|
|
|
func SetQaOptionId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.QaOptionId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetQaOptionRight 选择的选项是否正确
|
|
|
func SetQaOptionRight(isRight int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.QaOptionRight = mustId(isRight)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetQaGroupId 题库ID
|
|
|
func SetQaGroupId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.QaGroupId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetQaNum 答题数量
|
|
|
func SetQaNum(num int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.QaNum = num
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetQaPoint 答题分数
|
|
|
func SetQaPoint(point string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.QaPoint = point
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetChildId 子活动id
|
|
|
func SetChildId(id int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ChildId = mustId(id)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetChildType 子活动类型
|
|
|
func SetChildType(childType int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ChildType = childType
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetSceneId 参与场次
|
|
|
func SetSceneId(sceneId int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.SceneId = sceneId
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetUseTimes 投放次数
|
|
|
func SetUseTimes(times int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.UseTimes = times
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetCustomBtnId 参与场次
|
|
|
func SetCustomBtnId(customBtnId int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.CustomBtnId = customBtnId
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetPay 设置付款金额
|
|
|
func SetPay(payCount int64, payCurrency string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.PayCount = payCount
|
|
|
option.PayCurrency = payCurrency
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func SetPointsUse(num int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.PointsUse = num
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func SetCenterHashId(centerHashId string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.CenterHashId = centerHashId
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func SetCenterModuleId(centerModuleId string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.CenterModuleId = centerModuleId
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetChatFrom 设置对话来源
|
|
|
func SetChatFrom(chatFrom string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ChatFrom = chatFrom
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetChatTipMsg 设置对话提示消息
|
|
|
func SetChatTipMsg(chatTipMsg string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ChatTipMsg = chatTipMsg
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetScheduleId 设置对话提示消息
|
|
|
func SetScheduleId(scheduleId int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.ScheduleId = mustId(scheduleId)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetWinType 设置获胜队伍
|
|
|
func SetWinType(winType int32, winTeamId int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.WinType = mustId(winType)
|
|
|
option.WinTeamId = mustId(winTeamId)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetVoteNum 设置投票次数
|
|
|
func SetVoteNum(voteNum int32) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.VoteNum = mustId(voteNum)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetMallId 设置对话提示消息
|
|
|
func SetMallId(mallId int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.MallId = mustId(mallId)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetMallItemId 设置对话提示消息
|
|
|
func SetMallItemId(mallItemId int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.MallItemId = mustId(mallItemId)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetCardNo 设置牌型
|
|
|
func SetCardNo(colorMark, cardNo string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.CardNo = mustStr(fmt.Sprintf("%s_%s", colorMark, cardNo))
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetUnoCardId 设置牌id
|
|
|
func SetUnoCardId(cardId int64) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.UnoCardId = mustId(cardId)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// SetCardColor 设置卡颜色
|
|
|
func SetCardColor(cardColor string) Option {
|
|
|
return func(option *mtype.DimensionOption) {
|
|
|
option.CardColor = cardColor
|
|
|
}
|
|
|
}
|
|
|
|
|
|
type BPOption func(bp *MarkPoint)
|
|
|
|
|
|
func SetBatch() BPOption {
|
|
|
return func(bp *MarkPoint) {
|
|
|
bp.batch = true
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 让id必定有值,为了让json字段显示出来
|
|
|
func mustId[T consts.SignNumber](id T) T {
|
|
|
if id == 0 {
|
|
|
return -1
|
|
|
}
|
|
|
return id
|
|
|
}
|
|
|
|
|
|
// 让字符串必定有值,为了让json字段显示出来
|
|
|
func mustStr(str string) string {
|
|
|
if str == "" {
|
|
|
return "-"
|
|
|
}
|
|
|
return str
|
|
|
}
|