package handler import ( "fmt" "github.com/gin-gonic/gin" "github.com/liangdas/mqant/log" "server/call" "server/modules/web/app" "server/modules/web/values" "server/util" ) func RankCfg(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := &values.RankCfgReq{} if !a.S(req) { return } if req.RankType == 0 { req.RankType = 1 } a.GetUID() resp := &values.RankCfgResp{} a.Data = resp configRanks := call.GetConfigRank(req.RankType) for _, configRank := range configRanks { for rankCycle := range configRank.RankCycleMap { jackpot, rankLess := call.RankJackpotGet(req.RankType, rankCycle) rankData := values.RankData{ RankCycle: util.ToInt(rankCycle), Pumping: configRank.FreeRatesMap[rankCycle], JackPot: jackpot, JackPotLast: call.RankJackpotPreGet(req.RankType, rankCycle), AwardAtLess: rankLess, } if rankAwards, ok := configRank.RankAwardsMap[rankCycle]; ok { rankData.RankAwards = make([]values.RankAward, 0, len(rankAwards)) for _, rankAward := range rankAwards { rankData.RankAwards = append(rankData.RankAwards, values.RankAward{ MinRank: rankAward.SmallRank, MaxRank: rankAward.LargeRank, Award: rankAward.AwardRate, }) } } resp.RankData = append(resp.RankData, rankData) } } } // RankInfo 排行榜信息 func RankInfo(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := &values.RankInfoReq{} if !a.S(req) { return } if req.RankType == 0 { req.RankType = 1 } a.GetUID() resp := &values.RankInfoResp{ RankData: new(values.RankData), Exist: true, } a.Data = resp cycleMark := fmt.Sprintf("%d", req.RankCycle) configRank := call.GetConfigRankByCycle(req.RankType, cycleMark) if configRank == nil { resp.Exist = false return } resp.RankData.RankCycle = req.RankCycle resp.RankData.Pumping = configRank.FreeRatesMap[cycleMark] resp.RankData.JackPotLast = call.RankJackpotPreGet(req.RankType, cycleMark) jackpot, rankLess := call.RankJackpotGet(req.RankType, cycleMark) resp.RankData.JackPot = jackpot resp.RankData.AwardAtLess = rankLess if rankAwards, ok := configRank.RankAwardsMap[cycleMark]; ok { resp.RankData.RankAwards = make([]values.RankAward, 0, len(rankAwards)) for _, rankAward := range rankAwards { resp.RankData.RankAwards = append(resp.RankData.RankAwards, values.RankAward{ MinRank: rankAward.SmallRank, MaxRank: rankAward.LargeRank, Award: rankAward.AwardRate, }) } } // todo 补充排行榜数据 rankUsers, count, err := call.RankUsersGet(req.RankType, cycleMark, req.Page, req.PageSize) if err != nil { log.Error(err.Error()) a.Code = values.CodeRetry return } resp.RankData.RankUsersCount = count for _, rankUser := range rankUsers { 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, }) } } // RankHistory 排行榜历史记录 func RankHistory(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := &values.RankHistoryReq{} if !a.S(req) { return } if req.RankType == 0 { req.RankType = 1 } a.GetUID() resp := &values.RankHistoryResp{ RankData: new(values.RankData), } a.Data = resp cycleMark := fmt.Sprintf("%d", req.RankCycle) resp.RankData.JackPotLast = call.RankJackpotPreGet(req.RankType, cycleMark) resp.RankData.RankCycle = req.RankCycle rankUsers, count, err := call.RankUsersPreGet(req.RankType, cycleMark, req.Page, req.PageSize) if err != nil { log.Error(err.Error()) a.Code = values.CodeRetry return } resp.RankData.RankUsersCount = count for _, rankUser := range rankUsers { 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, }) } } // RankReward 玩家中奖记录 func RankReward(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := &values.RankRewardReq{} if !a.S(req) { return } a.GetUID() resp := &values.RankRewardResp{} a.Data = resp rankAwards, count, err := call.UserRankAwardRecord(a.UID, req.Page, req.PageSize) if err != nil { log.Error(err.Error()) a.Code = values.CodeRetry return } resp.Count = count resp.RankRewardDetails = make([]values.RankRewardDetails, 0, len(rankAwards)) for _, rankAward := range rankAwards { resp.RankRewardDetails = append(resp.RankRewardDetails, values.RankRewardDetails{ Rank: rankAward.Rank, RankCycle: rankAward.RankCycle, RewardAt: rankAward.RankAt, RewardCount: rankAward.UserAwardCount, }) } }