package com.isu.gaswellwatch.utils; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ReflectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.isu.gaswellwatch.vo.TreeVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class ConverterUtil { private static final Logger logger = LoggerFactory.getLogger(ConverterUtil.class); public static T convert(Object source, Class tClass) { T tar = ReflectUtil.newInstanceIfPossible(tClass); BeanUtil.copyProperties(source, tar); return tar; } public static List convert(List source, Class tClass) { if(CollUtil.isEmpty(source)) { return null; } return source.stream().map(o -> { T tar = ReflectUtil.newInstanceIfPossible(tClass); BeanUtil.copyProperties(o,tar); return tar; }).collect(Collectors.toList()); } public static IPage convertIPage(IPage source, Class tClass) { IPage result = new Page<>(); if(null == source){ return result ; } BeanUtil.copyProperties(source,result); result.setRecords(convert(source.getRecords(),tClass)); return result; } public static Page convertPage(Page source, Class tClass) { Page result = new Page<>(); if(null == source){ return result ; } BeanUtil.copyProperties(source,result); result.setRecords(convert(source.getRecords(),tClass)); return result; } public static List convertListToTree(List list, Long parentId) { if(CollUtil.isEmpty(list)) return new ArrayList<>() ; return list.stream() // 筛选父节点 .filter(t -> t.getParent().equals(parentId)) // 递归设置子节点 .peek(item -> item.setChildren(convertListToTree(list,item.getId()))) //排序 //.sorted(Comparator.comparing(TreeVO::getSort)) .collect(Collectors.toList()); } }