商品维护开发文档
1 需求
商品的添加与修改
2 类图
2.1 领域模型
2.1.1 商品PO
2.1.2 sku相关PO
2.1.3 商品vo
2.1.4 sku vo
2.1.5 参数相关领域模型
2.2 controller
这个controller是微服务中的goods-manage-service中的GoodsFrontContrllor
但add和edit的参数变化了
2.3 业务类
2.4 时序图
2.4.1 商品添加
2.4.2 商品修改
3 开发说明
一、相关类全部由微服务的goods-manager-service和goods-service-sdk中来
二、此vo,po删除一些属性(相对于微服务版),请仔细比对
三、其中用到商品是否要审核的地方,使用如下代码:
//判断修改是否需要审核,1为需要审核
if\(StoreSetting.edit\_auth==1\){
三、模拟数据
在添加和和修改时都要用Json的方式来传递数据,这个数据的标准就是GoodsVo:
所以可以手动模拟GoodsVo的json数据,通过单元测试来测试Controller。
单元测试:
http://www.javamall.com.cn/help/index.php/Junit单元测试指南#Json.E5.BC.8F
四、规格Json的保存
规格值列表specList需要再转回json存在specs字段中
4 商品编辑
4.1 商品编辑信息的获取
商品编辑信息分为以下几类:
商品基本信息
商品sku信息
相册
参数
商品分类路径
商品分组列表
品牌列表
运费模板
针对如上信息的标签重构关系如下:
信息 | 原 | 新 | 对原标签处理方法 |
---|---|---|---|
商品基本信息 | StoreGoodsInfoTag | GoodsEditDataTag返回Goods | 删除 |
商品sku信息 | goodsSpecTag | 用API来获取 | 删除 |
相册 | StoreGoodsInfoTag | (先不用管这块) | 删除 |
参数 | GoodsDefaultParamesTaggoodsDefaultPropsTag | GoodsParamEidtorTag | 删除 |
分类路径 | storeGoodsCatTag | GoodsCatPathTag | 重构为新标签 |
商品分组列表 | storeGoodsCatListTag | 用以前的 | 不变 |
品牌列表 | BrandListTag | BrandListTag | 重构 |
运费模板 | StoreTemplateTag | StoreTemplateTag | 不变 |
4.2详细说明
4.2.1商品基本信息获取标签(GoodsEditDataTag)
4.2.2 商品SKU信息获取api
4.2.2.1 api路径:
/shop/seller/goods/<1>/skus.do
4.2.2.2 参数
其中路径中的<1>是商品id
这时的GoodsSkuVo中的specs本身就是一个json(在添加入库时保存),需要用@JsonRawValue来使其正常显示
4.2.3 分类路径获取标签
包要放在新的goods.tag下
以前是用的goodsCatManager,要用最新的分类manager,把那个getParents方法移过来
4.2.4 品牌列表标签(BrandListTag)
那个brandMang及相应的接口都要移到
app.shop.goods中
并且,要把逻辑换一下,换为根据商品分类读取品牌,如果没有关联返回空