1.问题场景:对后端返回的用户列表中的每一条密码进行解密操作,并将记录返回给前端。
2.解决方法:1.使用Stream流中的peek方法 2.使用Stream流中的forEach方法
@PostMapping(value = "/pageList")
public Result<List<UserPageVO>> pageList(@Valid UserPageListParam pageListParam) {
Page<User> page = this.userService.pageList(pageListParam);
// 第一种方法
List<UserPageVO> voList = page.stream().map(UserPageVO::new)
.peek(p -> {
p.setPwd(PWUtils.pwDecryptStr(p.getPwd()));
})
.collect(Collectors.toList());
// 第二种方法
// List<UserPageVO> voList = //page.stream().map(UserPageVO::new).collect(Collectors.toList());
// voList.stream().forEach(p -> {
// p.setPwd(PWUtils.pwDecryptStr(p.getPwd()));
// });
return new Result(1, "获取成功", voList, page.getTotal());
}
3.验证
数据库存放的是16进制的对称加密数据形式。
解密后返回到前端的数据