From 65a17fb881c5640ea99c1b16d70b3b107d4798d8 Mon Sep 17 00:00:00 2001 From: chenxing Date: Wed, 2 Sep 2026 10:44:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=8A=E4=BC=A0=E5=A4=B4?= =?UTF-8?q?=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/UserSettingsController.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/main/java/com/yunhai/userhome/controller/api/UserSettingsController.java b/src/main/java/com/yunhai/userhome/controller/api/UserSettingsController.java index 5d4c92c..d25453d 100644 --- a/src/main/java/com/yunhai/userhome/controller/api/UserSettingsController.java +++ b/src/main/java/com/yunhai/userhome/controller/api/UserSettingsController.java @@ -1,6 +1,7 @@ package com.yunhai.userhome.controller.api; import com.yunhai.platform.apistd.BizException; +import com.yunhai.platform.openapi.client.OpenApiUserClient; import com.yunhai.platform.openapi.client.YschBaseOpenApi; import com.yunhai.platform.utils.enums.ClientEnum; import com.yunhai.platform.utils.exception.ErrorCode; @@ -55,6 +56,9 @@ public class UserSettingsController { @Autowired private UsedAppService usedAppService; + @Autowired + private OpenApiUserClient openApiUserClient; + // ==================== 壁纸 ==================== /** @@ -525,6 +529,33 @@ public class UserSettingsController { userSettingsService.saveDesktopAppList(desktopApps); } + // ==================== 头像 ==================== + + /** + * 上传头像:校验后经 OpenAPI 转发至 UserBase 统一存储(压缩并写入 sys_user.profile_picture)。
+ * 前端调用:UserInfoModal 更换头像 → POST /api/avatarUpload。
+ * 注意不复用 checkFile(其 5MB 上限被壁纸/图标共用),头像单独限制 20MB(与前端一致,拍照原图普遍偏大)。 + */ + @PostMapping(value = "avatarUpload", produces = "application/json") + public Map avatarUpload(BoaUser authUserWithDept, @RequestParam("file") MultipartFile file) { + if (file == null || file.isEmpty()) { + throw new BizException(ErrorCode.CUSTOM, "请选择上传文件"); + } + if (file.getSize() > 20L * 1024 * 1024) { + throw new BizException(ErrorCode.CUSTOM, "图片大小不能超过20MB"); + } + String url; + try { + url = openApiUserClient.updateUserProfilePicture( + authUserWithDept.getId(), file.getBytes(), file.getOriginalFilename()); + } catch (Exception e) { + throw new BizException(ErrorCode.CUSTOM, e.getMessage()); + } + Map result = new HashMap<>(); + result.put("url", url); + return result; + } + // ==================== 私有方法 ==================== private String upload(@RequestParam("file") MultipartFile file, String pathName) {