【05】淘淘商城-內容分類管理 修改、刪除實現、內容列表展示
今天繼續來寫作業
修改(重新命名)節點:
分析
有上圖我們可以看到當所選節點id不為0的時候,就說明這不是一個新建的節點,所以我們走else的路徑:/content/category/update。
傳給我們的資訊有節點的id和修改後的名字
service層
很簡單的邏輯
通過id找到category,然後修改name,更新category
ps:可以不返回TaotaoResult.ok(),因為前端頁面並沒有回掉函式。
Controller層
刪除節點
分析
如圖,我們可以看到刪除節點的url為/content/category/delete/,為我們傳入了parentId和id
Service
準備
因為要用到遞迴運算,所有我們將其封裝成一個方法
返回值問題同上,可以不寫。
因為要頻繁的查詢子節點,所以我們將其封裝成一個方法
遞迴刪除
首先我們先將程式碼分為三個部分
1. 刪除該節點下的所有子節點
2. 判斷刪除完成後父節點是否為葉子節點
3. 刪除自己
刪除子節點
原理很簡單
我們找到該節點下的所有子節點,判斷他們下是否還有子節點,如果有繼續判斷是否還有子節點,直到該節點沒有子節點,我們將其稱之為葉子節點,之後刪除該節點。
上圖就是流程圖,這樣就很好理解了。
判斷是否為葉子結點
這個相對於上面的邏輯就容易好多了,當我們的父節點下只有一個子節點的時候,我們刪除這個子節點,父節點就變成了一個沒有子節點的葉子節點,所以我們要將父節點的isParent屬性改為false。
刪除本節點
沒啥可說的
Controller
內容列表
分析
上圖我們可以知道:
URL: /content/query/list
傳入引數:categoryId
EasyUI傳入的分頁資訊:page、rows
Service
常規的分頁查詢,沒啥好說的,注意在查詢的時候要使用selectByExampleWithBLOBs()方法,否則無法取出欄位型別為text的資料。
Controller
這裡介紹的很簡單,具體可以看我【03】淘淘商城的筆記