mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-10 08:57:14 +08:00
新增:新增修改基础信息 API(优化 Jackson 针对通用枚举接口 IEnum 的序列化和反序列化)
This commit is contained in:
@@ -16,8 +16,6 @@
|
||||
|
||||
package top.charles7c.cnadmin.webapi.controller.system;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -27,23 +25,20 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.io.file.FileNameUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
|
||||
import top.charles7c.cnadmin.common.consts.FileConstants;
|
||||
import top.charles7c.cnadmin.common.model.dto.LoginUser;
|
||||
import top.charles7c.cnadmin.common.model.vo.R;
|
||||
import top.charles7c.cnadmin.common.util.FileUtils;
|
||||
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
|
||||
import top.charles7c.cnadmin.common.util.validate.CheckUtils;
|
||||
import top.charles7c.cnadmin.common.util.validate.ValidationUtils;
|
||||
import top.charles7c.cnadmin.system.model.entity.SysUser;
|
||||
import top.charles7c.cnadmin.system.model.request.UpdateBasicInfoRequest;
|
||||
import top.charles7c.cnadmin.system.model.vo.AvatarVO;
|
||||
import top.charles7c.cnadmin.system.service.UserService;
|
||||
|
||||
@@ -76,25 +71,18 @@ public class UserCenterController {
|
||||
ValidationUtils.exIfCondition(() -> !StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes),
|
||||
String.format("头像仅支持 %s 格式的图片", String.join(",", avatarSupportImgTypes)));
|
||||
|
||||
// 上传新头像
|
||||
String avatarPath = localStorageProperties.getPath().getAvatar();
|
||||
File newAvatarFile = FileUtils.upload(avatarFile, avatarPath, false);
|
||||
CheckUtils.exIfNull(newAvatarFile, "上传头像失败");
|
||||
|
||||
// 更新用户头像
|
||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||
String newAvatar = newAvatarFile.getName();
|
||||
userService.updateAvatar(newAvatar, loginUser.getUserId());
|
||||
|
||||
// 删除原头像
|
||||
String oldAvatar = loginUser.getAvatar();
|
||||
if (StrUtil.isNotBlank(loginUser.getAvatar())) {
|
||||
FileUtil.del(avatarPath + oldAvatar);
|
||||
}
|
||||
|
||||
// 更新登录用户信息
|
||||
loginUser.setAvatar(newAvatar);
|
||||
LoginHelper.updateLoginUser(loginUser);
|
||||
// 上传头像
|
||||
String newAvatar = userService.uploadAvatar(avatarFile, LoginHelper.getUserId());
|
||||
return R.ok("上传成功", new AvatarVO().setAvatar(newAvatar));
|
||||
}
|
||||
|
||||
@Operation(summary = "修改基础信息", description = "修改用户基础信息")
|
||||
@PatchMapping("/basic/info")
|
||||
public R updateBasicInfo(@Validated @RequestBody UpdateBasicInfoRequest updateBasicInfoRequest) {
|
||||
SysUser user = new SysUser();
|
||||
user.setUserId(LoginHelper.getUserId());
|
||||
BeanUtil.copyProperties(updateBasicInfoRequest, user);
|
||||
userService.update(user);
|
||||
return R.ok("修改成功");
|
||||
}
|
||||
}
|
||||
|
@@ -167,11 +167,11 @@ spring:
|
||||
# 序列化配置(Bean -> JSON)
|
||||
serialization:
|
||||
# 允许序列化无属性的 Bean
|
||||
fail_on_empty_beans: false
|
||||
FAIL_ON_EMPTY_BEANS: false
|
||||
# 反序列化配置(JSON -> Bean)
|
||||
deserialization:
|
||||
# 允许反序列化不存在的属性
|
||||
fail_on_unknown_properties: false
|
||||
FAIL_ON_UNKNOWN_PROPERTIES: false
|
||||
|
||||
--- ### 线程池配置
|
||||
thread-pool:
|
||||
|
Reference in New Issue
Block a user