1. 程式人生 > >day70_淘淘商城專案_03_作業_商品編輯、商品刪除、商品上架下架

day70_淘淘商城專案_03_作業_商品編輯、商品刪除、商品上架下架

淘淘商城專案_03_作業

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 黑澤君
【轉載文章務必保留出處和署名,謝謝!】