这里应用场景是,我现在要删除一级类目,连带它下边的二级类目三级类目(如果有的话),都删除,那么在给我一个父类目id的情况下,我要找出它所的子类目。
controller层方法
这里的入参是为list形式,主要是为了方便递归调用方便,实际上传过来的就一个值,可以在后端定义list进行应用
/**
* 父id
*/
private List<Long> ids;
@ResponseBody
public R categoryDel(@RequestBody CategoryInDTO params) {
try {
//返回该类目的子类目+本类目
List<Long> categoryIds = itemCategoryService.getAllIds(params.getIds());
//防止该级别为三级类目,因为查询过来的categoryIds是不包含自身的,传过来三级类目的话,就会被忽略,如果在service层将自身添进去,会造成死循环,所有要在controller层
categoryIds.addAll(params.getIds());
UpdateWrapper<ItemCategory> updateWrapper = new UpdateWrapper<>();
updateWrapper.in("id", categoryIds).set("status", OperateStatus.DELETE.getValue());