dto-record.go 2.9 KB
package cardholder

import (
	"apigame/service-common/svconst"
	"apigame/service-common/svmysql"
	"apigame/util/util-lx/lxtime"
	"fmt"
)

// RecordBase 日志公共
type RecordBase struct {
	Id         int64  `gorm:"primaryKey;comment:日志ID"`
	Uid        int64  `gorm:"comment:玩家唯一ID"`
	SequenceId string `gorm:"type:varchar(255);comment:用户序列组ID"`
	Cohort     string `gorm:"type:varchar(255);comment:用户分组ID"`
	ActivityId int64  `gorm:"comment:当前活动ID"`
	Round      int    `gorm:"comment:当前轮次"`
	CreateTime int64  `gorm:"comment:创建时间戳"`
	UpdateTime int64  `gorm:"comment:修改时间戳"`
}

func NewRecordBase(uid int64, sequenceId string, cohort string, activityId int64, round int) RecordBase {
	secNow := lxtime.NowUninx()
	return RecordBase{
		CreateTime: secNow,
		UpdateTime: secNow,
		Uid:        uid,
		SequenceId: sequenceId,
		Cohort:     cohort,
		ActivityId: activityId,
		Round:      round,
	}
}

// RecordOpen 打开卡包
type RecordOpen struct {
	RecordBase
	OpenMode     int    `gorm:"comment:开包类型0客户端驱动1星星商店购买2剩余星星兑换"`
	CardholderId int    `gorm:"comment:卡包ID"`
	CardList     string `gorm:"type:varchar(255);comment:开卡内容"`
}

func (d *RecordOpen) MysqlInfo(suffix string) *svmysql.MysqlInfo {
	tableName := svconst.MYSQL_TABLE_S_CARDHOLDER_RECORD_OPEN
	return &svmysql.MysqlInfo{
		DbMysql:   svconst.DbCommon,
		TableName: fmt.Sprintf("%s_%s", tableName, suffix),
	}
}

func NewRecordOpen(recordBase RecordBase,
	openMode int, cardholderId int, cardList string) *RecordOpen {
	return &RecordOpen{
		RecordBase:   recordBase,
		OpenMode:     openMode,
		CardholderId: cardholderId,
		CardList:     cardList,
	}
}

// RecordRewardAlbum 领取卡组奖励
type RecordRewardAlbum struct {
	RecordBase
	AlbumId int    `gorm:"comment:卡组ID"`
	Award   string `gorm:"type:varchar(255);comment:奖励内容"`
}

func (d *RecordRewardAlbum) MysqlInfo(suffix string) *svmysql.MysqlInfo {
	tableName := svconst.MYSQL_TABLE_S_CARDHOLDER_RECORD_REWARDALBUM
	return &svmysql.MysqlInfo{
		DbMysql:   svconst.DbCommon,
		TableName: fmt.Sprintf("%s_%s", tableName, suffix),
	}
}

func NewRecordRewardAlbum(recordBase RecordBase,
	albumId int, award string) *RecordRewardAlbum {
	return &RecordRewardAlbum{
		RecordBase: recordBase,
		AlbumId:    albumId,
		Award:      award,
	}
}

// RecordRewardRound 领取轮次奖励
type RecordRewardRound struct {
	RecordBase
	Award string `gorm:"type:varchar(255);comment:奖励内容"`
}

func (d *RecordRewardRound) MysqlInfo(suffix string) *svmysql.MysqlInfo {
	tableName := svconst.MYSQL_TABLE_S_CARDHOLDER_RECORD_REWARDROUND
	return &svmysql.MysqlInfo{
		DbMysql:   svconst.DbCommon,
		TableName: fmt.Sprintf("%s_%s", tableName, suffix),
	}
}

func NewRecordRewardRound(recordBase RecordBase,
	award string) *RecordRewardRound {
	return &RecordRewardRound{
		RecordBase: recordBase,
		Award:      award,
	}
}