第四天
实现的东西:商品添加
1543827679(1).png
1543828475(1).png
kindeEditor富文本编辑器
商品和规格参数的添加(多表的时候,把数据用json表示)
商品规格与分类有关,规格里又可以填写数据,涉及多表
1543805378(1).png
展示商品规格Service(注意list的判断)
//展示商品规格参数
public TaotaoResult getItemParamByCid(Long cid) {
//根据cid查询规格参数模板
TbItemParamExample example = new TbItemParamExample();
Criteria criteria = example.createCriteria();
criteria.andItemCatIdEqualTo(cid);
//执行查询
List<TbItemParam>list = itemParamMapper.selectByExampleWithBLOBs(example);
//判断是否查询到结果
if (list != null&&list.size() > 0) {//如图二,若商品添加过模板,要提示用户,所以要判断
TbItemParam itemParam = list.get(0);
return TaotaoResult.ok(itemParam);
}
return TaotaoResult.ok();
}
Service
//第四天,最后把规格和参数展示在页面
public String getItemParamHtml(Long itemId) {
// 根据商品ip查询规格参数
TbItemParamItemExample example = new TbItemParamItemExample();
com.taotao.pojo.TbItemParamItemExample.Criteria criteria = example.createCriteria();
criteria.andItemIdEqualTo(itemId);
//执行查询
List<TbItemParamItem> list = itemParamItemMapper.selectByExampleWithBLOBs(example);
if(list == null || list.isEmpty()) {
return "";
}
//取规格参数
TbItemParamItem itemParamItem = list.get(0);
//取json数据
String paramData = itemParamItem.getParamData();
//转换成java对象
List<Map> mapList = JsonUtils.jsonToList(paramData, Map.class);
//遍历list生成html
StringBuffer sb = new StringBuffer();
sb.append("<table cellpadding=\"0\" cellspacing=\"1\" width=\"100%\" border=\"0\" class=\"Ptable\">\n");
sb.append(" <tbody>\n");
for (Map map : mapList) {
sb.append(" <tr>\n");
sb.append(" <th class=\"tdTitle\" colspan=\"2\">"+map.get("group")+"</th>\n");
sb.append(" </tr>\n");
//取规格项
List<Map>mapList2 = (List<Map>) map.get("params");
for (Map map2 : mapList2) {
sb.append(" <tr>\n");
sb.append(" <td class=\"tdTitle\">"+map2.get("k")+"</td>\n");
sb.append(" <td>"+map2.get("v")+"</td>\n");
sb.append(" </tr>\n");
}
}
sb.append(" </tbody>\n");
sb.append("</table>");
return sb.toString();
}
}
Controller
@RequestMapping("/page/item/{itemId}")
public String showItemParam(@PathVariable Long itemId, Model model) {
//第四天最后商品规格和参数在页面展示。
String html = itemService.getItemParamHtml(itemId);
model.addAttribute("myhtml",html);
return "itemparam";
}