電商專案之分類管理理解
阿新 • • 發佈:2019-01-11
一、分類管理模組
1、增加分類(請求引數:HttpSession session,String categoryName,int parentId)
a、校驗使用者是否登陸
b、校驗使用者是否為管理員
c、將分類名(categoryName)和分類的父類id(parentId)和狀態插入到資料庫
2、更新分類名(請求引數:HttpSession session,String categoryName,Integer categoryId,)
a、校驗使用者是否登陸
b、校驗是否為管理員
c、通過categoryId去更新分類名
3、獲取分類下所有同級子類(請求引數:HttpSession session, Integer categoryId)
a、校驗使用者是否登陸
b、校驗是否為管理員
c、通過categoryId查詢所有的子類(categoryId是子類的parentId)
<select id="selectCategoryChildrenByParentId" resultMap="BaseResultMap" parameterType="int"> select <include refid="Base_Column_List"></include> from mmall_category where parent_id=#{parentId} </select>
4、獲取分類下所有子類並遞迴(請求引數:HttpSession session, Integer categoryId)--重點
a、校驗使用者是否登陸
b、校驗是否為管理員
c、通過categoryId獲得子類
public ServerResponse<List<Integer>> selectCategoryAndChildrenById(Integer categoryId){ Set<Category> categorySet= Sets.newHashSet();//這是幹什麼用的 findChildCategory(categorySet,categoryId); List<Integer> categoryIdList= Lists.newArrayList();//這是幹什麼用的 if(categoryId!=null){ for (Category categoryItem:categorySet){ categoryIdList.add(categoryItem.getId()); } } return ServerResponse.createBySuccess(categoryIdList); } //書寫遞迴演算法,自己調自己 private Set<Category> findChildCategory(Set<Category> categorySet,Integer categoryId){ Category category=categoryMapper.selectByPrimaryKey(categoryId);//查詢該id的物件 if(category!=null){ categorySet.add(category); } //查詢位元組點,遞迴演算法一定要有一個退出的條件 List<Category> categoryList=categoryMapper.selectCategoryChildrenByParentId(categoryId);//查詢該id的子節點 for(Category categoryItem:categoryList){//遍歷子節點的集合 findChildCategory(categorySet,categoryItem.getId()); } return categorySet; }
通過categoryId查詢出category這個物件,將這物件放到categorySet集合裡面
通過categoryId查詢出所有的子類放到categoryList裡面,然後遍歷categoryList,將查出來的物件放到categorySet集合裡面。
將categorySet進行遍歷放到categoryIdList裡面
遞迴需要悟