1、商品添加功能
a) 商品类目的选择。easyUI异步tree的使用。
b) 图片上传
i. 图片服务器。http服务、ftp服务。
ii. 使用kindEditor的图片上传插件实现上传。返回结果是一个json形式的字符串。
c) 富文本编辑器的使用
i. 引用富文本编辑器的js
ii. Jsp中添加一个textarea控件
iii. 基于textarea控件创建富文本编辑器。调用kindEditor的create方法。
iv. 表单提交前,需要把富文本编辑器的内容和textarea同步。Sync方法。
今天的内容:
1、商品描述的保存
2、商品规格的添加及使用
a、使用多个表实现商品规格
b、使用模板实现商品规格
2.1 Dao层
把商品描述信息保存到tb_item_desc表中。
可以使用逆向工程生成的代码
2.2 Service层
接收商品描述调用dao把商品描述插入到表中。
参数:String 商品描述
返回值:TaotaoResult
private TaotaoResult insertItemDesc(Long itemId,String desc){
TbItemDesc itemDesc = new TbItemDesc();
itemDesc.setItemId(itemId);
itemDesc.setItemDesc(desc);
itemDesc.setCreated(new Date());
itemDesc.setUpdated(new Date());
itemDescMapper.insert(itemDesc);
return TaotaoResult.ok();
}
什么是商品规格参数
商品规格参数的模板是和商品类目关联的,不同的类目拥有不同的商品规格参数模板。
商品规格参数是和商品数据关联的,不同的商品拥有不同的商品规格参数数据。
方案一:建立多张表格
问题:
1、需要创建的表比较多,表和表之间的关系复杂,查询时需要大量的关联。查询效率低。
2、如果展示的规格组或者是规格项需要调整实现麻烦,需要添加排序列。
3、维护不方便,如果删除某个规格分组信息,则所有与之相关的商品的规格信息都发生变化。
解决方案:
使用模板的方式来解决。
[
{
"group": "主体", //组名称
"params": [ // 记录规格成员
"品牌",
"型号",
"颜色",
"上市年份",
"上市月份"
]
},
{
"group": "网络", //组名称
"params": [ // 记录规格成员
"4G",
"3G,
"2G"
]
}
]
创建规格参数模板:Dao层:逆向工程
Service层:
@Autowired
private TbItemParamMapper itemParamMapper;
@Override
public TaotaoResult getItemParamById(long id) {
TbItemParamExample example = new TbItemParamExample();
Criteria createCriteria = example.createCriteria();
createCriteria.andItemCatIdEqualTo(id);
List<TbItemParam> list = itemParamMapper.selectByExample(example);
//判断师傅查询到结果
if(list!=null&&list.size()>0){
return TaotaoResult.ok(list.get(0));
}
return TaotaoResult.ok();
}
Controller层
@Controller
@RequestMapping("item/param")
public class ItemParamController {
@Autowired
private ItemParamService itemParamService;
@RequestMapping("/query/itemcatid/{itemCatId}")
@ResponseBody
public TaotaoResult getItemParamById(@PathVariable long itemCatId){
TaotaoResult result = itemParamService.getItemParamById(itemCatId);
return result;
}
}
Dao层 :
使用逆向工程生成的代码
Service层:
功能:接收TbItemParam对象。把对象调用mapper插入到tb_item_param表中。返回TaotaoResult
@Override
public TaotaoResult insertItemParam(TbItemParam itemParam) {
itemParam.setCreated(new Date());
itemParam.setUpdated(new Date());
itemParamMapper.insert(itemParam);
return TaotaoResult.ok();
}
controller层
@RequestMapping("/save/{cid}")
@ResponseBody
public TaotaoResult insertItemParam(@PathVariable Long cid,String paraData){
TbItemParam itemParam = new TbItemParam();
itemParam.setItemCatId(cid);
itemParam.setParamData(paraData);
TaotaoResult result = itemParamService.insertItemParam(itemParam);
return result;
根据规格参数的模板生成表单
在商品添加功能中,读取此商品对应的规格模板,生成表单,供使用者添加规格参数。