当前位置:网站首页>树状类查询组件

树状类查询组件

2022-06-25 22:00:00 EntyIU

有时候我们有查询分类的查询需求,并且我们也不确定会有多少层,需要从顶层查到最底层,可以使用以下的方法

 @GetMapping(value = "/ttt")
    public  HttpResult hui(){
        LambdaQueryWrapper<Company> queryWrapper=new LambdaQueryWrapper<>();
        queryWrapper.eq(Company::getParentId,-1);
        List<Company> list=companyService.list(queryWrapper);
        List<CompanyRes> companyRes = ConvertUtils.convertList(list, CompanyRes.class);
        getAll(companyRes);
        return HttpResult.ok(companyRes);

    }

   /**
    *多次回调自己实现查询到底的业务
    */
    public void  getAll(List<CompanyRes> list){
        list.stream().map(a->{
            LambdaQueryWrapper<Company> queryWrapper=new LambdaQueryWrapper<>();
            queryWrapper.eq(Company::getParentId,a.getId());
            List<Company> list1=companyService.list(queryWrapper);
            List<CompanyRes> companyRes = ConvertUtils.convertList(list1, CompanyRes.class);
            if (companyRes!=null){
                getAll(companyRes);
                a.setList(companyRes);
            }
            return a;
        }).collect(Collectors.toList());
    }


  /**
   *反参类
   */

@Data
public class CompanyRes {

    @TableId(type = IdType.ID_WORKER)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    /** 公司名称 */
    private String companyName;

    /**
     * 父级公司id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long  parentId;

    /**
     * 公司法人
     */
    private String legalPerson;

    /**
     * 公司地址
     */
    private String companyAddress;

    /**
     * 公司联系方式
     */
    private String companyPhone;

    private List<CompanyRes> list;
}

原网站

版权声明
本文为[EntyIU]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_59244784/article/details/125422767