|
|
|
|
package common
|
|
|
|
|
|
|
|
|
|
type RankAward struct {
|
|
|
|
|
SmallRank int `json:"sr"` // 最小排名
|
|
|
|
|
LargeRank int `json:"lr"` // 最大排名
|
|
|
|
|
AwardRate int `json:"ar"` // 奖励比例(*100)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
天:1,周:2,月:3
|
|
|
|
|
RankCycle --> {"1":{},"2":{},"3":{}} 表示配置了天,周,月排行榜
|
|
|
|
|
RankAwards --> {"1":$RankAwards}, $RankAwards为[]RankAward的json格式
|
|
|
|
|
FreeRates --> {"1":100,"2":100,"3":100} 表示天,周,月的抽水比例都为1(*10000)
|
|
|
|
|
RobotRank --> "1-10,12,13" 表示1~10,12,13名
|
|
|
|
|
*/
|
|
|
|
|
type RobotCfg struct {
|
|
|
|
|
RobotRank string `json:"robotRank"` // 机器人排名 "1-10,12,13" 表示1~10,12,13名
|
|
|
|
|
ChangeType int `json:"changeType"` // 变化类型(1:上升,2:不变)
|
|
|
|
|
FloatMin int `json:"floatMin"` // 浮动最小值(单位%)
|
|
|
|
|
FloatMax int `json:"floatMax"` // 浮动最大值(单位%)
|
|
|
|
|
|
|
|
|
|
RobotRankMap map[int]struct{} `json:"-"`
|
|
|
|
|
RobotRankArray []int `json:"-"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ConfigRank 排行榜配置
|
|
|
|
|
type ConfigRank struct {
|
|
|
|
|
ID int `gorm:"primarykey"`
|
|
|
|
|
Open int `gorm:"column:open;type:int(11);default:1;comment:是否开启 1开2不开" web:"open"`
|
|
|
|
|
RankType int `gorm:"column:rank_type;not null;type:int(11);comment:排行榜类型(1:打码,2:充值)" web:"rank_type"`
|
|
|
|
|
JoinType int `gorm:"column:join_type;not null;type:int(11);comment:参加类型(1:自动参加)" web:"join_type"`
|
|
|
|
|
RankCycle string `gorm:"column:rank_cycle;type:varchar(255);comment:排行榜周期" web:"rank_cycle"`
|
|
|
|
|
RankAwards string `gorm:"column:rank_awards;type:text;comment:排行榜奖励信息" web:"rank_awards"`
|
|
|
|
|
FreeRates string `gorm:"column:free_rates;type:varchar(255);comment:抽水比例" web:"free_rates"`
|
|
|
|
|
RobotCfg string `gorm:"column:robot_cfg;type:varchar(255);comment:机器人排名信息" web:"robot_cfg"`
|
|
|
|
|
UpdatedBase
|
|
|
|
|
|
|
|
|
|
RankCycleMap map[string]struct{} `gorm:"-"`
|
|
|
|
|
FreeRatesMap map[string]int `gorm:"-"`
|
|
|
|
|
RankAwardsMap map[string][]RankAward `gorm:"-"`
|
|
|
|
|
RankAwardsOneMap map[string]map[int]RankAward `gorm:"-"`
|
|
|
|
|
RobotCfgValue *RobotCfg `gorm:"-"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (c *ConfigRank) TableName() string {
|
|
|
|
|
return "config_rank"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type RankData struct {
|
|
|
|
|
ID int64 `gorm:"column:id;type:bigint(20);primaryKey;autoIncrement:true" json:"id"`
|
|
|
|
|
UID int `gorm:"column:uid;type:bigint(11);not null;uniqueIndex:rank_idx,priority:4;comment:玩家id" json:"uid"` // 玩家id
|
|
|
|
|
RankType int `gorm:"column:rank_type;type:int(11);not null;uniqueIndex:rank_idx,priority:1;comment:排行榜类型(1:打码,2:充值)" json:"rank_type"` // 排行榜类型(1:打码,2:充值)
|
|
|
|
|
RankCycle int `gorm:"column:rank_cycle;type:int(11);not null;uniqueIndex:rank_idx,priority:2;comment:排行榜周期(1:日,2:周,3:月)" json:"rank_cycle"` // 排行榜周期(1:日,2:周,3:月)
|
|
|
|
|
RankAt int64 `gorm:"column:rank_at;type:bigint(20);not null;uniqueIndex:rank_idx,priority:3;comment:排行榜开始日期" json:"rank_at"` // 排行榜开始日期
|
|
|
|
|
RankValue int64 `gorm:"column:rank_value;type:bigint(20);not null;comment:玩家数值" json:"rank_value"` // 玩家数值
|
|
|
|
|
IsRobot int `gorm:"column:is_robot;type:int(11);not null;comment:是不是机器人(0:不是,1:是)" json:"is_robot"` // 是不是机器人(0:不是,1:是)
|
|
|
|
|
UserAward int `gorm:"column:user_award;type:int(11);not null;comment:玩家奖励比例(*10000)" json:"user_award"` // 玩家奖励比例(*10000)
|
|
|
|
|
UserAwardCount int64 `gorm:"column:user_award_count;type:bigint(20);not null;comment:玩家奖励数量" json:"user_award_count"` // 玩家奖励数量
|
|
|
|
|
Rank int `gorm:"column:rank;type:int(11);default:0;comment:排名" json:"rank"` // 玩家奖励比例(*10000)
|
|
|
|
|
UpdatedAt int64 `gorm:"column:updated_at;type:bigint(20);not null;comment:更新时间" json:"updated_at"` // 更新时间
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type RankDataWithUser struct {
|
|
|
|
|
RankData `gorm:"embedded"` // RankData的所有字段会展开到表中
|
|
|
|
|
UserInfo PlayerDBInfo `gorm:"embedded"` // UserInfo的所有字段也会展开到同一张表中
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (c *RankData) TableName() string {
|
|
|
|
|
return "rank_data"
|
|
|
|
|
}
|