准备
该接口的返回类BookOrderResult封装了返回的结果
1 | public class BookOrderResult extends AbstractResult { |
1 | public class Item { |
1 | // 订单的用户信息 |
1 | // 订单商品信息 |
步骤
参数:供应渠道supplyChannel
- 验证参数
- 判断供应商,如果是严选或者考拉的供应渠道,那么执行各自对应的订单确认操作流程,否则报错supplyChannel参数错误
考拉订单确认
参数:用户信息userInfo
- 将用户信息userInfo的JSON格式转为对象
UserInfo userInfo = JSON.parseObject(userInfoString, UserInfo.class);
- 将订单商品的信息orderItemList的JSON格式转为对象
List<OrderItem> orderItemList = JSON.parseArray(map.get("orderItemList"), OrderItem.class);
- 判断orderItemList的size,大于1报错,考拉商品只允许单商品下单
- 判断用户余额(当金钱需要进行计算的时候,使用BigDecimal类),如果订单总金额大于余额,setRecMsg为余额不足请充值
- 将OrderItem值和userInfo封装到考拉对应的参数中去(
OrderItem-->OrderConfirm.Arg.OrderItem
和UserInfo--> OrderConfirm.Arg.UserInfo
)
List<OrderConfirm.Arg.OrderItem> orderItems = orderItemList.stream().map(orderItem -> TransitionUtil.getOrderConfirmArgOrderItem(orderItem)).collect(toList());
- 调用考拉的确认订单接口
OrderConfirm.Result orderConfirmresult = orderConfirm.request(orderConfirmArgUserInfo, orderItems);
1 | // 考拉的接口名称 |
1 | // Api请求接口 |
- 判断状态设置状态码