功能如下所示:
我們先看一下接口文檔:
為什么頭像是一串字符串呢?因為我們是將頭像圖片放到第三方去存儲,比如:阿里云等
開發思路:
實操:
?
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();}