package charge import ( "f1-game/internal/code" "f1-game/internal/facade" nameRoute "f1-game/internal/name/route" "f1-game/internal/sessions" "f1-game/nodes/game/internal/db" ctime "github.com/cherry-game/cherry/extend/time" cproto "github.com/cherry-game/cherry/net/proto" ) var srv = &service{ typ: newServiceType(), } func Service() *service { return srv } type service struct { facade.PlayerServiceBase[*db.PlayerTable] typ serviceType } func (p *service) OnCheck(playerID int64, chargeID, chargeType, chargeParams int32) int32 { if parser, found := p.typ.get(chargeType); found { return parser.OnCheck(playerID, chargeID, chargeParams) } return code.PayChargeParamsError } func (p *service) OnDeliver(playerID int64, chargeID, chargeType, chargeParams int32) int32 { if parser, found := p.typ.get(chargeType); found { return parser.OnDeliver(playerID, chargeID, chargeParams) } return code.PayChargeParamsError } func (p *service) OnReset(playerTable *db.PlayerTable, _ *ctime.CherryTime, _ bool) { chargeTable := db.GetChargeTable(playerTable.PlayerID) chargeTable.DailyReset() chargeTable.Save2Queue() } func (p *service) Push(playerTable *db.PlayerTable, session *cproto.Session) { chargeTable := db.GetChargeTable(playerTable.PlayerID) sessions.PushWithSession(session, nameRoute.PushGamePlayer_ChargeData, chargeTable.Data.ToProto()) } func (p *service) ChargePush(playerID int64) { if session, found := sessions.GetSession(playerID); found { playerTable, _ := db.GetPlayerTable(playerID) p.Push(playerTable, session) } }