diff --git a/app/order/api/internal/logic/order/listOrdersLogic.go b/app/order/api/internal/logic/order/listOrdersLogic.go index aa99ee2..df40d62 100644 --- a/app/order/api/internal/logic/order/listOrdersLogic.go +++ b/app/order/api/internal/logic/order/listOrdersLogic.go @@ -8,6 +8,7 @@ import ( "strings" "juwan-backend/app/order/rpc/orderservice" + "juwan-backend/app/player/rpc/playerservice" "juwan-backend/app/shop/rpc/shopservice" "juwan-backend/common/utils/contextj" @@ -15,6 +16,8 @@ import ( "juwan-backend/app/order/api/internal/types" "github.com/zeromicro/go-zero/core/logx" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" ) type ListOrdersLogic struct { @@ -51,7 +54,34 @@ func (l *ListOrdersLogic) ListOrders(req *types.OrderListReq) (resp *types.Order case "consumer": searchReq.ConsumerId = &uid case "player": - searchReq.PlayerId = &uid + playerResp, playerErr := l.svcCtx.PlayerRpc.GetPlayerByUserId(l.ctx, &playerservice.SearchPlayersReq{UserId: &uid}) + if playerErr != nil { + st, _ := status.FromError(playerErr) + if st.Code() == codes.NotFound { + return &types.OrderListResp{ + Items: []types.Order{}, + Meta: types.PageMeta{ + Total: 0, + Offset: req.Offset, + Limit: req.Limit, + }, + }, nil + } + return nil, playerErr + } + + player := playerResp.GetPlayers() + if player == nil { + return &types.OrderListResp{ + Items: []types.Order{}, + Meta: types.PageMeta{ + Total: 0, + Offset: req.Offset, + Limit: req.Limit, + }, + }, nil + } + searchReq.PlayerId = &player.Id case "owner": shops, shopErr := l.svcCtx.ShopRpc.SearchShops(l.ctx, &shopservice.SearchShopsReq{ Page: 0,