功能如下所示:
我们先看一下接口文档:
为什么头像是一串字符串呢?因为我们是将头像图片放到第三方去存储,比如:阿里云等
开发思路:
实操:
1.controller
注意!这里使用【@PatchMapping】注解的话,作用是获取的参数值是一个http链接,便于转换
//更换头像(处理HTTP请求)@PatchMapping("UpdateAvatar")public Result updateAvatar(@RequestParam String avatarUrl) {userService.updateAvatar(avatarUrl);return Result.success();}
2.service接口
3.service实现类
//更新用户头像@Overridepublic void updateAvatar(String avatarUrl) {//获取idMap<String, Object> map = ThreadLocalUtil.get();Integer id = (Integer)map.get("id");userMapper.updateAvatar(avatarUrl,id);}
4.Mapper
//更新用户头像@Update("UPDATE user SET user_pic = #{avatarUrl},update_time = now() WHERE id = #{id}")void updateAvatar(String avatarUrl,Integer id);
这里记得头像的地址我是用OSS阿里云去存储的,你们也可以照例
成功结果:
参数校验:
我们头像插进去的不能是任何值,只能是地址:
有个注解叫@URL这个注解可以帮我们对传入的参数进行自动校验是否为地址
在controller内注入即可:
//更换头像(处理HTTP请求)@PatchMapping("updateAvatar")public Result updateAvatar(@RequestParam @URL String avatarUrl) {userService.updateAvatar(avatarUrl);return Result.success();}