exchange.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package mapCall
  2. import (
  3. capp "f1-game/internal/cherry_app"
  4. "f1-game/internal/code"
  5. "f1-game/internal/enum"
  6. nameActor "f1-game/internal/name/actor"
  7. nameRemote "f1-game/internal/name/remote"
  8. "f1-game/internal/pb"
  9. "f1-game/internal/types"
  10. cfacade "github.com/cherry-game/cherry/facade"
  11. )
  12. var (
  13. Exchange = &exchangeCall{}
  14. )
  15. type exchangeCall struct {
  16. }
  17. func (p *exchangeCall) targetPath() string {
  18. return cfacade.NewPath("", nameActor.Map_Exchange)
  19. }
  20. func (p *exchangeCall) ExchangeItem(req *pb.PlayerExchangeItem) (*pb.ExchangeDetail, int32) {
  21. var (
  22. target = p.targetPath()
  23. rsp = &pb.ExchangeDetail{}
  24. )
  25. errcode := capp.CallWait(target, nameRemote.MapExchange_Item, req, rsp)
  26. if code.IsFail(errcode) {
  27. return nil, errcode
  28. }
  29. return rsp, code.OK
  30. }
  31. func (p *exchangeCall) BuyItem(req *pb.PlayerExchangeBuyItem) (*pb.ExchangeBuyResult, int32) {
  32. rsp := &pb.ExchangeBuyResult{}
  33. errcode := capp.CallWait(p.targetPath(), nameRemote.MapExchange_BuyItem, req, rsp)
  34. if code.IsFail(errcode) {
  35. return nil, errcode
  36. }
  37. return rsp, code.OK
  38. }
  39. func (p *exchangeCall) HistoryPrice(itemID int32) (*pb.I32I32, int32) {
  40. var (
  41. target = p.targetPath()
  42. req = &pb.I32{
  43. Value: itemID,
  44. }
  45. rsp = &pb.I32I32{}
  46. )
  47. errcode := capp.CallWait(target, nameRemote.MapExchange_HistoryPrice, req, rsp)
  48. if code.IsFail(errcode) {
  49. return nil, errcode
  50. }
  51. return rsp, code.OK
  52. }
  53. func (p *exchangeCall) QueryItem(req *pb.ExchangeQueryFilter) (*pb.ExchangeDetailList, int32) {
  54. var (
  55. target = p.targetPath()
  56. rsp = &pb.ExchangeDetailList{}
  57. )
  58. errcode := capp.CallWait(target, nameRemote.MapExchange_QueryFilter, req, rsp)
  59. if code.IsFail(errcode) {
  60. return nil, errcode
  61. }
  62. return rsp, code.OK
  63. }
  64. // 获取自己的商品列表
  65. func (p *exchangeCall) MyItems(playerID int64, actType enum.ExchangeActType, transIDList types.List[string]) (*pb.ExchangeDetailList, int32) {
  66. var (
  67. target = p.targetPath()
  68. req = &pb.PlayerExchangeMyItem{
  69. PlayerID: playerID,
  70. ActType: int32(actType),
  71. TransIDs: &pb.StrList{List: transIDList},
  72. }
  73. rsp = &pb.ExchangeDetailList{}
  74. )
  75. errcode := capp.CallWait(target, nameRemote.MapExchange_MyItems, req, rsp)
  76. if code.IsFail(errcode) {
  77. return nil, errcode
  78. }
  79. return rsp, code.OK
  80. }
  81. // 更新商品:下架,重新上架,取回
  82. func (p *exchangeCall) ItemUpdate(playerID int64, updateType enum.ExchangeUpdateType, actType enum.ExchangeActType, transID string, isWishLimit bool) int32 {
  83. req := &pb.PlayerExchangeItemUpdate{
  84. PlayerID: playerID,
  85. UpdateType: int32(updateType),
  86. ActType: int32(actType),
  87. TransID: transID,
  88. IsWishLimit: isWishLimit,
  89. }
  90. return capp.CallWait(p.targetPath(), nameRemote.MapExchange_ItemUpdate, req, nil)
  91. }
  92. // 商品发货
  93. func (p *exchangeCall) ItemDeliver(playerID int64, detail *pb.ExchangeDetail, count int64, wishPrice int32) int32 {
  94. var (
  95. targetPath = cfacade.NewChildPath("", nameActor.Map_Exchange, nameActor.Map_ExchangeDeliver)
  96. req = &pb.ExchangeDeliverDetail{
  97. PlayerID: playerID,
  98. Detail: detail,
  99. Count: count,
  100. WishPrice: wishPrice,
  101. }
  102. )
  103. return capp.Call(targetPath, nameRemote.MapExchange_ItemDeliver, req)
  104. }