package statistics import ( "server/common" "server/modules/backend/app" "server/modules/backend/models" utils "server/modules/backend/util" "server/modules/backend/values" "github.com/gin-gonic/gin" ) func RealDataBalanceRoomGame(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := new(values.RealBalanceDataRoomGameReq) if !a.S(req) { return } resp := values.RealBalanceDataRoomGameResp{} su, eu := utils.GetQueryUnix(req.Start, req.End) // var oneDay int64 = 24 * 60 * 60 // res := make(map[string]values.RoomGameData) res := GetRoomGameData2(&su, &eu, req.Channel) // for i := su; i < eu; i += oneDay { // s := i // e := i + oneDay // for j := 0; j < len(common.RoomGameIDs); j++ { // res[strconv.Itoa(common.RoomGameIDs[j])] = GetRoomGameData(&s, &e, req.Channel, &common.RoomGameIDs[j]) // } // } resp.List = res a.Data = resp } func GetRoomGameData2(start, end *int64, channel *int) map[string]values.RoomGameData { res := make(map[string]values.RoomGameData) // for _, v := range common.RoomGameIDs { // one := values.RoomGameData{Date: *start, GameId: v} // OnlineData := models.GetOnlineByGameId(v) // for _, value := range OnlineData { // one.Online += value.Total // one.OnlineNew += value.New // } // roomData := map[string]values.RoomGameRealData{} // for _, v := range common.RoomIDs { // roomData[strconv.Itoa(v)] = values.RoomGameRealData{DropPer: "0%"} // } // one.RoomData = roomData // res[strconv.Itoa(v)] = one // } // 聚合查询活跃人数 // act := models.GetRoomGamePlayerCountGroup(start, end, channel) // for k, v := range act { // one := res[k] // one.Active = v // res[k] = one // } // 按roomid聚合活跃人数 // actR := models.GetRoomGamePlayerCountGroup2(start, end, channel) // for gid, v := range actR { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // roomGameRealData[rid] = values.RoomGameRealData{Active: val} // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } // 聚合查询下注 // bet := models.GetBetGroup(start, end, channel, common.RoomGameIDs) // for gid, v := range bet { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // oneR := roomGameRealData[rid] // oneR.Bet = val // roomGameRealData[rid] = oneR // oneG.Bet += val // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } // 聚合查询利润 // profit := models.GetProfitGroup(start, end, channel, nil, common.RoomGameIDs) // for gid, v := range profit { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // oneR := roomGameRealData[rid] // oneR.Profit = val // roomGameRealData[rid] = oneR // oneG.Profit += val // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } // 聚合查询台费 // tableFee := models.GetTableFeeGroup(start, end, channel) // for gid, v := range tableFee { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // oneR := roomGameRealData[rid] // oneR.Fee = val // roomGameRealData[rid] = oneR // oneG.Fee += val // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } // 聚合查询弃牌率 // all := models.GetGameTotalGroup(start, end, channel, false, common.RoomGameIDs) // total := map[string]int64{} // for gid, v := range all { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // oneR := roomGameRealData[rid] // oneR.GameCount = val // roomGameRealData[rid] = oneR // total[gid] += val // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } // dropTotal := map[string]int64{} // drop := models.GetGameTotalGroup(start, end, channel, true, common.RoomGameIDs) // for gid, v := range drop { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // oneR := roomGameRealData[rid] // oneR.DropPer = utils.GetPer(val, oneR.GameCount) // roomGameRealData[rid] = oneR // dropTotal[gid] += val // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } // for k := range res { // one := res[k] // one.DropPer = utils.GetPer(dropTotal[k], total[k]) // res[k] = one // } // 聚合查询控杀局数 // kills := models.GetControlTotalGroup(start, end, channel, false, common.RoomGameIDs) // for gid, v := range kills { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // oneR := roomGameRealData[rid] // oneR.ControlKillCount = val // roomGameRealData[rid] = oneR // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } // frees := models.GetControlTotalGroup(start, end, channel, true, common.RoomGameIDs) // for gid, v := range frees { // oneG := res[gid] // roomGameRealData := oneG.RoomData // for rid, val := range v { // oneR := roomGameRealData[rid] // oneR.ControlFreeCount = val // roomGameRealData[rid] = oneR // } // oneG.RoomData = roomGameRealData // res[gid] = oneG // } return res } func GetRoomGameData(start, end *int64, channel *int, gameId *int) values.RoomGameData { var roomGameData values.RoomGameData // 日期 roomGameData.Date = *start // 游戏id roomGameData.GameId = *gameId //在线人数 OnlineData := models.GetOnlineByGameId(*gameId) for _, value := range OnlineData { roomGameData.Online += value.Total roomGameData.OnlineNew += value.New } // 活跃人数 // roomGameData.Active = models.GetRoomGamePlayerCount(start, end, channel, gameId, nil) // 下注 roomGameData.Bet = models.GetBet(start, end, channel, gameId, nil, nil) // 利润 event := int(common.CurrencyEventGameSettle) roomGameData.Profit = models.GetProfit(start, end, channel, gameId, nil, &event, nil) // 台费 // roomGameData.Fee = models.GetTableFee(start, end, channel, gameId, nil) // 放牌率 var dropValue = 0 total := models.GetGameTotal(start, end, channel, gameId, nil, nil) dropTotal := models.GetGameTotal(start, end, channel, gameId, nil, &dropValue) roomGameData.DropPer = utils.GetPer(dropTotal, total) roomGameRealData := make(map[string]values.RoomGameRealData) // for i := 0; i < len(common.RoomIDs); i++ { // roomGameRealData[strconv.Itoa(common.RoomIDs[i])] = getRoomGameRealData(start, end, channel, gameId, &common.RoomIDs[i]) // } roomGameData.RoomData = roomGameRealData return roomGameData } func getRoomGameRealData(start, end *int64, channel *int, gameId *int, roomId *int) values.RoomGameRealData { var roomGameRealData values.RoomGameRealData // 活跃人数 // roomGameRealData.Active = models.GetRoomGamePlayerCount(start, end, channel, gameId, roomId) // 下注额 roomGameRealData.Bet = models.GetBet(start, end, channel, gameId, roomId, nil) // 利润 event := int(common.CurrencyEventGameSettle) roomGameRealData.Profit = models.GetProfit(start, end, channel, gameId, roomId, &event, nil) // roomGameRealData.Fee = models.GetTableFee(start, end, channel, gameId, roomId) // 放牌率 var dropValue = 0 total := models.GetGameTotal(start, end, channel, gameId, roomId, nil) dropTotal := models.GetGameTotal(start, end, channel, gameId, roomId, &dropValue) roomGameRealData.DropPer = utils.GetPer(dropTotal, total) // 游戏局数 roomGameRealData.GameCount = models.GetControlTotal(start, end, channel, gameId, roomId, nil, false) // 控杀局数 // ControlKill := []int{common.ControlTypeNewKill, common.ControlTypePointKill, common.ControlTypeSingleKill, common.ControlTypeRoomKill} // for i := 0; i < len(ControlKill); i++ { // roomGameRealData.ControlKillCount += models.GetControlTotal(start, end, channel, gameId, roomId, &ControlKill[i], false) // } // 控放局数 // ControlFree := []int{common.ControlTypeNewFee, common.ControlTypePointFree, common.ControlTypeSingleFree, common.ControlTypeRoomFree} // for i := 0; i < len(ControlFree); i++ { // roomGameRealData.ControlFreeCount += models.GetControlTotal(start, end, channel, gameId, roomId, &ControlFree[i], false) // } return roomGameRealData }