购物车微服务主要功能介绍
购物车模块介绍
为了让读者更好地理解购物车模块,这里先介绍顾客在线下超市的购物流程。
-
进入超市。
-
在入口处取一辆购物车或一个购物篮。
-
在超市中逛。
-
在不同的区域挑选不同的商品(水果、蔬菜、熟食、衣服、家居用品等)。
-
经过一番筛选,将想要购买的商品放入购物车或购物篮。
-
某些商品需要称重或做其他处理。
-
到收银台清点商品并计算价格。
-
付款(用微信/用支付宝/刷卡/用现金)。
-
离开超市。
简单梳理一下购物流程:筛选商品、放入购物车或购物篮、清点结算、付款。这是日常生活中大家都有的体验。
大部分线上商城的购物车模块都是将线下购物流程进行抽象而开发的,新蜂商城也是如此。与线下实体的购物车不同,线上购物车模块的作用是存放商城用户挑选的商品数据。
购物车模块主要有以下 4 个功能:
-
将商品添加到购物车。
-
查询购物车中的购物项表。
-
修改购物项。
-
删除购物车中的某个购物项。
对应地,在设计后端接口时,需要设计并实现上述 4 个功能的接口。这 4 个接口的功能非常典型,分别是增、查、改、删,即程序员常挂在嘴边的 “增删改查”。
购物车模块的表结构设计
商城系统的购物车模块的表结构的主要字段如下。
-
user_id
:用户的id
,根据这个字段确定用户购物车中的数据。 -
goods_id
:关联的商品id
,根据这个字段查询对应的商品信息并显示到页面上。 -
goods_count
:购物车中某件商品的数量。 -
create_time
:商品被添加到购物车中的时间。
购物车模块的表结构设计如下:
CREATE DATABASE /*!32312 IF NOT EXISTS*/'newbee_mall_cloud_cart_db'/*!40100 DEFAULT CHARACTER SET utf8 */;
USE 'newbee_mall_cloud_cart_db';
DROP TABLE IF EXISTS 'tb_newbee_mall_shopping_cart_item';
CREATE TABLE 'tb_newbee_mall_shopping_cart_item' (
'cart_item_id' bigint(20) NOT NULL AUTO_INCREMENT COMMENT '购物项主键id',
'user_id' bigint(20) NOT NULL COMMENT '用户主键id',
'goods_id' bigint(20) NOT NULL DEFAULT '0' COMMENT '关联商品id',
'goods_count' int(11) NOT NULL DEFAULT '1' COMMENT '数量(最大为5)',
'is_deleted' tinyint(4) NOT NULL DEFAULT '0' COMMENT '删除标识字段(0-未删除 1-已删除)',
'create_time' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
'update_time' timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最新修改时间',
PRIMARY KEY ('cart_item_id')
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
每个字段对应的含义在上面的 SQL
语句中都有介绍,读者可以对照理解,并正确地把建表 SQL
语句导入数据库。如果有需要,读者也可以根据该设计进行扩展。
上述代码中的购物车模块用来存储用户选择的商品数据,为订单结算做准备。这也是距离结算环节最近的一个步骤和功能点,接下来笔者将讲解购物车模块在微服务架构模式下的改造过程。
每个字段对应的含义在上面的 SQL
语句中都有介绍,读者可以对照理解,并正确地把建表 SQL
语句导入数据库。如果有需要,读者也可以根据该设计进行扩展。
上述代码中的购物车模块用来存储用户选择的商品数据,为订单结算做准备。这也是距离结算环节最近的一个步骤和功能点,接下来笔者将讲解购物车模块在微服务架构模式下的改造过程。