一、后台数据库设计
sku表通过product_id来绑定商品,具体每个属性组合的具体价格以及库存也通过此表定义,商品表不做定义。sku_code为sku编码,有需求的可以加,例如商品二维码条形码等。具体参数以pro_parm字段来定义,并以json格式存储(这里是各种组合的可能性,也就是笛卡尔积)。数据示例看下图。
二、后台相关接口
操作订单的接口代码较多,这里不写,这里只贴一下,具体属性匹配的接口,入参是商品id和json格式的商品属性,返回给前端sku表的信息。
三、安卓端相关设计
1、新增商品sku信息
如下图,设置商品的具体属性(图:规格新增),然后根据具体属性计算属性的笛卡尔积(解释:笛卡尔积就是所说的排列组合,比如有两个规格颜色和尺码,每个规格下又有两种可能性,那就是2*2=4种组合,我代码中使用递归实现的笛卡尔积计算),进而根据各种可能性填写具体金额和库存(图:具体属性匹配组合)。
2、商品界面sku信息 展示
图在最上面(属性1、属性2)这里不再贴。请求后台商品详情接口,后台返回类似上图格式的sku数据,我们便可以直接加载到rv或者直接add到LinearLayout中。下面是主要代码