|
|
|
|
package handler
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"server/common"
|
|
|
|
|
"server/db"
|
|
|
|
|
"server/modules/backend/app"
|
|
|
|
|
"server/modules/backend/bdb"
|
|
|
|
|
"server/modules/backend/models"
|
|
|
|
|
"server/modules/backend/values"
|
|
|
|
|
"server/util"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
utils "server/modules/backend/util"
|
|
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
"github.com/olivere/elastic/v7"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func FirstPageRealData(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
resp := &values.FirstPageRealDataResp{}
|
|
|
|
|
a.Data = resp
|
|
|
|
|
|
|
|
|
|
cids := []*int{}
|
|
|
|
|
if len(a.User.SChannels) > 0 {
|
|
|
|
|
for i := range a.User.SChannels {
|
|
|
|
|
cids = append(cids, &a.User.SChannels[i])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
su := util.GetZeroTime(time.Now()).Unix()
|
|
|
|
|
q := models.NewQ(&su, nil, cids...)
|
|
|
|
|
q.Filter(elastic.NewTermQuery("GameID", 0))
|
|
|
|
|
one := common.ESNewOnline{}
|
|
|
|
|
db.ES().QueryOne(common.ESIndexBackPlayerOnline, q, &one, "Time", false)
|
|
|
|
|
|
|
|
|
|
resp.Online = int64(one.Total)
|
|
|
|
|
resp.NewOnline = int64(one.New)
|
|
|
|
|
resp.RechargeOnline = int64(one.Recharge)
|
|
|
|
|
resp.RechargeAmount = models.GetAmountTotalBySQLs(su, su, cids...)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func FirstPageData(c *gin.Context) {
|
|
|
|
|
a := app.NewApp(c)
|
|
|
|
|
defer func() {
|
|
|
|
|
a.Response()
|
|
|
|
|
}()
|
|
|
|
|
req := new(values.FirstPageDataReq)
|
|
|
|
|
if !a.S(req) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
resp := &values.FirstPageDataResp{}
|
|
|
|
|
a.Data = resp
|
|
|
|
|
su, eu := utils.GetQueryUnix(req.Date, req.Date)
|
|
|
|
|
cids := []*int{}
|
|
|
|
|
if len(a.User.SChannels) > 0 {
|
|
|
|
|
for i := range a.User.SChannels {
|
|
|
|
|
cids = append(cids, &a.User.SChannels[i])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
data := &values.FirstPageData{Time: su}
|
|
|
|
|
if len(cids) == 0 {
|
|
|
|
|
bdb.BackDB.Get(data)
|
|
|
|
|
tag := data.ID == 0
|
|
|
|
|
if tag || !data.Check {
|
|
|
|
|
data = GetFirstPageData(su, eu)
|
|
|
|
|
data.Check = true
|
|
|
|
|
if su >= util.GetZeroTime(time.Now()).Unix() {
|
|
|
|
|
data.Check = false
|
|
|
|
|
}
|
|
|
|
|
if tag {
|
|
|
|
|
bdb.BackDB.Create(data)
|
|
|
|
|
} else {
|
|
|
|
|
bdb.BackDB.Update(&values.FirstPageData{Time: su}, data)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
data = GetFirstPageData(su, eu, cids...)
|
|
|
|
|
}
|
|
|
|
|
resp.Data = data
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func GetFirstPageData(start, end int64, channels ...*int) *values.FirstPageData {
|
|
|
|
|
ret := &values.FirstPageData{}
|
|
|
|
|
ret.Time = start
|
|
|
|
|
ret.Date = time.Unix(start, 0).Format("20060102")
|
|
|
|
|
|
|
|
|
|
// 完成注册数
|
|
|
|
|
ret.NewCount = models.GetNewPlayerCountBySqls(start, end, channels...)
|
|
|
|
|
|
|
|
|
|
// 新增付费人数
|
|
|
|
|
ret.NewPayCount = models.GetNewPayCountBySqls(start, end, channels...)
|
|
|
|
|
|
|
|
|
|
// 新增付费复充人数
|
|
|
|
|
ret.NewPayRepeatCount = models.GetNewPayRepeatCountBySqls(start, end, channels...)
|
|
|
|
|
|
|
|
|
|
// 付费总额
|
|
|
|
|
ret.RechargeTotal = models.GetAmountTotalBySQLs(start, end, channels...)
|
|
|
|
|
|
|
|
|
|
// 赠送总额
|
|
|
|
|
ret.WithdrawTotal = models.GetWithdrawAmountTotalBySQLs(start, end, common.CurrencyINR, channels...)
|
|
|
|
|
|
|
|
|
|
// 提现中的钱
|
|
|
|
|
withdrawingTotal := models.GetWithdrawingAmountTotalBySQLs(start, end, common.CurrencyINR, channels...)
|
|
|
|
|
|
|
|
|
|
// 发起充值订单数
|
|
|
|
|
ret.RechargeOrderCreate = models.GetOrderCount(start, end, common.StatusROrderCreate, 1, channels...)
|
|
|
|
|
|
|
|
|
|
// 完成充值订单数
|
|
|
|
|
ret.RechargeOrderFinish = models.GetOrderCount(start, end, common.StatusROrderPay, 1, channels...)
|
|
|
|
|
|
|
|
|
|
// 发起赠送订单数
|
|
|
|
|
ret.WithdrawOrderCreate = models.GetOrderCount(start, end, common.StatusROrderCreate, 2, channels...)
|
|
|
|
|
|
|
|
|
|
// 完成赠送订单数
|
|
|
|
|
ret.WithdrawOrderFinish = models.GetOrderCount(start, end, common.StatusROrderFinish, 2, channels...)
|
|
|
|
|
|
|
|
|
|
// 充值成功率
|
|
|
|
|
ret.RechargeSuccessPer = utils.GetPer(ret.RechargeOrderFinish, ret.RechargeOrderCreate)
|
|
|
|
|
|
|
|
|
|
// 充值赠送比
|
|
|
|
|
ret.WithdrawPer = utils.GetPer(ret.WithdrawTotal+withdrawingTotal, ret.RechargeTotal)
|
|
|
|
|
|
|
|
|
|
// 平台下注
|
|
|
|
|
ret.Bet = models.GetGameInOut(start, end, 1, channels...)
|
|
|
|
|
|
|
|
|
|
// 平台返奖
|
|
|
|
|
ret.Settle = models.GetGameInOut(start, end, 2, channels...)
|
|
|
|
|
|
|
|
|
|
// 平台rtp
|
|
|
|
|
ret.RTP = utils.GetPer(ret.Settle, ret.Bet)
|
|
|
|
|
|
|
|
|
|
// 厂商下注
|
|
|
|
|
ret.ProviderBet = ret.Bet
|
|
|
|
|
|
|
|
|
|
// 厂商返奖
|
|
|
|
|
ret.ProviderSettle = ret.Settle
|
|
|
|
|
|
|
|
|
|
// 厂商rtp
|
|
|
|
|
ret.ProviderRTP = utils.GetPer(ret.ProviderSettle, ret.ProviderBet)
|
|
|
|
|
|
|
|
|
|
return ret
|
|
|
|
|
}
|