1、功能分析
请求的url:/item/save
参数:表单的数据。可以使用pojo接收表单的数据,要求pojo的属性和input的name属性要一致。
使用TbItem对象和商品描述共同接收表单的数据。TbItem item,String desc
返回值:Json数据。应该包含一个status的属性。可以使用TaotaoResult,放到taotao-common中。
2、业务逻辑
生成商品id实现方案:
- Uuid,字符串,不推荐使用。
- 数值类型,不重复。日期+时间+随机数20160402151333123123
- 可以直接去毫秒值+随机数。可以使用。
- 使用redis。Incr。推荐使用。
选择之后进行下面的逻辑操作
- 使用IDUtils生成商品id
- 补全TbItem对象的属性
- 向商品表插入数据
- 创建一个TbItemDesc对象
- 补全TbItemDesc的属性
- 向商品描述表插入数据
- TaotaoResult.ok()
3、代码 实现
service实现
/**
* 添加商品的实现
*/
@Override
public TaotaoResult addItem(TbItem tbItem, String desc) {
// 1、创建id
long itemId = IDUtils.genItemId();
// 2、 拼接TBItem属性
tbItem.setId(itemId);
tbItem.setCreated(new Date());
tbItem.setUpdated(new Date());
// 2.1 设置商品的状态 1-正常 2-下架 3-删除
tbItem.setStatus((byte) 1);
// 3、插入到商品表中
itemMapper.insert(tbItem);
// 4、拼接商品详情属性
TbItemDesc tbItemDesc = new TbItemDesc();
tbItemDesc.setItemId(itemId);
tbItemDesc.setCreated(new Date());
tbItemDesc.setItemDesc(desc);
tbItemDesc.setUpdated(new Date());
// 5、插入到商品详情表中
tbItemDescMapper.insert(tbItemDesc);
// 6、返回数据
return TaotaoResult.ok();
}
发布服务 - 引用服务
Controller
@RequestMapping("/item/save")
@ResponseBody
public TaotaoResult addItem(TbItem tbItem,String desc){
TaotaoResult addItem = itemsService.addItem(tbItem, desc);
return addItem;
}