/**
* 刪除某個項目
* 同時刪除下面的子項目
*
* @param pId
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteProject(String pId) {
ArrayList<String> pIdList = new ArrayList<>();
pIdList.add(pId);
this.getIds(pIdList, pId);
projectMapper.deleteBatchIds(pIdList);
}
/**
* 遞歸獲取
* @param ids
* @param oneId
*/
private void getIds(ArrayList<String> ids, String oneId) {
QueryWrapper<Project> wrapper = new QueryWrapper<>();
wrapper.eq("P_PARENT_ID", oneId);
List<Project> projectList = projectMapper.selectList(wrapper);
//遍歷二級分類的對象,把二級分類的id加入到要刪除的集合中
for (Project project : projectList) {
String id = project.getpId();
ids.add(id);
this.getIds(ids, id);
}
}