淘淘商城16-商城後臺商品列表之商品刪除、下架、上架
阿新 • • 發佈:2019-02-12
目錄
1.商品刪除、下架、上架效果展示
選中一件商品,點選刪除
提示是否刪除
點選確認,提示刪除成功
然後商品狀態修改為刪除
下架上架效果相同,不在贅述。
支援批量商品刪除、下架、上架
提示
點選確認
狀態變為下架
選中,點選上架,狀態變為正常
2.前端
在item-list.jsp頁面中
刪除
下架
上架
可以發現,請求的都是相似url:/rest/item/xxxx ,引數都是params = {"ids":ids}。
提示成功後都會$("#itemList").datagrid("reload");
最後在common.js中,需要修改一點程式碼
// 格式化商品的狀態 formatItemStatus : function formatStatus(val,row){ if (val == 1){ return '正常'; } else if(val == 2){ return '<span style="color:red;">下架</span>'; } else if(val == 3){ return '<span style="color:red;">刪除</span>'; } else { return '未知'; } },
item-list.jsp頁面中,格式化狀態時需要用
3.後端
3.1後端分析
商品刪除、下架、上架本質上都是修改tb_item表中的狀態。
所以我們只需要編寫一個方法即可根據,請求的方法修改商品狀態為1,2,3
3.2服務層
在taotao-manager-interface的ItemService中編寫介面
/**
* 更新商品狀態
*/
TaotaoResult updateItemStatus(List<Long> ids,String method);
在taotao-manager-service的ItemServiceImpl編寫實現類
因為可以批量刪除、下架、上架,所以id用list儲存
/**
* 根據id,更新商品狀態1-正常,2-下架,3-刪除
*/
@Override
public TaotaoResult updateItemStatus(List<Long> ids, String method) {
TbItem item = new TbItem();
if (method.equals("reshelf")) {
// 正常,更新status=3即可
item.setStatus((byte) 1);
} else if (method.equals("instock")) {
// 下架,更新status=3即可
item.setStatus((byte) 2);
} else if (method.equals("delete")) {
// 刪除,更新status=3即可
item.setStatus((byte) 3);
}
for (Long id : ids) {
// 建立查詢條件,根據id更新
TbItemExample tbItemExample = new TbItemExample();
Criteria criteria = tbItemExample.createCriteria();
criteria.andIdEqualTo(id);
// 第一個引數 是要修改的部分值組成的物件,其中有些屬性為null則表示該項不修改。
// 第二個引數 是一個對應的查詢條件的類, 通過這個類可以實現 order by 和一部分的where 條件。
itemMapper.updateByExampleSelective(item, tbItemExample);
}
return TaotaoResult.ok();
}
3.3表現層
在taotao-manager-web的ItemCotroller編寫controller
我們使用rset的風格動態執行方法
/**
* 更新商品狀態
*/
@RequestMapping("/rest/item/{method}")
@ResponseBody
public TaotaoResult updateItemStatus(@RequestParam(value="ids")List<Long> ids,@PathVariable String method) {
TaotaoResult result = itemService.updateItemStatus(ids,method);
return result;
}
至此商品刪除、下架、上架功能完成