删除页面时递归删除子页面

This commit is contained in:
暮光:城中城
2019-06-15 13:13:22 +08:00
parent dc93ea4395
commit f975e23cd8
6 changed files with 85 additions and 9 deletions

View File

@@ -15,4 +15,5 @@ public interface WikiPageService extends IService<WikiPage> {
void changeParent(WikiPage wikiPage, Integer beforeSeq, Integer afterSeq);
void deletePage(WikiPage wikiPage);
}

View File

@@ -1,12 +1,15 @@
package com.zyplayer.doc.data.service.manage.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zyplayer.doc.data.repository.manage.entity.WikiPage;
import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper;
import com.zyplayer.doc.data.service.manage.WikiPageService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;
/**
@@ -41,4 +44,23 @@ public class WikiPageServiceImpl extends ServiceImpl<WikiPageMapper, WikiPage> i
}
this.updateById(wikiPage);
}
@Override
public void deletePage(WikiPage wikiPage) {
wikiPage.setDelFlag(1);
this.updateById(wikiPage);
QueryWrapper<WikiPage> wrapper = new QueryWrapper<>();
wrapper.eq("del_flag", 0);
wrapper.eq("parent_id", wikiPage.getId());
List<WikiPage> wikiPageList = this.list(wrapper);
if (CollectionUtils.isEmpty(wikiPageList)) {
return;
}
// 递归删除子页面
for (WikiPage page : wikiPageList) {
wikiPage.setId(page.getId());
this.deletePage(wikiPage);
}
}
}