疯狂的狮子li
2021-10-27 695cb6d76b838b1e4cb161bae335faa948dca12a
ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanCopyUtils.java
@@ -16,51 +16,51 @@
 */
public class BeanCopyUtils {
   /**
    * 单对象基于class创建拷贝
    *
    * @param source      数据来源实体
    * @param copyOptions copy条件
    * @param desc        描述对象 转换后的对象
    * @return desc
    */
   public static <T, V> V oneCopy(T source, CopyOptions copyOptions, Class<V> desc) {
      V v = ReflectUtil.newInstanceIfPossible(desc);
      return oneCopy(source, copyOptions, v);
   }
    /**
     * 单对象基于class创建拷贝
     *
     * @param source      数据来源实体
     * @param copyOptions copy条件
     * @param desc        描述对象 转换后的对象
     * @return desc
     */
    public static <T, V> V oneCopy(T source, CopyOptions copyOptions, Class<V> desc) {
        V v = ReflectUtil.newInstanceIfPossible(desc);
        return oneCopy(source, copyOptions, v);
    }
   /**
    * 单对象基于对象创建拷贝
    *
    * @param source      数据来源实体
    * @param copyOptions copy条件
    * @param desc        转换后的对象
    * @return desc
    */
   public static <T, V> V oneCopy(T source, CopyOptions copyOptions, V desc) {
      if (ObjectUtil.isNull(source)) {
         return null;
      }
      return BeanCopier.create(source, desc, copyOptions).copy();
   }
    /**
     * 单对象基于对象创建拷贝
     *
     * @param source      数据来源实体
     * @param copyOptions copy条件
     * @param desc        转换后的对象
     * @return desc
     */
    public static <T, V> V oneCopy(T source, CopyOptions copyOptions, V desc) {
        if (ObjectUtil.isNull(source)) {
            return null;
        }
        return BeanCopier.create(source, desc, copyOptions).copy();
    }
   /**
    * 列表对象基于class创建拷贝
    *
    * @param sourceList  数据来源实体列表
    * @param copyOptions copy条件
    * @param desc        描述对象 转换后的对象
    * @return desc
    */
   public static <T, V> List<V> listCopy(List<T> sourceList, CopyOptions copyOptions, Class<V> desc) {
      if (ObjectUtil.isNull(sourceList)) {
         return null;
      }
      if (CollUtil.isEmpty(sourceList)) {
         return CollUtil.newArrayList();
      }
      return sourceList.stream()
         .map(source -> oneCopy(source, copyOptions, desc))
         .collect(Collectors.toList());
   }
    /**
     * 列表对象基于class创建拷贝
     *
     * @param sourceList  数据来源实体列表
     * @param copyOptions copy条件
     * @param desc        描述对象 转换后的对象
     * @return desc
     */
    public static <T, V> List<V> listCopy(List<T> sourceList, CopyOptions copyOptions, Class<V> desc) {
        if (ObjectUtil.isNull(sourceList)) {
            return null;
        }
        if (CollUtil.isEmpty(sourceList)) {
            return CollUtil.newArrayList();
        }
        return sourceList.stream()
                .map(source -> oneCopy(source, copyOptions, desc))
                .collect(Collectors.toList());
    }
}