@Override
public int deleteContent(Long id) {
List<Long> ids = new ArrayList<>();
//先把要删除的一级分类id放入到集合中
ids.add(id);
//递归的将一级分类下的id也加入到集合中
this.getIds(ids,id);
return voucherContentMapper.deleteContents(ids);
}
//递归方法
private void getIds(List<Long> ids, Long parentId) {
//查询二级分类的对象
List<VoucherContent> contents = voucherContentMapper.findSonContentByParentId(parentId);
//遍历二级分类的对象,把二级分类的id加入到要删除的集合中
for (VoucherContent content : contents) {
Long id = content.getId();
ids.add(id);
//把二级分类的每一个ID,查询它下面的子节点
this.getIds(ids,id);
}
}
<!--逻辑刪除評論-->
<update id="deleteContents" parameterType="java.lang.Long">
update voucher_content
set `status` = 0
where id in
<foreach collection="ids" item="id" index="index" open="(" separator="," close=")">
#{id}
</foreach>
</update>
|