Categories: All

by Zhang Zhixiang 2 years ago

124

nowcart-关键链路图

购物车服务涉及多个功能和操作,包括查询、更新、添加和移除购物车中的商品信息。用户通过不同的API接口,如POST和GET请求,来操作购物车。每个操作都会调用相应的服务和数据库管理器以确保数据的准确性和及时更新。购物车信息的构造依赖于多个外部服务和数据源,如店铺信息、菜品信息以及优惠信息等。这些信息经过校验和处理后,最终呈现给用户。系统还会进行各种校验,比如店铺校验、配送时间检查和优惠信息的拆分与合并,以确保用户在购物过程中获得最佳的体验。

nowcart-关键链路图

重复调用

分支执行次数,在节点后标示 缓存命中率按照0.9计算

购物车

s2s/v5/cart/update_shoppings_items

update_shoppings_items

更新DB cart_db_manager.update_shoppings_items

s2s/v5/cart/get_shopping_items
QPS: 126

get_shopping_items

nowservice

清空聚合购物车 POST: /api/v5/cart/empty_collection_items
s2s/v5/cart/empty_collection_items

QPS: 1

empty_collection_items

查询聚合购物车菜品 POST: /api/v5/cart/get_collection_items
s2s/v5/cart/get_collection_items

QPS: 2

get_collection_items

cart_manager.get_collection_items

构造delivery_info delivery_info_manager.build_delivery_info

查询主店铺id nowmerchant./s2s/v5/brand/get_head_restaurant_ids

查询DB cart_db_manager.get_all_cart_items

清空购物车 POST: /api/v5/cart/empty_items
s2s/v5/cart/empty_items

QPS: 17

empty_items

更新DB cart_db_manager.clear_items_by_store_id

删除购物车中商品 POST: /api/v5/cart/remove_items
s2s/v5/cart/remove_items

QPS: 12

remove_items

刷新购物车商品信息 POST: /api/v5/cart/refresh_items
查看店铺购物车商品列表 GET: /api/v5/cart/get_items
s2s/v5/cart/get_items

QPS: 100

get_items

构造购物车信息 cart_manager.build_cart_info()

外部依赖 获取优惠列表 promotion.get_discount_item_list

更新 POST: /api/v5/cart/update_items
s2s/v5/cart/update_items

QPS: 22

添加商品到购物车 POST: /api/v5/cart/add_items
s2s/v5/cart/add_items

QPS: 92

nowcart-service

add_items

1

_add_update_items

构造购物车信息 ShoppingCartViewHandler.get_shopping_cart_basic_info()

获取最新购物车条目信息 ShoppingCartViewHandler._load_data()

移除无效菜品 _remove_invalid_cart_items

检查配送时间 cart_order_manager.is_acceptable_asap_delivery_time

校验店铺 ShoppingCartItemHandler.set_items()

更新DB和缓存 clear_items_by_store_id create_cart_items_from_db

合并赠品 build_shopping_cart_free_items

查询赠品信息 promotion.check_gifts

拆分优惠信息 update_discount_price_and_split_items

获取优惠列表 promotion.get_discount_item_list

校验店铺 ShoppingCartItemHandler.load_data()

查询配料信息 nowmenu./s2s/v5/buyer/dish/get_option_group_mappings

查询菜品信息 nowmenu./s2s/v5/buyer/dish/get_infos

校验店铺 is_validate_deli_res

外部依赖 nowmerchant./s2s/v5/stores