From 6071d82987536c2b18073adbd82698cc90b7bde3 Mon Sep 17 00:00:00 2001 From: wuchao Date: Thu, 27 Mar 2025 18:00:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=94=A8=E6=88=B7=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=82=AE=E7=AE=B1=E5=92=8C=E5=AF=86=E7=A0=81=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- front/src/utils/i18n/languages/en-us.js | 2 + front/src/utils/i18n/languages/zh-cn.js | 2 + front/src/views/admin/user/index.vue | 45 ++++++++++++++++--- .../java/cn/torna/service/dto/UserAddDTO.java | 3 ++ .../web/controller/admin/UserController.java | 9 +++- .../admin/param/UserCreateParam.java | 7 +++ 6 files changed, 61 insertions(+), 7 deletions(-) diff --git a/front/src/utils/i18n/languages/en-us.js b/front/src/utils/i18n/languages/en-us.js index 7fd29e5b..8e019fb6 100644 --- a/front/src/utils/i18n/languages/en-us.js +++ b/front/src/utils/i18n/languages/en-us.js @@ -480,6 +480,8 @@ export default { 'randomPassword': ' Random Password', 'passwordNotEmpty': 'Password not empty', 'shareName': 'Share Name', + "emailFormatError": 'Email format error', + "suggestPassword": 'Empty generate a default password', // ---- common end ---- // ---- 组件特有的,key表示组件名称(文件夹名称) ---- RichTextEditor: { diff --git a/front/src/utils/i18n/languages/zh-cn.js b/front/src/utils/i18n/languages/zh-cn.js index 95fdd39e..122bd70c 100644 --- a/front/src/utils/i18n/languages/zh-cn.js +++ b/front/src/utils/i18n/languages/zh-cn.js @@ -481,6 +481,8 @@ export default { 'randomPassword': ' 随机密码', 'passwordNotEmpty': '密码不能为空', 'shareName': '分享名称', + "emailFormatError": '邮箱校验失败', + "suggestPassword": '不填会生成默认密码', // ---- common end ---- // ---- 组件特有的,key表示组件名称(文件夹名称) ---- RichTextEditor: { diff --git a/front/src/views/admin/user/index.vue b/front/src/views/admin/user/index.vue index fe4b9eb0..b38c3777 100644 --- a/front/src/views/admin/user/index.vue +++ b/front/src/views/admin/user/index.vue @@ -152,6 +152,12 @@ label-width="120px" size="mini" > + + + - + + + + { this.tipSuccess($t('operateSuccess')) this.dialogVisible = false + this.isUpdate = false this.loadTable() }) } else { @@ -326,6 +348,7 @@ export default { const data = resp.data this.alert($t('addUserSuccess', data.username, data.password), $t('createSuccess')) this.dialogVisible = false + this.isUpdate = false this.loadTable() }) } @@ -345,6 +368,7 @@ export default { nickname: '', isSuperAdmin: 0 } + this.isUpdate = false }, onPageIndexChange(pageIndex) { this.searchFormData.pageIndex = pageIndex @@ -375,6 +399,17 @@ export default { this.tipSuccess($t('operateSuccess')) this.chooseProjectShow = false }) + }, + validateEmail(rule, value, callback) { + if (!value) { + return callback(); + } + const emailPattern = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/; + if (!emailPattern.test(value)) { + callback(new Error($t('emailFormatError'))); + } else { + callback(); + } } } } diff --git a/server/server-service/src/main/java/cn/torna/service/dto/UserAddDTO.java b/server/server-service/src/main/java/cn/torna/service/dto/UserAddDTO.java index f8836f26..853f0bd1 100644 --- a/server/server-service/src/main/java/cn/torna/service/dto/UserAddDTO.java +++ b/server/server-service/src/main/java/cn/torna/service/dto/UserAddDTO.java @@ -24,4 +24,7 @@ public class UserAddDTO { private Byte status; + /** 邮箱, 数据库字段:email */ + private String email; + } diff --git a/server/server-web/src/main/java/cn/torna/web/controller/admin/UserController.java b/server/server-web/src/main/java/cn/torna/web/controller/admin/UserController.java index 44cbb20b..cb3ee898 100644 --- a/server/server-web/src/main/java/cn/torna/web/controller/admin/UserController.java +++ b/server/server-web/src/main/java/cn/torna/web/controller/admin/UserController.java @@ -79,13 +79,18 @@ public class UserController { @PostMapping("create") public Result create(@RequestBody UserCreateParam param) { UserAddDTO userAddDTO = CopyUtil.copyBean(param, UserAddDTO::new); - userAddDTO.setPassword(DigestUtils.md5DigestAsHex(initPassword.getBytes(StandardCharsets.UTF_8))); + String password = param.getPassword(); + if (org.apache.commons.lang3.StringUtils.isEmpty(password)) { + password = initPassword; + } + userAddDTO.setPassword(DigestUtils.md5DigestAsHex(password.getBytes(StandardCharsets.UTF_8))); userAddDTO.setStatus(UserStatusEnum.SET_PASSWORD.getStatus()); userAddDTO.setSourceEnum(UserInfoSourceEnum.BACKEND); + userAddDTO.setEmail(param.getEmail()); userInfoService.addUser(userAddDTO); UserCreateVO userCreateVO = new UserCreateVO(); userCreateVO.setUsername(param.getUsername()); - userCreateVO.setPassword(initPassword); + userCreateVO.setPassword(password); return Result.ok(userCreateVO); } diff --git a/server/server-web/src/main/java/cn/torna/web/controller/admin/param/UserCreateParam.java b/server/server-web/src/main/java/cn/torna/web/controller/admin/param/UserCreateParam.java index 064b86e0..90b1b2ae 100644 --- a/server/server-web/src/main/java/cn/torna/web/controller/admin/param/UserCreateParam.java +++ b/server/server-web/src/main/java/cn/torna/web/controller/admin/param/UserCreateParam.java @@ -16,6 +16,13 @@ public class UserCreateParam { @NotBlank private String nickname; + /** 密码, 数据库字段:password */ + @NotBlank + private String password; + + /** 邮箱, 数据库字段: email */ + private String email; + @NotNull private Byte isSuperAdmin; -- Gitee