实战项目商城(第四天)

内容复习:
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;

根据规格参数的模板生成表单

在商品添加功能中,读取此商品对应的规格模板,生成表单,供使用者添加规格参数。













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值