game_mail.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package actorRemote
  2. import (
  3. capp "f1-game/internal/cherry_app"
  4. nameActor "f1-game/internal/name/actor"
  5. nameRemote "f1-game/internal/name/remote"
  6. "f1-game/internal/pb"
  7. "f1-game/internal/types"
  8. cfacade "github.com/cherry-game/cherry/facade"
  9. )
  10. type gameMail struct {
  11. }
  12. func newGameMail() *gameMail {
  13. return &gameMail{}
  14. }
  15. // 发送邮件
  16. func (p *gameMail) SendMail(gameNodeID string, playerID int64, mailID int32, assets types.Assets, templateParams []string) {
  17. req := &pb.SendMail{
  18. ToPlayerID: playerID,
  19. TemplateID: mailID,
  20. }
  21. if len(templateParams) > 0 {
  22. req.TemplateParams = templateParams
  23. }
  24. if assets.Len() > 0 {
  25. req.Rewards = assets.ToProto()
  26. }
  27. p.Send(gameNodeID, req)
  28. }
  29. func (*gameMail) Send(gameNodeID string, req *pb.SendMail) int32 {
  30. targetPath := cfacade.NewChildPath(gameNodeID, nameActor.Mail, req.ToPlayerID)
  31. return capp.Call(targetPath, nameRemote.Mail_Send, req)
  32. }
  33. // 获取玩家邮件列表
  34. func (*gameMail) GetMailList(gameNodeID string, playerID int64) (int32, *pb.MailList) {
  35. req := &pb.I64{
  36. Value: playerID,
  37. }
  38. resp := &pb.MailList{}
  39. targetPath := cfacade.NewChildPath(gameNodeID, nameActor.Mail, playerID)
  40. errCode := capp.CallWait(targetPath, nameRemote.Mail_GetList, req, resp)
  41. return errCode, resp
  42. }
  43. // func (*gameMail) SendTemplate(toPlayerID int64, templateID int32, params []string, assets ...*pb.Asset) {
  44. // targetPath := cfacade.NewChildPath(cherryApp.GameNodeID(), nameActor.Mail, toPlayerID)
  45. // cherryApp.Call(targetPath, nameRemote.Mail_Send, &pb.SendMail{
  46. // ToPlayerID: toPlayerID,
  47. // TemplateID: templateID,
  48. // TemplateParams: params,
  49. // Rewards: assets,
  50. // })
  51. // }