前言
上一章已经实现请求体拦截,本期将会结合前一章进行功能实现
分析
REST风格请求
限制修改内容
代码实现
数据持久层(dao)
代码语言:javascript复制在userdao接口中新增暴露出修改用户信息接口
public Boolean put_userinfo(User user);
代码语言:javascript复制userDaoImpl中实现修改用户信息请求接口
public Boolean put_userinfo(User user){
userExample.createCriteria().andOpenidEqualTo(user.getOpenid());
user.setUploadNum(null);
user.setCreateRoom(null);
// ... where openid = openid set user = user ....
return userMapper.updateByExampleSelective(user,userExample) == 1?true:false;
}
服务层(service)
代码语言:javascript复制UserService中新增暴露出如下接口
public BaseResponse put_userinfo(User user, HttpServletRequest request);
代码语言:javascript复制UserServiceimpl实现接口
@Transactional
public BaseResponse put_userinfo(User user, HttpServletRequest request){
// 查询token查询是谁的请求最后再给他修改信息
user.setOpenid(TokenUtils.tookenList(request.getHeader("token")).get(0).getOpenid());
Assert.isTrue(userDao.put_userinfo(user),"信息修改失败");
return RespGenerator.success_noData("用户信息修改成功");
}
控制器层(controller)
代码语言:javascript复制UserController中新增Put接口
// 用户修改个人信息
@PutMapping("/user")
public BaseResponse user(@RequestBody User user, HttpServletRequest request){
return userService.put_userinfo(user,request);
}
请求流程总结
程序根据请求头的token解析出用户主键,最后根据用户主键修改数据库内容。并做修改限制。