497 lines
15 KiB
Go
497 lines
15 KiB
Go
package model
|
||
|
||
import (
|
||
"time"
|
||
|
||
"github.com/jinzhu/now"
|
||
)
|
||
|
||
const (
|
||
TimeFormat_DataEvent = "2006-01-02 15:04:05"
|
||
)
|
||
|
||
const (
|
||
DataEventEx_PlayerLogin int32 = iota //玩家登录事件
|
||
DataEventEx_PlayerBindPhone //玩家绑定手机事件
|
||
DataEventEx_PlayerBindAlipay //玩家绑定alipay事件
|
||
DataEventEx_PlayerGameRec //玩家游戏事件
|
||
DataEventEx_PlayerGameRecPay //玩家充值游戏事件
|
||
DataEventEx_Bankruptcy //破产统计事件
|
||
DataEventEx_PlayerPay //玩家充值事件
|
||
DataEventEx_SystemGive //系统赠送事件
|
||
)
|
||
|
||
// 写入队列的数据
|
||
type RabbitMQDataRaw struct {
|
||
Source int32
|
||
Data interface{}
|
||
}
|
||
|
||
// 冰河世纪解析的数据
|
||
type IceAgeGameNoteData struct {
|
||
Source int32
|
||
Data *IceAgeType
|
||
}
|
||
|
||
// 复仇者联盟解析的数据
|
||
type AvengersGameNoteData struct {
|
||
Source int32
|
||
Data *GameResultLog
|
||
}
|
||
|
||
//// 复仇者联盟解析的数据
|
||
//type AvengersGameNoteData struct {
|
||
// Source int32
|
||
// Data *AvengersType
|
||
//}
|
||
|
||
// 财神解析的数据
|
||
type CaiShenGameNoteData struct {
|
||
Source int32
|
||
Data *CaiShenType
|
||
}
|
||
|
||
// 百战成神解析的数据
|
||
type TamQuocGameNoteData struct {
|
||
Source int32
|
||
Data *TamQuocType
|
||
}
|
||
|
||
// 复活岛解析的数据
|
||
type EasterIslandGameNoteData struct {
|
||
Source int32
|
||
Data *EasterIslandType
|
||
}
|
||
|
||
// 糖果解析的数据
|
||
type CandyGameNoteData struct {
|
||
Source int32
|
||
Data *CandyType
|
||
}
|
||
|
||
// MiniPoker解析的数据
|
||
type MiniPokerGameNoteData struct {
|
||
Source int32
|
||
Data *MiniPokerType
|
||
}
|
||
|
||
// CaoThap解析的数据
|
||
type CaoThapGameNoteData struct {
|
||
Source int32
|
||
Data *CaoThapType
|
||
}
|
||
|
||
// 幸运骰子解析的数据
|
||
type LuckyDiceGameNoteData struct {
|
||
Source int32
|
||
Data *LuckyDiceType
|
||
}
|
||
|
||
// 在线统计
|
||
//type PlayerOnlineEvent struct {
|
||
// Online map[int]int
|
||
// Time time.Time
|
||
//}
|
||
//
|
||
//func MarshalPlayerOnlineEvent(source int32, online map[string]int) (data string, err error) {
|
||
// m := map[int]int{}
|
||
// for k, v := range online {
|
||
// i, _ := strconv.Atoi(k)
|
||
// m[i] = v
|
||
// }
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: &PlayerOnlineEvent{
|
||
// Online: m,
|
||
// Time: time.Now(),
|
||
// },
|
||
// }
|
||
// d, err := json.Marshal(raw)
|
||
// if err != nil {
|
||
// return
|
||
// }
|
||
// return string(d), nil
|
||
//}
|
||
|
||
// 玩家登录
|
||
type PlayerLoginEvent struct {
|
||
SnId int32 //用户ID
|
||
Channel string //渠道
|
||
Promoter string //推广
|
||
Platform string //平台
|
||
City string //城市
|
||
OS string //操作系统
|
||
TelephonePromoter int32 //电销
|
||
CreateTime int64 //创建时间
|
||
CreateDayTime int64 //创建时间0点
|
||
LoginTime int64 //登录时间
|
||
UpgradeTime int64 //升级账号时间
|
||
LastLoginIP string //登录ip
|
||
IsBindPhone int32 //是否绑定过手机号
|
||
IsNew int32 //是否是新用户,1是 0否
|
||
DeviceId string //设备id
|
||
ChannelId string //渠道id
|
||
AppChannel string //包渠道
|
||
ClientVer int32 // 客户端版本
|
||
}
|
||
|
||
func CreatePlayerLoginEvent(snid int32, channel, promoter, platform, city, os, ip string, createTime,
|
||
upgradeTime time.Time, isBindPhone int32, telephonePromoter int32, deviceId, channelId, appChannel string, clientVer int32) *PlayerLoginEvent {
|
||
isNew := int32(0)
|
||
if createTime.Local().YearDay() == time.Now().Local().YearDay() && createTime.Local().Year() == time.Now().Local().Year() {
|
||
isNew = 1
|
||
}
|
||
return &PlayerLoginEvent{
|
||
SnId: snid,
|
||
Channel: channel,
|
||
Promoter: promoter,
|
||
Platform: platform,
|
||
City: city,
|
||
OS: os,
|
||
TelephonePromoter: telephonePromoter,
|
||
CreateTime: createTime.Local().Unix(),
|
||
CreateDayTime: now.New(createTime.Local()).BeginningOfDay().Local().Unix(),
|
||
LoginTime: time.Now().Local().Unix(),
|
||
UpgradeTime: upgradeTime.Local().Unix(),
|
||
LastLoginIP: ip,
|
||
IsBindPhone: isBindPhone,
|
||
IsNew: isNew,
|
||
DeviceId: deviceId,
|
||
ChannelId: channelId,
|
||
AppChannel: appChannel,
|
||
ClientVer: clientVer,
|
||
}
|
||
}
|
||
|
||
// 用户升级账号
|
||
//type PlayerBindPhoneEvent struct {
|
||
// SnId int32 //用户ID
|
||
// Channel string //渠道
|
||
// Promoter string //推广
|
||
// Platform string //平台
|
||
// City string //城市
|
||
// OS string //操作系统
|
||
// Value int32 //占位用
|
||
// TelephonePromoter int32 //电销
|
||
// CreateTime int64 //创建日期
|
||
// BindTime int64 //绑定日期
|
||
//}
|
||
//
|
||
//func CreatePlayerBindPhoneEvent(snid int32, channel, promoter, platform, city, os string,
|
||
// createTime time.Time, telephonePromoter int32) *PlayerBindPhoneEvent {
|
||
// return &PlayerBindPhoneEvent{
|
||
// SnId: snid,
|
||
// Channel: channel,
|
||
// Promoter: promoter,
|
||
// TelephonePromoter: telephonePromoter,
|
||
// Platform: platform,
|
||
// City: city,
|
||
// OS: os,
|
||
// Value: 1,
|
||
// CreateTime: createTime.Unix(),
|
||
// BindTime: time.Now().Unix(),
|
||
// }
|
||
//}
|
||
|
||
//func MarshalPlayerBindPhoneEvent(source, snid int32, channel, promoter, platform, city, os string,
|
||
// createTime time.Time, telephonePromoter int32) (data string, err error) {
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: CreatePlayerBindPhoneEvent(snid, channel, promoter, platform, city, os, createTime, telephonePromoter),
|
||
// }
|
||
// d, e := json.Marshal(raw)
|
||
// if e == nil {
|
||
// data = string(d[:])
|
||
// }
|
||
// err = e
|
||
// return
|
||
//}
|
||
|
||
// 用户升级账号
|
||
//type PlayerBindAlipayEvent struct {
|
||
// SnId int32 //用户ID
|
||
// Channel string //渠道
|
||
// Promoter string //推广
|
||
// TelephonePromoter int32 //电销
|
||
// Platform string //平台
|
||
// City string //城市
|
||
// OS string //操作系统
|
||
// Value int32 //占位用
|
||
// BindTime int64 //绑定日期
|
||
//}
|
||
//
|
||
//func MarshalPlayerBindAlipayEvent(source, snid int32, channel, promoter, platform, city, os string, telephonePromoter int32) (data string, err error) {
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: &PlayerBindAlipayEvent{
|
||
// SnId: snid,
|
||
// Channel: channel,
|
||
// Promoter: promoter,
|
||
// Platform: platform,
|
||
// TelephonePromoter: telephonePromoter,
|
||
// City: city,
|
||
// OS: os,
|
||
// Value: 1,
|
||
// BindTime: time.Now().Local().Unix(),
|
||
// },
|
||
// }
|
||
// d, e := json.Marshal(raw)
|
||
// if e == nil {
|
||
// data = string(d[:])
|
||
// }
|
||
// err = e
|
||
// return
|
||
//}
|
||
|
||
// 玩家游戏记录
|
||
type PlayerGameRecEvent struct {
|
||
RecordId string //游戏记录ID
|
||
SnId int32 //用户ID
|
||
Channel string //包类型
|
||
Promoter string //推广
|
||
Platform string //平台
|
||
City string //城市
|
||
OS string //操作系统
|
||
TelephonePromoter int32 //电销标记
|
||
GameId int32 //游戏id
|
||
ModeId int32 //游戏模式
|
||
Tax int64 //税收
|
||
Amount int64 //金币变化(正值为赢;负值为输)
|
||
CreateTime int64 //创建时间
|
||
CreateDayTime int64 //账号创建时间0点
|
||
ValidBet int64 //有效下注数量
|
||
ValidFlow int64 //有效流水数量
|
||
Out int64 //产出
|
||
In int64 //投入
|
||
IsNew int32 //是否是新人
|
||
GameFreeID int32 //游戏freeid
|
||
GamingTime int32 //游戏开始到玩家结算的时长 单位:秒
|
||
FirstTime int64 //首次玩该场次游戏时间
|
||
PlayTimes int64 //该场次游戏次数
|
||
FirstGameTime int64 //首次玩游戏时间
|
||
PlayGameTimes int64 //该游戏总次数
|
||
LastLoginTime int64 //最后登录时间
|
||
DeviceId string //设备id
|
||
ChannelId string //推广渠道id
|
||
}
|
||
|
||
// 玩家游戏记录
|
||
//type PlayerGameRecPayEvent struct {
|
||
// SnId int32 //用户ID
|
||
// Channel string //渠道
|
||
// Promoter string //推广
|
||
// Platform string //平台
|
||
// City string //城市
|
||
// OS string //操作系统
|
||
// TelephonePromoter int32 //电销标签
|
||
// IsNew int32 //是否新人
|
||
// IsPay int32 //是否付费
|
||
// IsGame int32 //是否游戏
|
||
// CreateTime int64 //记录创建时间
|
||
// CreateDayTime int64 //记录创建时间0点
|
||
// Time int64 //当前时间
|
||
// RegisterDayTime int64 //玩家注册时间
|
||
//}
|
||
//
|
||
//func MarshalPlayerGameRecPayEvent(source, snid, isPay, isGame int32, channel, promoter, platform, city, os string,
|
||
// createDayTime time.Time, orderCreateTime int64, telephonePromoter int32) (data string, err error) {
|
||
// isNewbie := int32(0)
|
||
// if now.BeginningOfDay().Equal(now.New(createDayTime).BeginningOfDay()) {
|
||
// isNewbie = 1
|
||
// }
|
||
// tNow := time.Now()
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: &PlayerGameRecPayEvent{
|
||
// SnId: snid,
|
||
// Channel: channel,
|
||
// Promoter: promoter,
|
||
// Platform: platform,
|
||
// City: city,
|
||
// OS: os,
|
||
// IsNew: isNewbie,
|
||
// TelephonePromoter: telephonePromoter,
|
||
// IsPay: isPay,
|
||
// IsGame: isGame,
|
||
// RegisterDayTime: createDayTime.Local().Unix(),
|
||
// CreateTime: time.Unix(orderCreateTime, 0).Local().Unix(),
|
||
// CreateDayTime: now.New(time.Unix(orderCreateTime, 0)).BeginningOfDay().Local().Unix(),
|
||
// Time: tNow.Local().Unix(),
|
||
// },
|
||
// }
|
||
// d, e := json.Marshal(raw)
|
||
// if e == nil {
|
||
// data = string(d[:])
|
||
// }
|
||
// err = e
|
||
// return
|
||
//}
|
||
//
|
||
//// 破产统计
|
||
//type BankruptcyEvent struct {
|
||
// SnId int32 //用户id
|
||
// Channel string //渠道
|
||
// Promoter string //推广
|
||
// Platform string //平台
|
||
// City string //城市
|
||
// Value int32 //值
|
||
// TelephonePromoter int32 //电销标签
|
||
// IsNew int32 //是否新人
|
||
// Time int64 //操作时间
|
||
// GameId int32 //游戏id
|
||
// GameMode int32 //游戏模式id
|
||
// GameFreeId int32 //游戏场次id
|
||
//}
|
||
//
|
||
//func MarshalBankruptcyEvent(source, snid, telephonePromoter int32, channel, promoter, platform, city string, createDayTime time.Time, gameId, gameMode, gameFreeId int32) (data string, err error) {
|
||
// isNewbie := int32(0)
|
||
// if now.BeginningOfDay().Equal(now.New(createDayTime).BeginningOfDay()) {
|
||
// isNewbie = 1
|
||
// }
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: &BankruptcyEvent{
|
||
// SnId: snid,
|
||
// Channel: channel,
|
||
// Promoter: promoter,
|
||
// TelephonePromoter: telephonePromoter,
|
||
// Platform: platform,
|
||
// City: city,
|
||
// IsNew: isNewbie,
|
||
// Value: 0,
|
||
// Time: time.Now().Local().Unix(),
|
||
// GameId: gameId,
|
||
// GameMode: gameMode,
|
||
// GameFreeId: gameFreeId,
|
||
// },
|
||
// }
|
||
// d, e := json.Marshal(raw)
|
||
// if e == nil {
|
||
// data = string(d[:])
|
||
// }
|
||
// err = e
|
||
// return
|
||
//}
|
||
//
|
||
//// 充值统计
|
||
//type PlayerPayEvent struct {
|
||
// SnId int32 //用户id
|
||
// Channel string //渠道
|
||
// Promoter string //推广
|
||
// Platform string //平台
|
||
// City string //城市
|
||
// TelephonePromoter int32 //电销标记
|
||
// Tag int32 //#充值类型 0 API直接充值 1在线充值
|
||
// BeforeCoin int32 //充值前钱包数量
|
||
// BeforeBank int32 //充值前保险柜数量
|
||
// Amount int32 //充值金额
|
||
// IsNew int32 //是否是新人
|
||
// Time int64 //操作时间
|
||
//}
|
||
//
|
||
//func MarshalPlayerPayEvent(source, snid, tag, beforeCoin, beforeBank, amount int32, channel,
|
||
// promoter, platform, city string, createDayTime time.Time, orderCreateTime int64,
|
||
// telephonePromoter int32) (data string, err error) {
|
||
// isNewbie := int32(0)
|
||
// if now.BeginningOfDay().Equal(now.New(createDayTime).BeginningOfDay()) {
|
||
// isNewbie = 1
|
||
// }
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: &PlayerPayEvent{
|
||
// SnId: snid,
|
||
// Channel: channel,
|
||
// Promoter: promoter,
|
||
// Platform: platform,
|
||
// City: city,
|
||
// Tag: tag,
|
||
// TelephonePromoter: telephonePromoter,
|
||
// BeforeCoin: beforeCoin,
|
||
// BeforeBank: beforeBank,
|
||
// Amount: amount,
|
||
// IsNew: isNewbie,
|
||
// Time: time.Unix(orderCreateTime, 0).Local().Unix(),
|
||
// },
|
||
// }
|
||
// d, e := json.Marshal(raw)
|
||
// if e == nil {
|
||
// data = string(d[:])
|
||
// }
|
||
// err = e
|
||
// return
|
||
//}
|
||
//
|
||
//// 系统赠送
|
||
//type SystemGiveEvent struct {
|
||
// SnId int32 //用户id
|
||
// Channel string //渠道
|
||
// Promoter string //推广
|
||
// Platform string //平台
|
||
// City string //城市
|
||
// TelephonePromoter int32 //电销
|
||
// Tag int32 //#充值类型 0 API直接充值 1在线充值
|
||
// Amount int32 //充值金额
|
||
// Time int64 //操作时间
|
||
//}
|
||
//
|
||
//func MarshalSystemGiveEvent(source, snid, tag, amount int32, channel, promoter, platform, city string,
|
||
// telephonePromoter int32) (data string, err error) {
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: &SystemGiveEvent{
|
||
// SnId: snid,
|
||
// Channel: channel,
|
||
// Promoter: promoter,
|
||
// Platform: platform,
|
||
// TelephonePromoter: telephonePromoter,
|
||
// City: city,
|
||
// Tag: tag,
|
||
// Amount: amount,
|
||
// Time: time.Now().Local().Unix(),
|
||
// },
|
||
// }
|
||
// d, e := json.Marshal(raw)
|
||
// if e == nil {
|
||
// data = string(d[:])
|
||
// }
|
||
// err = e
|
||
// return
|
||
//}
|
||
//
|
||
//// 水池变化记录
|
||
//type GameCoinPoolEvent struct {
|
||
// Platform string //平台
|
||
// GameId int32 //游戏id
|
||
// GroupId int32 //组id
|
||
// ChangeCoin int64 //变化金币
|
||
// CurCoin int64 //变化后金币
|
||
// UpCoin int64 //上限
|
||
// DownCoin int64 //下限
|
||
// Time int64 //操作时间
|
||
//}
|
||
//
|
||
//func MarshalGameCoinPoolEvent(source int32, platform string, gameid, groupId int32, changeCoin,
|
||
// curCoin, upCoin, downCoin int64) (data string, err error) {
|
||
//
|
||
// raw := &RabbitMQDataRaw{
|
||
// Source: source,
|
||
// Data: &GameCoinPoolEvent{
|
||
// Platform: platform,
|
||
// GameId: gameid,
|
||
//
|
||
// GroupId: groupId,
|
||
// ChangeCoin: changeCoin,
|
||
// CurCoin: curCoin,
|
||
// UpCoin: upCoin,
|
||
// DownCoin: downCoin,
|
||
// Time: time.Now().Local().Unix(),
|
||
// },
|
||
// }
|
||
// d, e := json.Marshal(raw)
|
||
// if e == nil {
|
||
// data = string(d[:])
|
||
// }
|
||
// err = e
|
||
// return
|
||
//}
|