@ApiOperation(value = "更新用户信息", notes = "更新用户信息,包括手机号、邮箱、头像等", httpMethod = "GET")
@PostMapping("/profile")
public ApiResult profile(@RequestBody SysUserVo sysUserVo) {
Boolean result = false;
String imageRelativePath = "static/upload";
String imageBase64Str;
Integer userId = UserUtil.getUserId(request);
//如果相同
if (userId > 0) {
//保存头像
StringBuffer fileName = new StringBuffer();
fileName.append(UUID.randomUUID().toString().replaceAll("-", ""));
if (StringUtils.isBlank(sysUserVo.getAvatar())) {
return new ApiResult<>(false);
} else if (sysUserVo.getAvatar().indexOf("data:image/png;") != -1) {
imageBase64Str = sysUserVo.getAvatar().replace("data:image/png;base64,", "");
fileName.append(".png");
} else if (sysUserVo.getAvatar().indexOf("data:image/jpeg;") != -1) {
imageBase64Str = sysUserVo.getAvatar().replace("data:image/jpeg;base64,", "");
fileName.append(".jpeg");
} else {
return new ApiResult<>(false);
}
File path;
try {
path = new File(ResourceUtils.getURL("classpath:").getPath());
if (!path.exists()) {
path = new File("");
}
File uploadPath = new File(path.getAbsolutePath(), imageRelativePath);
if (!uploadPath.exists()) {
uploadPath.mkdirs();
}
String relativeFile = imageRelativePath+"/"+fileName.toString();
File file = new File(uploadPath, fileName.toString());
byte[] fileBytes = Base64.getDecoder().decode(imageBase64Str);
FileUtils.writeByteArrayToFile(file, fileBytes);
sysUserVo.setUserId(userId);
sysUserVo.setAvatar(relativeFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
return new ApiResult<>(false);
}
//更新用户信息
result = sysUserService.updateInfoByUserId(sysUserVo);
}
return new ApiResult<>(result);
}