@Resource
DockingAccount dockingAccount;
public <T> void convertVOName(List<T> list, String getIdFile, String setNameFile) {
if (CollectionUtil.isNotEmpty(list)) {
String getIdFileStr = "get" + getIdFile;
String setNameFileStr = "set" + setNameFile;
List<String> ids = list.stream().map(p -> ReflectUtil.invoke(p, getIdFileStr).toString()).distinct().collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(ids)) {
DockingResult<List<UserBasicInfo>> userListDockingResult = dockingAccount.getUserBasicInfoByBatch(ids);
if (userListDockingResult.isSuccess() && CollectionUtil.isNotEmpty(userListDockingResult.getBody())) {
list.forEach((p) -> {
Optional<UserBasicInfo> userBasicInfoOptional = userListDockingResult.getBody().stream().filter(x ->
x.getId().equals(ReflectUtil.invoke(p, getIdFileStr).toString())).findFirst();
if (userBasicInfoOptional.isPresent()) {
ReflectUtil.invoke(p, setNameFileStr, userBasicInfoOptional.get().getName());
}
});
}
}
}
}