From a99f2bcee0c3b4d1b73a0a406f489649d37413ad Mon Sep 17 00:00:00 2001 From: zhora Date: Wed, 27 Aug 2025 12:17:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8E=92=E8=A1=8C=E6=A6=9Cbu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/config.go | 8 ++++++++ call/rank.go | 14 ++++++++------ common/activity.go | 1 + common/pop.go | 2 +- common/rank.go | 9 +++++---- modules/web/handler/luckyWheel.go | 3 ++- modules/web/handler/rank.go | 16 ++++++++++++---- modules/web/handler/updatePop.go | 2 +- modules/web/values/luckyWheel.go | 5 +++-- 9 files changed, 41 insertions(+), 19 deletions(-) diff --git a/call/config.go b/call/config.go index 92e9bf9..f3602d8 100644 --- a/call/config.go +++ b/call/config.go @@ -1801,6 +1801,7 @@ func LoadConfigRank() (err error) { if rank.RankAwards != "" { var tmpRankAwards map[string]string rank.RankAwardsMap = make(map[string][]common.RankAward) + rank.RankAwardsOneMap = make(map[string]map[int]common.RankAward) err = jsoniter.UnmarshalFromString(rank.RankAwards, &tmpRankAwards) if err != nil { log.Error("unmarshal RankAwards err, %+v, %s", *rank, err.Error()) @@ -1817,6 +1818,13 @@ func LoadConfigRank() (err error) { log.Error("unmarshal awards details err, %+v, %s", *rank, err.Error()) return } + tmpAwardOne := make(map[int]common.RankAward) + for _, v := range tmpAwards { + for index := v.SmallRank; index <= v.LargeRank; index++ { + tmpAwardOne[index] = v + } + } + rank.RankAwardsOneMap[rankCycle] = tmpAwardOne rank.RankAwardsMap[rankCycle] = tmpAwards } } diff --git a/call/rank.go b/call/rank.go index 3d43973..5eb2990 100644 --- a/call/rank.go +++ b/call/rank.go @@ -209,7 +209,7 @@ func rankAward(ticker *rankTicker) { // UpdateRankValue 更新玩家数值(mode:1打码,2充值) // todo 接入打码 -func UpdateRankValue(mode int, uid int, updateValue int64) { +func UpdateRankValue(mode int, uid int, updateValue int64, isRobot int) { configRanks := GetConfigRank(mode) if len(configRanks) == 0 { return @@ -226,8 +226,9 @@ func UpdateRankValue(mode int, uid int, updateValue int64) { rankData := common.RankData{ UID: uid, RankType: rank.RankType, - RankCycle: util.ToInt(rank.RankCycle), + RankCycle: util.ToInt(rankCycle), RankAt: rankAt.Unix(), + IsRobot: isRobot, RankValue: updateValueReal, UpdatedAt: now.Unix(), } @@ -288,7 +289,8 @@ func rankUserRefresh(rankType int, must bool) { robotCfg := rankCfg.RobotCfgValue rankAt, _, _, _ := getRankJackpotKey(rankType, rankCycle) var rankRobots []common.RankData - err = db.Mysql().C().Model(&common.RankData{}).Where("is_robot = 1").Order("rank_value desc").Find(&rankRobots).Error + err = db.Mysql().C().Model(&common.RankData{}).Where("rank_type = ? and rank_cycle = ? and rank_at = ? and is_robot = 1", rankType, util.ToInt(rankCycle), rankAt.Unix()). + Order("rank_value desc").Find(&rankRobots).Error if err != nil { log.Error("get robot data err, %s", err.Error()) continue @@ -343,7 +345,7 @@ func rankUserRefresh(rankType int, must bool) { addValue := rand.Intn(100) + 1 updateValue := addValue * 10000 / freeRate if rankRobot.RankValue == 0 { - UpdateRankValue(rankType, rankRobot.UID, int64(updateValue)) + UpdateRankValue(rankType, rankRobot.UID, int64(updateValue), 1) } } } else { @@ -363,7 +365,7 @@ func rankUserRefresh(rankType int, must bool) { addValue := rankValueFinal - robot.RankValue updateValue := addValue * 10000 / int64(freeRate) if updateValue > 0 { - UpdateRankValue(rankType, robot.UID, updateValue) + UpdateRankValue(rankType, robot.UID, updateValue, 1) delete(rankRobotsMap, rankUser.UID) } _, ok := rankUserMap[robot.UID] @@ -420,7 +422,7 @@ func rankUsersGet(rankType int, rankCycle string, rankAt time.Time, page, pageSi // RankUsersGet 获取当前排行榜用户 func RankUsersGet(rankType int, rankCycle string, page, pageSize int) (rankUsers []*common.RankDataWithUser, count int64, err error) { rankAt, _, _, _ := getRankJackpotKey(rankType, rankCycle) - if rankAt.Sub(time.Now()).Minutes() > 5 { + if time.Now().Sub(rankAt).Minutes() > 5 { rankUserRefresh(rankType, false) } return rankUsersGet(rankType, rankCycle, rankAt, page, pageSize) diff --git a/common/activity.go b/common/activity.go index 927f2ba..09bae64 100644 --- a/common/activity.go +++ b/common/activity.go @@ -49,6 +49,7 @@ type ConfigBanner struct { Pic string `gorm:"column:pic;type:varchar(255);comment:活动图片" json:"Pic" web:"pic"` Data string `gorm:"column:data;type:varchar(255);comment:跳转数据" json:"Data" web:"data"` TagId int `gorm:"column:tag_id;type:int(11);default:0;comment:标签id(0表示首页展示)" json:"TagId" web:"tag_id"` + Scene int `gorm:"column:scene;type:int(11);default:0;comment:场景(1:游戏,2:)" json:"Scene" web:"scene"` } func (c *ConfigBanner) TableName() string { diff --git a/common/pop.go b/common/pop.go index 641119e..2f40975 100644 --- a/common/pop.go +++ b/common/pop.go @@ -13,7 +13,7 @@ type ConfigPopUp struct { // 弹窗名称 PopName string `gorm:"column:pop_name;type:varchar(258);default:'';comment:弹窗名称" json:"PopName" web:"pop_name"` // 活动id - ActivityId int `gorm:"column:activity_id;type:int(11);default:0;comment:活动id" json:"ActivityId" web:"activity_id"` + Action int `gorm:"column:action;type:int(11);default:0;comment:跳转id" json:"Action" web:"action"` // 跳转链接 JumpUrl string `gorm:"column:jump_url;type:varchar(258);default:'';comment:跳转链接" json:"JumpUrl" web:"jump_url"` // 用户标签(0:全部用户,1:充值用户,2:充值区间用户) diff --git a/common/rank.go b/common/rank.go index 806c052..1afca09 100644 --- a/common/rank.go +++ b/common/rank.go @@ -35,10 +35,11 @@ type ConfigRank struct { 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:"-"` - RobotCfgValue *RobotCfg `gorm:"-"` + 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 { diff --git a/modules/web/handler/luckyWheel.go b/modules/web/handler/luckyWheel.go index 4a5c5e6..101b714 100644 --- a/modules/web/handler/luckyWheel.go +++ b/modules/web/handler/luckyWheel.go @@ -144,10 +144,11 @@ func LuckyWheelLottery(c *gin.Context) { valueRand := rand.Intn(luckyWheelCfg.WeightsSum) value := 0 var award *common.LuckyAward - for _, luckyAward := range luckyWheelCfg.LuckyAwards { + for index, luckyAward := range luckyWheelCfg.LuckyAwards { value += luckyAward.Weights if valueRand <= value { award = &luckyAward + resp.AwardIndex = index break } } diff --git a/modules/web/handler/rank.go b/modules/web/handler/rank.go index 35e704f..22fd328 100644 --- a/modules/web/handler/rank.go +++ b/modules/web/handler/rank.go @@ -102,14 +102,22 @@ func RankInfo(c *gin.Context) { return } resp.RankData.RankUsersCount = count - for _, rankUser := range rankUsers { + for index, rankUser := range rankUsers { + rank := (req.Page-1)*req.PageSize + index + 1 + var userAward int + var userAwardExpected int64 + award, ok := configRank.RankAwardsOneMap[cycleMark][rank] + if ok { + userAward = award.AwardRate + userAwardExpected = int64(userAward) * jackpot / 10000 + } resp.RankData.RankUsers = append(resp.RankData.RankUsers, values.RankUser{ UserName: rankUser.UserInfo.Nick, UserCount: rankUser.RankValue, UserIcon: rankUser.UserInfo.Avatar, - UserRank: rankUser.Rank, - UserAward: rankUser.UserAward, - UserAwardExpected: rankUser.UserAwardCount, + UserRank: rank, + UserAward: userAward, + UserAwardExpected: userAwardExpected, }) } } diff --git a/modules/web/handler/updatePop.go b/modules/web/handler/updatePop.go index 072e73c..1248937 100644 --- a/modules/web/handler/updatePop.go +++ b/modules/web/handler/updatePop.go @@ -97,7 +97,7 @@ func PopUpList(c *gin.Context) { } for index, v := range resp.List { _ = index - if v.ActivityId == 10000 && v.JumpUrl != "" { + if v.Action == 10000 && v.JumpUrl != "" { // todo } } diff --git a/modules/web/values/luckyWheel.go b/modules/web/values/luckyWheel.go index 60a529f..e1192a3 100644 --- a/modules/web/values/luckyWheel.go +++ b/modules/web/values/luckyWheel.go @@ -19,6 +19,7 @@ type LuckyWheelLotteryReq struct { } type LuckWheelLotteryResp struct { - LessTimes int `json:"lessTimes"` // 转盘剩余次数 - Award common.LuckyAward `json:"award"` // 奖励类型 + LessTimes int `json:"lessTimes"` // 转盘剩余次数 + AwardIndex int `json:"awardIndex"` // 奖励下标 + Award common.LuckyAward `json:"award"` // 奖励类型 }