dto-record.go 2.83 KB
package roomrank

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"`
	TopType    int   `gorm:"comment:排行榜类型"`
	Uid        int64 `gorm:"comment:玩家唯一ID"`
	ActivityId int64 `gorm:"comment:当前活动ID"`
	CreateTime int64 `gorm:"comment:创建时间戳"`
	UpdateTime int64 `gorm:"comment:修改时间戳"`
}

func NewRecordBase(uid int64, topType int, activityId int64) RecordBase {
	secNow := lxtime.NowUninx()
	return RecordBase{
		CreateTime: secNow,
		UpdateTime: secNow,
		TopType:    topType,
		Uid:        uid,
		ActivityId: activityId,
	}
}

// RecordAddSettleAward 增加结算奖励
type RecordAddSettleAward struct {
	RecordBase
	Award     string `gorm:"type:varchar(255);comment:奖励内容"`
	UserClass int    `gorm:"comment:结算用户评级"`
	UserType  int    `gorm:"comment:用户类型"`
}

func (d *RecordAddSettleAward) MysqlInfo(suffix string) *svmysql.MysqlInfo {
	tableName := svconst.MYSQL_TABLE_S_ROOMRANK_RECORD_ADDTLEAWARD
	return &svmysql.MysqlInfo{
		DbMysql:   svconst.DbCommon,
		TableName: fmt.Sprintf("%s_%s_%d_%d", tableName, suffix, d.TopType, d.ActivityId),
	}
}

func NewRecordAddSettleAward(recordBase RecordBase,
	award string, userClass, userType int) *RecordAddSettleAward {
	return &RecordAddSettleAward{
		RecordBase: recordBase,
		Award:      award,
		UserClass:  userClass,
		UserType:   userType,
	}
}

// RecordGetSettleAward 领取上期结算奖励
type RecordGetSettleAward struct {
	RecordBase
	Award string `gorm:"type:varchar(255);comment:奖励内容"`
}

func (d *RecordGetSettleAward) MysqlInfo(suffix string) *svmysql.MysqlInfo {
	tableName := svconst.MYSQL_TABLE_S_ROOMRANK_RECORD_SETTLEAWARD
	return &svmysql.MysqlInfo{
		DbMysql:   svconst.DbCommon,
		TableName: fmt.Sprintf("%s_%s_%d_%d", tableName, suffix, d.TopType, d.ActivityId),
	}
}

func NewRecordGetSettleAward(recordBase RecordBase,
	award string) *RecordGetSettleAward {
	return &RecordGetSettleAward{
		RecordBase: recordBase,
		Award:      award,
	}
}

// RecordAddScore 房间排行增加积分
type RecordAddScore struct {
	RecordBase
	AddScore int64 `gorm:"comment:增加积分"`
	OldScore int64 `gorm:"comment:旧积分"`
	NewScore int64 `gorm:"comment:新积分"`
}

func (d *RecordAddScore) MysqlInfo(suffix string) *svmysql.MysqlInfo {
	tableName := svconst.MYSQL_TABLE_S_ROOMRANK_RECORD_ADDSCORE
	return &svmysql.MysqlInfo{
		DbMysql:   svconst.DbCommon,
		TableName: fmt.Sprintf("%s_%s_%d_%d", tableName, suffix, d.TopType, d.ActivityId),
	}
}

func NewRecordAddScore(recordBase RecordBase,
	addScore, oldScore, newScore int64) *RecordAddScore {
	return &RecordAddScore{
		RecordBase: recordBase,
		AddScore:   addScore,
		OldScore:   oldScore,
		NewScore:   newScore,
	}
}