public class AddressServiceImpl implements AddressService {
//定义全局变量idList,查出该部门下的子部门后,放进去
private List<Long> idList=new ArrayList();
@Autowired
private AddressMapper addressMapper;
@Override
public List<Address> selectInParent(Long id) {
List<Long> ids=getIds(id);
ids.add(id);
List<Address> addressList=addressMapper.selectInParent(ids,Constants.ABLE_CONFIG.DEFAULT_ABLE);
//***用完后清空该集合,不然再次查询时,之前的查询的部门也在里面
idList.clear();
return addressList;
}
//递归方法,私有的
private List<Long> getIds(Long id){
List<Address> list=addressMapper.selectByParent(id,Constants.ABLE_CONFIG.DEFAULT_ABLE);
for (int i=0;i<list.size();i++){
idList.add(list.get(i).getId());
getIds(list.get(i).getId());
}
return idList;
}
}