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.
51 lines
1.1 KiB
51 lines
1.1 KiB
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 |
|
}
|
|
|