商品排序
商品排序需求
修改方案
- 原有逻辑里面的sku_id是无序的放置在order订单列表里面的, 现在为了使sku的展示顺序是下订单的顺序, 需要对其进行排序.
- 我们只需要保证, sku_id按下订单的顺序存入数据库, 就能完成改需求
需要修改的代码
## staion工程, order_handler.py
def split_order:
products = {d.sku_id: d for d in req.products}
--->修改为
products = OrderedDict()
for d in req.products:
products[d.sku_id] = d
- 这里是分单的接口, 需要保持products的顺序, 故将原有的普通字典替换为有序字典
## service工程, core.py
class OrderBase():
def __init__(self, owner, extra):
self.details = {}
-->替换为
self.details = OrderedDict()
- details用来存储sku信息, 需要另其保持有序
## service工程, cart.py
class Cart():
def __init__(self):
# 同时记录sku_id和amount,数组元素一一对应
self.sku_ids = []
self.amounts = []
# 包含详细的sku信息
self.sku_infos = {}
-->替换为
self.sku_infos = OrderedDict()
-
理由同上
-
bshop下订单也是走thrift相同的接口, 只要保证初始product里的顺序就行.
- 订单修改,删除,增加与前面逻辑类似