订单状态问题
来源:1-4 面试经历的讨论
![](http://img1.sycdn.imooc.com/user/61f555a8000181b610801080-100-100.jpg)
潇歌
2021-07-07
一哥好,我们遇到个问题,想要优化下
是这样的,我在做一个类似于订单状态查询的需求,就是请求一个API,返回给我一系列订单状态信息,比如APP下单→APP渠道下单(这里的渠道比如oppo渠道,华为渠道等等)→服务器下单→支付成功️→商品发货,当然也有下单失败,下单取消等等
那么在这期间,也会出现很多种情况,比如在这期间下单期间出现服务器下单失败或者取消,那么我要根据这个订单所经历的整个流程,做出一种订单步骤图,根据订单状态数据呈现出来。
那么问题来了,我应该怎么根据返回的订单状态来达到效果。我这边目前只是通过lambda遍历整个list,在循环里面进行一个一个if判断,但我感觉这种实现有点臃肿,我该如何去优化呢
给个图,方便理解下
写回答
1回答
-
张勤一
2021-07-08
同学你好:
针对你这里的问题,或者说是一个业务场景,可以考虑将这个过程以状态为 key,订单 id 为 value 构造一个 Map<状态, Set<订单>>,那么,其实:
(1)状态肯定是可以枚举出来的,所以,你只需要 for 循环一遍所有的状态,然后读取各个状态对应的 Set<订单>
(2)那么,有这个状态就有对应的订单信息,没有的话,就进入到下一个状态
这样的过程会比单纯的 if、else 之类的要简单清晰很多。
10
相似问题