迈向高级的Java面试突围课
V: ititit1112223333
/**
* 重写父类toVO方法( 列表展示使用 )
*/
@Override
public List<CategoryConfigVO> toVO(@NotNull List<CategoryConfig> entityList) {
if (ObjectUtil.isEmpty(entityList)) {
return Lists.newArrayList();
}
List<CategoryConfigVO> vos = super.toVO(entityList);
List<Long> createBys = CollectionUtil.getPropertyList(vos, CategoryConfigVO::getCreateBy);
List<Long> updateBys = CollectionUtil.getPropertyList(vos, CategoryConfigVO::getUpdateBy);
createBys.addAll(updateBys);
List<Long> ids = createBys.stream().distinct().collect(Collectors.toList());
List<UserDTO> userDTOS = getUserClient().listByIds(ids);
Map<Long, String> userMap = ObjectUtil.toMap(userDTOS, UserDTO::getId, UserDTO::getName);
for (CategoryConfigVO vo : vos) {
// 获取数据字典名称
getDictName(vo);
/// @TODO 后面会替换redis方式
vo.setCreateName(userMap.get(vo.getCreateBy()));
vo.setUpdateName(userMap.get(vo.getUpdateBy()));
}
return vos;
}
/**
* 重写父类toVO方法( 详情展示使用 )
*/
@Override
public CategoryConfigVO toVO(@NonNull CategoryConfig entity) {
Validate.notNull(entity, "分类配置不能为空");
CategoryConfigVO configVO = super.toVO(entity);
getDictName(configVO);
UserDTO create = getUserClient().detail(configVO.getCreateBy());
UserDTO update = getUserClient().detail(configVO.getUpdateBy());
/// @TODO 后面会替换redis方式
configVO.setCreateName(create.getName());
configVO.setUpdateName(update.getName());
return configVO;
}
/**
* 获取数据字典名称
*/
private void getDictName(CategoryConfigVO it) {
List<String> names = DictUtil.list(StringUtil.split(it.getMappingDimension(), StringPool.COMMA), OptionConstant.CLASSIFICATION_OPTION)
.stream().map(Dict::getName).collect(Collectors.toList());
it.setMappingDimensionName(String.join(StringPool.COMMA, names));
}