- Utils:
public class BeanDtoUtils<V, E> {
/**
* TODO Do 转换 DTO
* 同:BeanUtils.copyProperties(dtoEntity, newInstance);
*
* @param oldClass 原数据--Dto,Vo,entity
* @param newClass 转换为--Dto,Vo,entity
* @return
*/
public static <E> E convert(Object oldClass, Class<E> newClass) {
// 判断oldClass 是否为空!
if (oldClass == null) {
return null;
}
// 判断newClass 是否为空
if (newClass == null) {
return null;
}
try {
// 创建新的对象实例
E newInstance = newClass.newInstance();
// 把原对象数据拷贝到新的对象
BeanUtils.copyProperties(newInstance, oldClass);
// 返回新对象
return newInstance;
} catch (Exception e) {
return null;
}
}
//TODO Page<Entity> 分页对象转 Page<DTO> ( list 循环)
public static <T, V> IPage<V> pageDTO(IPage<T> page, Class<V> v) {
IPage<V> vs = page.convert(item -> {
try {
V newV = (V) BeanDtoUtils.convert(item, v.newInstance().getClass());
return newV;
} catch (Exception e) {
e.printStackTrace();
}
return null;
});
return vs;
}
}
- Service调用
public BaseResult getUserListPage() {
Page<SysUserDO> page = new Page<>(1,10);
QueryWrapper<SysUserDO> wrapper = new QueryWrapper<>();
IPage<SysUserDO> iPage = userMapper.selectPage(page, wrapper);
IPage<UserDto> iPageDTO = pageDTO(iPage, UserDto.class);
return successOrFailPage(iPageDTO , "", "");
}