Skip to content

商品排序

商品排序需求

修改方案

  • 原有逻辑里面的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里的顺序就行.

  • 订单修改,删除,增加与前面逻辑类似