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
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 |
|
}
|
|
|