spu+sku统一接口文档说明

# spu+sku v1.0统一接口说明(RestFul风格) - 改造目的:将现系统product单规格购买改为传统spu+sku多规格购买,电商都是基于产品服务的,所以此项改动巨大,后面不定期的框架升级做准备。 - 紧急程度:一般(必要时,介意稳定后解决冲突和上线准备) - 大体概述:现系统的product对象可以说是即是spu也是sku,通俗来说即满足产品属性也满足库存属性,我们做的就是将原product的字段集合拆分为产品属性集合和库存属性集合,从设计角度来思考,库存属性只应该考虑product的库存字段相关属性,其他都为spu字段。但从实际开发中,某些业务场景是针对sku这个颗粒度上的,导致拆和不拆分没啥区别,配置项及其复杂。还有就是套餐问题,其实宏观来看具体套餐就是一个sku,是多个单品sku的集合,所以在设计上来说如果有套餐就必须存在sku->stock 一对多关系的中间表,还有就是页面实现的困难,具体指这个规格的选择,目前暂定规格库中选取。 ------ 几大难度: 1.拆分product--->spu+sku 2.套餐中间表 sku--->stock 3.规格库和页面实现 4.拆表sql编写 准备 ------ 服务器地址: 测试机:10.60.1.150:8081 启安本地 :10.60.1.226 ------- 1.拆分实现(拆的过细就没有必要有这项需求) sku:id、combination、code、barCode、spuId、salesPrice、giftPackageReward、cashBackReward、stock spu:id、title、subtitle、weight、costPrice、category、type、tag等 ------- 2.套餐实现 sku->skuDetail 当sku.combination=1时,说明是套餐类型的sku,在中间表skuDetail中找到该sku的套餐里的单品(数量+sku) ------- 3.规格实现 手写吧,长度不超过15 ------- 4.sql编写准备工作 测试机数据库 pro2spu 和 pro2sku文件以及proline2skudetail,对应的产品匹配到spu的sql执行语句,产品匹配到sku的sql执行语句,套餐子表匹配到skuDetail的sql执行语句,这些都是初始化表后第一时间的数据同步语句,原表必要备份和保留。 pro2spu INSERT INTO `abc_spu` ( `id`, `activity_status`, `actual_sales_count`, `actual_sum_value`, `ad_image`, `add_Cart`, `add_virtual_value`, `allocation_price`, `appointment_notice`, `bigImage`, `bonus_money_cheng_ben`, `brand`, `business_card_status`, `buy_integral`, `buy_now`, `buy_roles`, `claim_status`, `convert_integral`, `cost_price`, `create_date`, `creator`, `discount_num`, `discount_num_day`, `discount_num_day_of_member`, `discount_num_of_member`, `end_time`, `feature`, `file`, `integral`, `integral_statu`, `market_price`, `modifier`, `modify_date`, `myFile1`, `myImage2`, `myImage3`, `number`, `priority`, `pro_Type`, `product_effect`, `product_statuses`, `purchase_status`, `pvValue`, `recommend_products`, `recommend_status`, `remark`, `sale_status`, `sales_count`, `sales_price`, `scheduled`, `shopping_tip`, `show_real`, `show_roles`, `start_time`, `status`, `store_id`, `store_name`, `subtitle`, `title`, `type`, `unit_price`, `use_info`, `video_img_url`, `video_url`, `virtual_status`, `weight`, `whether_sync`, `wms_sync`, `year_sum_value`, `category_id`, `tag_id`, `unit_id` ) SELECT `id`, `activity_status`, `actual_sales_count`, `actual_sum_value`, `ad_image`, `add_Cart`, `add_virtual_value`, `allocationprice`, `appointment_notice`, `bigImage`, `bonusMoneyChengben` , `brand`, `business_card_status`, `buy_integral`, `buy_now`, `buy_roles`, `claim_status`, `convert_integral`, `costprice` `cost_price`, `create_date`, `creator`, `discount_num`, `discount_num_day`, `discount_num_day_of_member`, `discount_num_of_member`, `end_time`, `feature`, `file`, `integral`, `integral_statu`, `market_price`, `modifier`, `modify_date`, `myFile1`, `myImage2`, `myImage3`, `number`, `priority`, `pro_Type`, `product_effect`, `product_statuses`, `purchase_status`, `pvValue`, `recommend_products`, `recommend_status`, `remark`, `sale_status`, `sales_count`, `salesprice` `sales_price`, `scheduled`, `shopping_tip`, `show_real`, `show_roles`, `start_time`, `status`, `store_id`, `store_name`, `name` `subtitle`, `name` `title`, `type`, `unitprice` `unit_price`, `use_info`, `video_img_url`, `video_url`, `virtual_status`, `weight`, `whether_sync`, `wms_sync`, `year_sum_value`, `category_id`, `tag_id`, `unit_id` FROM abc_product pro2sku INSERT INTO `abc_sku` ( `id`, `bar_code`, `cash_back_reward`, `code`, `combination`, `create_date`, `creator`, `gift_package_reward`, `modifier`, `modify_date`, `sales_price`, `spu_id`, `status`, `stock_lower`, `stock_upper` ) SELECT null, `barCode`, `cash_back_reward`, `code`, `isProduct_package`, `create_date`, `creator`, `gift_package_reward`, `modifier`, `modify_date`, `salesprice`, id `spu_id`, `status`, `stock_lower`, `stock_upper` FROM abc_product proline2skudetail INSERT INTO `abc_sku_detail` ( `id`, `count`, `create_date`, `creator`, `modifier`, `modify_date`, `sku_left`, `status` ) SELECT NULL, `productCount`, `create_date`, `creator`, `modifier`, `modify_date`, `productId`, `status` FROM abc_product_line; ------- ​ 表A-统一接口说明 | 编号 | 作用 | 老接口 | 新接口 | 方式 | 传参 | 反参 | | :--: | :-----------: | :------------------: | :--------------------------: | :--: | :---------------------: | ----- | | 1 | 获取商品详情页 | 无 | cSpu/info/{id}| GET | id={id} 必传 int签到类型 spuId | 看表C | | 2 | 添加购物车 | 无 | cShopCart/cAdd?skuId={skuId} | POST | skuId int 必传 sku的id | 0失败1成功 | | 3 | 提交订单 | 无 | cSalesOrder/clientAddSalesOrder | POST | salesOrderInfoReqVO 看表G| - | 表B-传参说明(无) ------ 表C-反参说明 | 编号 | 说明 | 举例 | | :--: | --------------------------------------------------------- | ------------------------------------------------------------ | | 1 | res.data 是 Spu 对象| 看表D| ------ 表D-Spu (spu)对象属性(大多数字段同product,含sku) |字段|意义|举例| |-|-|-| |id|id标识|90572| |title|标题|xxx商品| |subtitle|副标题|标签说明| |weight|重量|| |priority|排序权重|| |remark|备注|xx| |adImage|广告图|[1,-1,-1,1,0,0,0]| |unit|产品单位|| |status|状态|| |category|分类|| |type|类型|| |tag|标签|| |salesPrice|销售价|int型| |saleStatus|销售状态|int型| |showRoles|展示角色集|int型| |buyRoles|购买角色集|int型| |actualSalesCount|实际销量|int型| |unitPrice|单价|int型| |brand|品牌|| |buyNow|立即购买标识|| |addCart|购物车标识|| |skus|sku集|sku的集合| 表E-Sku(sku)对象属性 |字段|意义|举例| |-|-|-| |id|ID|| |combination|套餐标识|0否1是| |code|类型|| |barCode|条形码|-| |spuId|supid|-| |salesPrice|销售价|-| |giftPackageReward|礼包奖励-| |cashBackReward|返现奖励|-| |stock|库存|-| |statue|状态|-| 表F-CReissuePanelVO(移动端补签面板)对象属性 (部分字段意义参考CSignInCurRoundInfoVO 表D 一致性) |字段|意义|举例| |-|-|-| |customerId|用户唯一id标识|90572| |type|签到类型 |0日常| |startTime|开始时间|"2021-05-12 14:54:23"| |endTime|结束时间|"2021-05-19 14:54:22"| |curTime|当前时间|"2021-05-18 14:54:22"| |curRoundStatus|本轮签到状态|-1当前角色不支持 0未开始 1进行中 2已结束| |details|名字集合|List<CReissuePanelDetailVO> 每个明细属性查看表G| 表G-ClientSalesOrderInfoReqVO(移动端订单封装)对象属性 |字段|意义|举例| |-|-|-| |customerId|用户唯一id标识|90572| |submissionMethod| 提交方式 |0购物车1立即提交| |systemSource| || |isDianmeiApp| || |addressId| || |uuid||| |userIntoOrder| || |skuId| || |skuCount| || |payType| || |orderMessage| || |deliveryMode| || |couponId| || |userId| || |userIdCode| || |orderSourceType| || |selectShopCartIds|已选择好的skuid集合 ||