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.

363 lines
7.7 KiB
Go

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
}