package receipt import ( "context" "muyu-apiserver/gateway/internal/svc" "muyu-apiserver/gateway/internal/types" "muyu-apiserver/rpc/purchase/purchaseservice" "github.com/zeromicro/go-zero/core/logx" ) type ListPurchaseReceiptLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewListPurchaseReceiptLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListPurchaseReceiptLogic { return &ListPurchaseReceiptLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *ListPurchaseReceiptLogic) ListPurchaseReceipt(req *types.ListPurchaseReceiptReq) (*types.ListPurchaseReceiptResp, error) { rpcResp, err := l.svcCtx.PurchaseRpc.ListPurchaseReceipt(l.ctx, &purchaseservice.ListPurchaseReceiptReq{ Page: req.Page, PageSize: req.PageSize, OrderId: req.OrderId, Status: req.Status, StartDate: req.StartDate, EndDate: req.EndDate, }) if err != nil { return nil, err } list := make([]types.PurchaseReceiptInfo, 0, len(rpcResp.List)) for _, r := range rpcResp.List { list = append(list, *purchaseReceiptInfoFromPB(r)) } return &types.ListPurchaseReceiptResp{Total: rpcResp.Total, List: list}, nil } func purchaseReceiptInfoFromPB(r *purchaseservice.PurchaseReceiptInfo) *types.PurchaseReceiptInfo { if r == nil { return &types.PurchaseReceiptInfo{} } details := make([]types.PurchaseReceiptDetailInfo, 0, len(r.Details)) for _, d := range r.Details { details = append(details, types.PurchaseReceiptDetailInfo{ DetailId: d.DetailId, OrderDetailId: d.OrderDetailId, ProductId: d.ProductId, ActualQty: d.ActualQty, UnitCost: d.UnitCost, Remark: d.Remark, }) } return &types.PurchaseReceiptInfo{ ReceiptId: r.ReceiptId, ReceiptNo: r.ReceiptNo, OrderId: r.OrderId, ReceiptDate: r.ReceiptDate, ReceivedBy: r.ReceivedBy, Status: r.Status, Remark: r.Remark, CreatedAt: r.CreatedAt, Details: details, } }