123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- package service
- import (
- "github.com/gin-gonic/gin"
- "sparkteam-dash/internal/http/msg"
- "sparkteam-dash/orm/model"
- "sparkteam-dash/pkg/batchtask"
- "sparkteam-dash/pkg/utils/timext"
- "time"
- )
- var EventLog = &EventLogService{}
- type EventLogService struct {
- }
- func (s *EventLogService) ReportEventLog(ctx *gin.Context, req *msg.EventLogReq) *msg.EventLogResp {
- var err error
- switch req.EventType {
- case msg.EventTypeLogin:
- err = s.eventLog(req)
- case msg.EventTypeWatchAd:
- err = s.adLog(req)
- case msg.EventTypeBattle:
- err = s.battleLog(req)
- case msg.EventTypeGuide:
- err = s.guideLog(req)
- case msg.EventTypeOnlineDuration:
- err = s.onlineDurationLog(req)
- default:
- return &msg.EventLogResp{
- Code: 1,
- Msg: "event type not support",
- }
- }
- if err != nil {
- return &msg.EventLogResp{
- Code: 1,
- Msg: err.Error(),
- }
- }
- return &msg.EventLogResp{
- Code: 0,
- Msg: "success",
- }
- }
- func (s *EventLogService) eventLog(req *msg.EventLogReq) error {
- now := time.Now()
- data := &model.LoginLog{
- PlayerID: req.PlayerId,
- EventType: req.SubType,
- Duration: int32(req.Duration),
- IsNew: s.isNewPlayer(req.PlayerCreateTime),
- EventID: req.EventId,
- EventTime: now,
- EventDay: now,
- Channel: req.Channel,
- }
- batchtask.Batch.Push(data.TableName(), data)
- return nil
- }
- func (s *EventLogService) battleLog(req *msg.EventLogReq) error {
- now := time.Now()
- data := &model.BattleLog{
- ChapterID: int32(req.ChapterId),
- Wave: int32(req.Wave),
- PlayerID: req.PlayerId,
- BattleTime: int32(req.BattleTime),
- BattleResult: int32(req.BattleResult),
- IsNew: s.isNewPlayer(req.PlayerCreateTime),
- EventTime: now,
- EventDay: now,
- Channel: req.Channel,
- IsRevive: int32(req.IsRevive),
- ReviveWave: int32(req.ReviveWave),
- }
- batchtask.Batch.Push(data.TableName(), data)
- return nil
- }
- func (s *EventLogService) guideLog(req *msg.EventLogReq) error {
- now := time.Now()
- data := &model.GuideLog{
- GuideID: int32(req.GuideId),
- StepID: int32(req.StepId),
- PlayerID: req.PlayerId,
- IsNew: s.isNewPlayer(req.PlayerCreateTime),
- EventTime: now,
- EventDay: now,
- Channel: req.Channel,
- }
- batchtask.Batch.Push(data.TableName(), data)
- return nil
- }
- func (s *EventLogService) onlineDurationLog(req *msg.EventLogReq) error {
- now := time.Now()
- data := &model.OnlineDurationLog{
- PlayerID: req.PlayerId,
- LoginAt: req.LoginAt,
- LogoutAt: now.Unix(),
- IsNew: s.isNewPlayer(req.PlayerCreateTime),
- IsValid: int32(req.IsValid),
- Channel: req.Channel,
- }
- batchtask.Batch.Push(data.TableName(), data)
- return nil
- }
- func (s *EventLogService) adLog(req *msg.EventLogReq) error {
- now := time.Now()
- data := &model.AdLog{
- AdID: int32(req.AdId),
- PlayerID: req.PlayerId,
- Status: int32(req.Status),
- Channel: req.Channel,
- IsNew: s.isNewPlayer(req.PlayerCreateTime),
- EventTime: now,
- EventDay: now,
- }
- batchtask.Batch.Push(data.TableName(), data)
- return nil
- }
- func (s *EventLogService) isNewPlayer(createTime int64) int32 {
- if timext.IsSameDateByTs(createTime, time.Now().Unix()) {
- return 1
- }
- return 0
- }
|