package mapCall import ( capp "f1-game/internal/cherry_app" "f1-game/internal/code" "f1-game/internal/enum" nameActor "f1-game/internal/name/actor" nameRemote "f1-game/internal/name/remote" "f1-game/internal/pb" "f1-game/internal/types" cfacade "github.com/cherry-game/cherry/facade" ) var ( Exchange = &exchangeCall{} ) type exchangeCall struct { } func (p *exchangeCall) targetPath() string { return cfacade.NewPath("", nameActor.Map_Exchange) } func (p *exchangeCall) ExchangeItem(req *pb.PlayerExchangeItem) (*pb.ExchangeDetail, int32) { var ( target = p.targetPath() rsp = &pb.ExchangeDetail{} ) errcode := capp.CallWait(target, nameRemote.MapExchange_Item, req, rsp) if code.IsFail(errcode) { return nil, errcode } return rsp, code.OK } func (p *exchangeCall) BuyItem(req *pb.PlayerExchangeBuyItem) (*pb.ExchangeBuyResult, int32) { rsp := &pb.ExchangeBuyResult{} errcode := capp.CallWait(p.targetPath(), nameRemote.MapExchange_BuyItem, req, rsp) if code.IsFail(errcode) { return nil, errcode } return rsp, code.OK } func (p *exchangeCall) HistoryPrice(itemID int32) (*pb.I32I32, int32) { var ( target = p.targetPath() req = &pb.I32{ Value: itemID, } rsp = &pb.I32I32{} ) errcode := capp.CallWait(target, nameRemote.MapExchange_HistoryPrice, req, rsp) if code.IsFail(errcode) { return nil, errcode } return rsp, code.OK } func (p *exchangeCall) QueryItem(req *pb.ExchangeQueryFilter) (*pb.ExchangeDetailList, int32) { var ( target = p.targetPath() rsp = &pb.ExchangeDetailList{} ) errcode := capp.CallWait(target, nameRemote.MapExchange_QueryFilter, req, rsp) if code.IsFail(errcode) { return nil, errcode } return rsp, code.OK } // 获取自己的商品列表 func (p *exchangeCall) MyItems(playerID int64, actType enum.ExchangeActType, transIDList types.List[string]) (*pb.ExchangeDetailList, int32) { var ( target = p.targetPath() req = &pb.PlayerExchangeMyItem{ PlayerID: playerID, ActType: int32(actType), TransIDs: &pb.StrList{List: transIDList}, } rsp = &pb.ExchangeDetailList{} ) errcode := capp.CallWait(target, nameRemote.MapExchange_MyItems, req, rsp) if code.IsFail(errcode) { return nil, errcode } return rsp, code.OK } // 更新商品:下架,重新上架,取回 func (p *exchangeCall) ItemUpdate(playerID int64, updateType enum.ExchangeUpdateType, actType enum.ExchangeActType, transID string, isWishLimit bool) int32 { req := &pb.PlayerExchangeItemUpdate{ PlayerID: playerID, UpdateType: int32(updateType), ActType: int32(actType), TransID: transID, IsWishLimit: isWishLimit, } return capp.CallWait(p.targetPath(), nameRemote.MapExchange_ItemUpdate, req, nil) } // 商品发货 func (p *exchangeCall) ItemDeliver(playerID int64, detail *pb.ExchangeDetail, count int64, wishPrice int32) int32 { var ( targetPath = cfacade.NewChildPath("", nameActor.Map_Exchange, nameActor.Map_ExchangeDeliver) req = &pb.ExchangeDeliverDetail{ PlayerID: playerID, Detail: detail, Count: count, WishPrice: wishPrice, } ) return capp.Call(targetPath, nameRemote.MapExchange_ItemDeliver, req) }