package statistics import ( "fmt" "server/common" "server/db" "server/modules/backend/app" "server/modules/backend/models" utils "server/modules/backend/util" "server/modules/backend/values" "server/util" "time" "github.com/gin-gonic/gin" "github.com/liangdas/mqant/log" ) // 实时数据盈亏 func RealDataBalance(c *gin.Context) { a := app.NewApp(c) defer func() { a.Response() }() req := new(values.RealDataBalanceReq) if !a.S(req) { return } resp := values.RealDataBalanceResp{} su, eu := utils.GetQueryUnix(req.Start, req.End) var oneDay int64 = 24 * 60 * 60 sql := "SELECT COUNT(*) as NewCount from users u WHERE %d <= u.birth and u.birth < %d " // 在线人数 resp.Online = models.GetOnline() currencyEventGameSettle := int(common.CurrencyEventGameSettle) for i := su; i < eu; i += oneDay { s := i e := i + oneDay var realDataBalance values.RealDataBalance // 日期 realDataBalance.Date = s // 实时在线人数 if util.GetZeroTime(time.Now()).Unix() == s { realDataBalance.Online = models.GetOnlineTotal().Total } else { realDataBalance.Online = 0 } // 新用户数 err := db.Mysql().QueryBySql(fmt.Sprintf(sql, i, i+oneDay), &realDataBalance.NewCount) if err != nil { log.Error("获取新用户数量失败, error : [%s]", err.Error()) } // 利润 (所有场次AI盈亏+百人场系统盈亏) realDataBalance.Profit += models.GetProfit(&s, &e, req.Channel, nil, nil, ¤cyEventGameSettle, nil) // 台费 // realDataBalance.TableFee = models.GetTableFee(&s, &e, req.Channel, nil, nil) + models.GetMillionFee(&s, &e, req.Channel, nil, nil) // roomGame roomGameData := make(map[string]values.RoomGameBalanceData) realDataBalance.RoomGame = roomGameData // millionGame millionGameData := make(map[string]values.MillionGameBalanceData) realDataBalance.MillionGame = millionGameData resp.List = append(resp.List, realDataBalance) } a.Data = resp } func getRoomGameBalanceData(start, end *int64, channel *int, gameId *int) values.RoomGameBalanceData { var roomGameBalanceData values.RoomGameBalanceData event := int(common.CurrencyEventGameSettle) // 台费 // roomGameBalanceData.TableFee = models.GetTableFee(start, end, channel, gameId, nil) // 下注额 roomGameBalanceData.BetTotal = models.GetBet(start, end, channel, gameId, nil, nil) // 利润 roomGameBalanceData.Profit = models.GetProfit(start, end, channel, gameId, nil, &event, nil) // 活跃人数 // roomGameBalanceData.Active = models.GetRoomGamePlayerCount(start, end, channel, gameId, nil) return roomGameBalanceData } func getMillionGameBalanceData(start, end *int64, channel *int, gameId *int) values.MillionGameBalanceData { var millionGameBalanceData values.MillionGameBalanceData event := int(common.CurrencyEventGameSettle) // 利润 millionGameBalanceData.Profit = models.GetProfit(start, end, channel, gameId, nil, &event, nil) // 台费 // millionGameBalanceData.Profit = models.GetMillionFee(start, end, channel, gameId, nil) // 活跃人数 // millionGameBalanceData.Active = models.GetMillionPlayerCount(start, end, channel, gameId, nil) return millionGameBalanceData }