day70_淘淘商城项目_03_作业_商品编辑、商品删除、商品上架下架

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012990179/article/details/85469910

9.4、作业

  商品编辑、商品删除、商品上架下架。

9.4.1、商品编辑

功能分析:
item-list.jsp

我们再来看看item-add.jsp,先看看隐藏域

再来看看URL部分

请求URL: /item/update
参数: 表单数据(TbItem)
返回值:Taotaoresult


业务逻辑:
  根据商品id,更新商品表,条件更新。
  根据商品id,更新商品描述表,条件更新。
  TaotaoResult.ok()。

1)Dao
单表更新商品数据,直接使用逆向工程生成的Mapper。

2)Service
接口代码:

	/**
	 * 根据商品id查询商品描述,将查询结果封装到TaotaoResult中
	 * @param itemId
	 * @return
	 */
	TaotaoResult getItemDesc(Long itemId);
	
	/**
	* 更新商品
	* @param item
	* @param desc
	* @return
	*/
	TaotaoResult updateItem(TbItem item, String desc);

ItemServiceImpl实现类代码:

	@Override
	public TaotaoResult getItemDesc(Long itemId) {
		TbItemDesc itemDesc = itemDescMapper.selectByPrimaryKey(itemId);
		return TaotaoResult.ok(itemDesc);
	}
	
	@Override
	public TaotaoResult updateItem(TbItem item, String desc) {
		// 1、根据商品id,更新商品表,条件更新
		TbItemExample itemExample = new TbItemExample();
		Criteria criteria = itemExample.createCriteria();
		criteria.andIdEqualTo(item.getId());
		itemMapper.updateByExampleSelective(item, itemExample);
		
		// 2、根据商品id,更新商品描述表,条件更新
		TbItemDesc itemDesc = new TbItemDesc();
		itemDesc.setItemDesc(desc);
		TbItemDescExample itemDescExample = new TbItemDescExample();
		com.taotao.pojo.TbItemDescExample.Criteria createCriteria =itemDescExample.createCriteria();
		createCriteria.andItemIdEqualTo(item.getId());
		itemDescMapper.updateByExampleSelective(itemDesc, itemDescExample);
		
		return TaotaoResult.ok();
	}

3)发布服务
在taotao-manager-service工程applicationContext-service.xml中发布服务

4)引用服务
在taotao-manager-web工程springmvc.xml中引用服务

5)Controller

	/**
	 * 根据商品id,获取商品描述
	 * @param itemId
	 * @return
	 */
	@RequestMapping(value="/item/desc/{itemId}")
	@ResponseBody
	public TaotaoResult getItemDesc(@PathVariable Long itemId) {
		TaotaoResult result = itemService.getItemDesc(itemId);
		return result;
	}/**
	 * 更新(修改)商品
	 * @param item
	 * @param desc
	 * @return
	 */
	@RequestMapping("/item/update")
	@ResponseBody
	public TaotaoResult updateItem(TbItem item, String desc) {
		TaotaoResult result = itemService.updateItem(item, desc);
		return result;
	}

6)测试
我们重新安装taotao-manager工程和taotao-manager-web工程后,启动他们。浏览器测试成功。不在赘图!

9.4.2、商品删除

功能分析:

可以发现,请求的都是相似url:/item/status/xxxx,参数都是:params = {“ids”:ids}
提示成功后都会$("#itemList").datagrid(“reload”);刷新当前页面。
最后在common.js中,需要修改一点代码,如下:

在item-list.jsp页面中,格式化状态时需要用

我们知道,数据来之不易,一般情况下,我们不建议真正删除数据,而是将它的状态改变为删除状态,想再用他们的话,将数据状态再改回来,要是真正删除数据直接从后台数据库中删。所以本例中,商品删除、下架、上架本质上都是修改tb_item表中的状态字段status的值。
所以我们只需要编写一个方法即可,根据请求的方法动态修改商品状态为1,2,3。


业务逻辑:
页面点击不同的按钮,表现层映射成不同的方法处理即可。
  商品状态为正常,更新status=1即可
  商品状态为下架,更新status=2即可
  商品状态为删除,更新status=3即可

1)Dao
单表修改数据,直接使用逆向工程生成的Mapper。

2)Service
ItemService接口代码:

	/**
	 * 根据商品id,更新商品状态:1-正常,2-下架,3-删除
	 * @param ids
	 * @param method
	 * @return
	 */
	TaotaoResult updateItemStatus(List<Long> ids, String method);

ItemServiceImpl实现类代码:

	@Override
	public TaotaoResult updateItemStatus(List<Long> ids, String method) {
		TbItem item = new TbItem();
		if (method.equals("reshelf")) {
			// 商品状态为正常,更新status=1即可
			item.setStatus((byte) 1);
		} else if (method.equals("instock")) {
			// 商品状态为下架,更新status=2即可
			item.setStatus((byte) 2);
		} else if (method.equals("delete")) {
			// 商品状态为删除,更新status=3即可
			item.setStatus((byte) 3);
		}
		
		for (Long id : ids) {
			// 创建查询条件,根据id更新
			TbItemExample example = new TbItemExample();
			Criteria criteria = example.createCriteria();
			criteria.andIdEqualTo(id);
			// 第一个参数:是要修改的部分值组成的对象,其中有些属性为null则表示该项不修改。
			// 第二个参数:是一个对应的查询条件的类, 通过这个类可以实现 order by 和一部分的where 条件。
			itemMapper.updateByExampleSelective(item, example);
		}
		return TaotaoResult.ok();
	}

3)发布服务
同上“商品编辑”。

4)引用服务
同上“商品编辑”。

5)Controller

	/**
	 * 根据商品id,更新商品状态:1-正常(上架),2-下架,3-删除
	 * @param ids
	 * @param method
	 * @return
	 */
	@RequestMapping("/item/status/{method}")
	@ResponseBody
	public TaotaoResult updateItemStatus(@RequestParam(value="ids") List<Long> ids, @PathVariable String method) {
		TaotaoResult result = itemService.updateItemStatus(ids, method);
		return result;
	}

6)测试
我们重新安装taotao-manager工程和taotao-manager-web工程后,启动他们。浏览器测试成功。如下图所示:

9.4.3、商品上架下架

同上“商品删除”。
至此商品管理就完成了。

我的GitHub地址:https://github.com/heizemingjun
我的博客园地址:https://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址:https://blog.leanote.com/chenmingjun
Copyright ©2018~2019 黑泽君
【转载文章务必保留出处和署名,谢谢!】

猜你喜欢

转载自blog.csdn.net/u012990179/article/details/85469910
今日推荐