总说
过程参考黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili
一、算法介绍
存储用户头像,我们实际存放的是图像的访问地址,是个字符串
1.1 controller层
在UserController中,添加一个updataAvatar方法
代码如下:
//更新用户头像@PatchMapping("/updateAvatar")public Result updateAvatar(@RequestParam String avatar) { //传入要更新的图片地址userService.updateAvatar(avatar);return Result.success(avatar);}
1.2 service层
在UserService中,添加代码如下:
//更新用户头像
void updateAvatar(String avatar);
1.3 Impl层
在UserServiceImpl中,我们需要再找到用户id传到mapper层
添加代码如下:
@Overridepublic void updateAvatar(String avatarUrl) {//从ThreadLocal中获取用户idMap<String, Object> map = ThreadLocalUtil.get();Integer id = (Integer) map.get("id");userMapper.updateAvatar(avatarUrl, id);}
1.4 Mapper层
在UserMapper中,用now获取现在的时间
添加代码如下:
@Update("update user set user_pic=#{avatarUrl},update_time=now() where id=#{id}")
void updateAvatar(String avatarUrl, Integer id);
1.5 测试接口
启动项目,打开apifox
创建一个新接口 更新用户头像
找一个图像地址,比如https://img.51miz.com/Element/00/88/60/42/3cb805be_E886042_a75650be.png
如图:
1.6参数校验
但是我们还是没有进行参数检验,如果不是图片格式也能更新进去
那我们如何进行参数校验?
只需要在UserController传入参数时加一个注解即可
我们再测试一下
上传git