商品规格的实现图:
规律:
1、同一类商品的规格项分组相同。
2、同一类商品的规格项目是相同的。规格项目是跟商品关联。
3、不同商品规格参数的值是不同的
1 页面效果展示:
2.规格列表的展示功能
用户在点击规格参数的时候,会跳item-param-list页面。
跳item-param-list页面的时候就会去跑/item/param/list这个方法。
对应的sql中的表为tb_item_param
2.1 dao层
使用mybatis的反向工程生成,在这里不需要编码
2.2 service层
@Autowired private TbItemParamMapper tbItemParamMapper; @Autowired private TbItemCatMapper itemCatMapper; @Autowired private TbItemParamItemMapper tbItemParamItemMapper; @Override public EasyUIDataGridResult getItemParamList(int page, int rows) { TbItemParamExample example =new TbItemParamExample(); //分页处理 PageHelper.startPage(page, rows); //将查询到的东西返回在list中 List<TbItemParam> list=tbItemParamMapper.selectByExampleWithBLOBs(example); EasyUIDataGridResult result=new EasyUIDataGridResult(); List<ItemParamVO> paramvo= new ArrayList<ItemParamVO>(); for(TbItemParam a :list){ ItemParamVO vo=new ItemParamVO(); vo.setId(a.getId()); vo.setItemCatId(a.getItemCatId()); vo.setItemCatName(itemCatMapper.selectByPrimaryKey(a.getItemCatId()).getName()); vo.setParamData(a.getParamData()); vo.setCreated(a.getCreated()); vo.setUpdated(a.getUpdated()); paramvo.add(vo); } result.setRows(paramvo); //取记录的总条数 PageInfo<TbItemParam> pageInfo =new PageInfo<>(list); result.setTotal(pageInfo.getTotal()); return result; }
ps:在这里查询的时候 我们要用selectByExampleWithBLOBs(example) 这个方法 而不用 selectByExample(example) 是因为在mysql里面param_data是text类型的,mybatis自动生成映射文件的时候针对text类型的数据会默认生成这两个方法,使用前者查询不取这个参数,在有需要的时候我们用后者查询来提高查询效率节省资源。
2.3 controller层
3.添加商品的模板
3.1 选择商品分类
选择商品分类后根据选择的商品分类到tb_item_param规格参数模板表中取规格模板,取到了说明此商品分类的规格模板已经添加提示不能添加。
如果没有取得正常添加。
3.1.1 service层
3.1.2 controller层
3.2 商品规格的添加
3.2.1 dao层
保存规格参数模板,向tb_item_param表添加一条记录。可以使用逆向工程生成的代码。
3.2.2 service层
3.2.3 controller层
4 商品规格的删除
4.1 dao层
4.2 service 层
4.3 controller层
5 在添加商品时,在页面的下端显示商品规格以及保存商品时将商品规格的数据也保存到对应的表中去
5.1 显示商品规格
5.1.1 dao层
5.1.2 service层
5.1.3 controller层
5.2 添加商品规格到数据表中
5.2.1 dao层
5.2.2 service层
修改之前写的商品添加的service方法 加入一个params的参数
至此,商品规格列表的展示,添加以及删除结束~