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.
52 lines
1.1 KiB
52 lines
1.1 KiB
|
1 year ago
|
package statistics
|
||
|
|
|
||
|
|
import (
|
||
|
|
"server/modules/backend/app"
|
||
|
|
"server/modules/backend/models"
|
||
|
|
utils "server/modules/backend/util"
|
||
|
|
"server/modules/backend/values"
|
||
|
|
|
||
|
|
"github.com/gin-gonic/gin"
|
||
|
|
)
|
||
|
|
|
||
|
|
// 用户牌局分析
|
||
|
|
func PlayGameData(c *gin.Context) {
|
||
|
|
a := app.NewApp(c)
|
||
|
|
defer func() {
|
||
|
|
a.Response()
|
||
|
|
}()
|
||
|
|
req := new(values.PlayDataReq)
|
||
|
|
if !a.S(req) {
|
||
|
|
return
|
||
|
|
}
|
||
|
|
resp := values.PlayGameDataResp{}
|
||
|
|
su, eu := utils.GetQueryUnix(req.Start, req.End)
|
||
|
|
|
||
|
|
var oneDay int64 = 24 * 60 * 60
|
||
|
|
for i := su; i < eu; i += oneDay {
|
||
|
|
resp.List = append(resp.List, getPlayData(i, i+oneDay, req.Channel))
|
||
|
|
}
|
||
|
|
|
||
|
|
a.Data = resp
|
||
|
|
}
|
||
|
|
|
||
|
|
func getPlayData(s, e int64, channel *int) values.PlayDataInfo {
|
||
|
|
ret := values.PlayDataInfo{}
|
||
|
|
|
||
|
|
// 日期
|
||
|
|
ret.Date = s
|
||
|
|
|
||
|
|
ret.PlayerGameData = getPlayerGameData(s, e, channel, nil)
|
||
|
|
|
||
|
|
return ret
|
||
|
|
}
|
||
|
|
|
||
|
|
func getPlayerGameData(s, e int64, channel *int, gameId *int) values.PlayerGameData {
|
||
|
|
var res values.PlayerGameData
|
||
|
|
|
||
|
|
res.PlayerCount = models.GetPlayerCount(&s, &e, channel, gameId, nil)
|
||
|
|
res.GameCount = models.GetGameTotal(&s, &e, channel, gameId, nil, nil)
|
||
|
|
|
||
|
|
return res
|
||
|
|
}
|