印度包网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

265 lines
8.0 KiB

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
}