diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java index 22147c964..2408bb426 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysProfileController.java @@ -10,6 +10,7 @@ import org.dromara.common.core.domain.R; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.file.MimeTypeUtils; import org.dromara.common.encrypt.annotation.ApiEncrypt; +import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.satoken.utils.LoginHelper; @@ -61,12 +62,14 @@ public class SysProfileController extends BaseController { } /** - * 修改用户 + * 修改用户信息 */ + @RepeatSubmit @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping - public R updateProfile(@RequestBody SysUserProfileBo profile) { + public R updateProfile(@Validated @RequestBody SysUserProfileBo profile) { SysUserBo user = BeanUtil.toBean(profile, SysUserBo.class); + user.setUserId(LoginHelper.getUserId()); String username = LoginHelper.getUsername(); if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { return R.fail("修改用户'" + username + "'失败,手机号码已存在"); @@ -74,7 +77,6 @@ public class SysProfileController extends BaseController { if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { return R.fail("修改用户'" + username + "'失败,邮箱账号已存在"); } - user.setUserId(LoginHelper.getUserId()); if (userService.updateUserProfile(user) > 0) { return R.ok(); } @@ -86,6 +88,7 @@ public class SysProfileController extends BaseController { * * @param bo 新旧密码 */ + @RepeatSubmit @ApiEncrypt @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") @@ -110,6 +113,7 @@ public class SysProfileController extends BaseController { * * @param avatarfile 用户头像 */ + @RepeatSubmit @GlobalTransactional(rollbackFor = Exception.class) @Log(title = "用户头像", businessType = BusinessType.UPDATE) @PostMapping(value = "/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java index f85b2be93..03e0cc1de 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserProfileBo.java @@ -1,16 +1,17 @@ package org.dromara.system.domain.bo; +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; -import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.constant.RegexConstants; import org.dromara.common.core.xss.Xss; +import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.sensitive.annotation.Sensitive; import org.dromara.common.sensitive.core.SensitiveStrategy; -import jakarta.validation.constraints.Email; -import jakarta.validation.constraints.Size; - /** * 个人信息业务处理 * @@ -22,11 +23,6 @@ import jakarta.validation.constraints.Size; @EqualsAndHashCode(callSuper = true) public class SysUserProfileBo extends BaseEntity { - /** - * 用户ID - */ - private Long userId; - /** * 用户昵称 */ @@ -46,6 +42,7 @@ public class SysUserProfileBo extends BaseEntity { * 手机号码 */ @Sensitive(strategy = SensitiveStrategy.PHONE) + @Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式不正确") private String phonenumber; /**