我想向我的客户显示发票清单。他们可以在帐户的帐单设置中下载每张发票。
我的后端通常使用分类size
和page
方法来处理可分页的内容。 Spring已经为此提供了许多简单的实现。
但是,似乎Stripe不允许我以另一种方式传递发票分页,而不会传递光标对象ID(请参见starting_after
)。
由于我正在使用HATEOAS,因此我无法真正使用它。我目前看到的唯一方法是一遍又一遍地遍历所有发票,以“伪造”经典的分页方法(如上所述)。
可能有一个简单的解决方案,但是很遗憾,这条信息没有发送到我的后端totalCount
。
在获取InvoiceCollection
时,我可以看到还有一个属性totalCount
,但它始终是null
:
@Override
public Page<InvoiceModel> findByAllByCustomerId(String customerId, Pageable pageable) {
Map<String, Object> params = new HashMap<>();
params.put("customer", customerId);
params.put("limit", pageable.getPageSize());
InvoiceCollection invoiceCollection;
List<Invoice> invoiceList;
try {
invoiceCollection = Invoice.list(params);
invoiceList = invoiceCollection.getData();
} catch (StripeException e) {
e.printStackTrace();
throw new RuntimeException();
}
List<InvoiceModel> collect = invoiceList.stream().map(invoice -> {
InvoiceModel invoiceModel = new InvoiceModel();
invoiceModel.setId(invoice.getId());
invoiceModel.setPdfUrl(invoice.getInvoicePdf());
invoiceModel.setInvoiceNumber(invoice.getNumber());
ZonedDateTime billingDate = Instant.ofEpochSecond(invoice.getDueDate()).atZone(ZoneId.of("UTC"));
invoiceModel.setBillingDate(billingDate);
return invoiceModel;
}).collect(Collectors.toList());
// This I'd like to compute based on 'totalCount'
long total = 0L;
return new PageImpl<>(collect, pageable, total);
}
有什么 方法来获取发票总数?还是有另一种方法可以做到这一点?
谢谢您的帮助。