商品規格的實現圖:
規律:
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的參數
至此,商品規格列表的展示,添加以及刪除結束~