单据查询方案
<p><strong>订单查询场景:</strong>
背景</p>
<p>订单是卖家的核心数据,基本上是OMS系统中数据量最大的部分,订单查询接口的基本功能就是要保证订单实时、完整的被API调用方获取到。由于API请求依赖于网络,存在着网络不稳定和查询时间长的问题,所以如何才能快速、完整的把订单返回给API调用方是本方案将要讨论的问题。</p>
<p>订单查询有两种方式:1、通过api 获取单张订单 2、通过api获取简要数据列表,再逐个根据id获取订单详情
<strong>方式1:</strong>
如果已知订单在OMS系统中的id或交易编号tid,即可使用 ids(tid)&pageIndex&pageSize三个条件通过一次调用获取指定订单</p>
<pre><code> {
"partParam": {
"pageIndex": "1",
"pageSize": "40",
"ids": "1544077781422336"
},
"billnum": "ec_tradeorder",
"action": "tradeinfos"
}</code></pre>
<p><strong>方式2:</strong>
如果需要查询一定范围内的订单(如按时间戳范围、单据创建时间范围、单据状态等涉及范围甚至更复杂的组合查询):
<strong>I</strong> 第一次调用通过范围条件查询出表头(订单主表)id列表:</p>
<pre><code>{
"partParam": {
"headselectfields":"id",
"bodyselectfields":"",
"pageIndex": "1",
"pageSize": "40",
"start_pubts": "2020-01-06 00:00:00",
"end_pubts": "2020-01-08 00:00:00"
},
"billnum": "ec_tradeorder",
"action": "tradeinfos"
}
</code></pre>
<p><strong>II</strong> 再按照获取到的id列表,逐个通过方式1,获取订单详情</p>
<p><strong>备注</strong>
pageIndex-页码。默认值:1,可填整数,通过传入pageIndex来控制获取的页数,总页数=totalCount÷pageSize
pageSize-每页条数。 可填整数。通过pageIndex和pageSize组合多次调用实现翻页获取全量数据。</p>
<ul>
<li>由于按范围查询可能涉及的数据量巨大,<strong>通过一次调用返回OMS订单详情列表</strong> 无法保证数据返回的失效性,请使用方式2进行处理!极端情况下如果方式2也不能满足调用方的失效要求,请合理使用查询条件及优化配置页大小(pageSize)</li>
</ul>