From 6ab705308a284d4fd4019e1f8ea035ab856a297a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E7=BB=AA=E5=A3=AE?= <2235602974@qq.com> Date: Thu, 31 Mar 2022 17:42:53 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=20=E7=94=A8=E6=88=B7=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=20=20&=20=20=E5=BC=82=E5=B8=B8=20=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/2pigxx.sql | 2 + .../common/core/exception/ErrorCodes.java | 93 +++++++++++++++++++ .../pigx/common/core/util/MsgUtils.java | 37 ++++++++ .../resources/i18n/messages_zh_CN.properties | 24 +++++ .../admin/controller/RegisterController.java | 41 ++++++++ .../admin/controller/SysUserController.java | 6 +- .../pigx/admin/service/SysUserService.java | 7 ++ .../admin/service/impl/MobileServiceImpl.java | 6 +- .../service/impl/SysDictItemServiceImpl.java | 6 +- .../service/impl/SysDictServiceImpl.java | 6 +- .../service/impl/SysMenuServiceImpl.java | 4 +- .../service/impl/SysPostServiceImpl.java | 5 +- .../impl/SysPublicParamServiceImpl.java | 6 +- .../service/impl/SysRoleServiceImpl.java | 5 +- .../service/impl/SysUserServiceImpl.java | 59 +++++++++--- 15 files changed, 279 insertions(+), 28 deletions(-) create mode 100644 pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/ErrorCodes.java create mode 100644 pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/MsgUtils.java create mode 100644 pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RegisterController.java diff --git a/db/2pigxx.sql b/db/2pigxx.sql index 63a0b309a..e1ff670f2 100644 --- a/db/2pigxx.sql +++ b/db/2pigxx.sql @@ -562,6 +562,7 @@ INSERT INTO `sys_public_param` VALUES (5, '租户默认角色编码', 'TENANT_DE INSERT INTO `sys_public_param` VALUES (6, '租户默认角色名称', 'TENANT_DEFAULT_ROLENAME', '租户默认角色', '0', '', ' ', ' ', '2020-05-12 04:06:19', NULL, '2', '1', '0', 1); INSERT INTO `sys_public_param` VALUES (7, '表前缀', 'GEN_TABLE_PREFIX', 'tb_', '0', '', ' ', ' ', '2020-05-12 04:23:04', NULL, '9', '1', '0', 1); INSERT INTO `sys_public_param` VALUES (8, '接口文档不显示的字段', 'GEN_HIDDEN_COLUMNS', 'tenant_id', '0', '', ' ', ' ', '2020-05-12 04:25:19', NULL, '9', '1', '0', 1); +INSERT INTO `sys_public_param` VALUES (9, '注册用户默认角色', 'USER_DEFAULT_ROLE', 'GENERAL_USER', '0', NULL, ' ', ' ', '2022-03-31 16:52:24', NULL, '2', '1', '0', 1); COMMIT; -- ---------------------------- @@ -590,6 +591,7 @@ CREATE TABLE `sys_role` ( -- ---------------------------- BEGIN; INSERT INTO `sys_role` VALUES (1, '管理员', 'ROLE_ADMIN', '管理员', '3', '2', ' ', ' ', '2017-10-29 15:45:51', '2022-01-25 18:21:23', '0', 1); +INSERT INTO `sys_role` VALUES (2, '普通用户', 'GENERAL_USER', '普通用户', '3', NULL, ' ', ' ', '2022-03-31 17:03:15', NULL, '0', 1); COMMIT; -- ---------------------------- diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/ErrorCodes.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/ErrorCodes.java new file mode 100644 index 000000000..172eb2835 --- /dev/null +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/exception/ErrorCodes.java @@ -0,0 +1,93 @@ +package com.pig4cloud.pigx.common.core.exception; + +/** + * 错误编码 + * + * @author lengleng + * @date 2022/3/30 + */ +public interface ErrorCodes { + + /** + * 系统编码错误 + */ + String SYS_PARAM_CONFIG_ERROR = "sys.param.config.error"; + + /** + * 系统内置参数不能删除 + */ + String SYS_PARAM_DELETE_SYSTEM = "sys.param.delete.system"; + + /** + * 用户已存在 + */ + String SYS_USER_USERNAME_EXISTING = "sys.user.username.existing"; + + /** + * 用户原密码错误,修改失败 + */ + String SYS_USER_UPDATE_PASSWORDERROR = "sys.user.update.passwordError"; + + /** + * 用户信息为空 + */ + String SYS_USER_USERINFO_EMPTY = "sys.user.userInfo.empty"; + + /** + * 获取当前用户信息失败 + */ + String SYS_USER_QUERY_ERROR = "sys.user.query.error"; + + String SYS_USER_IMPORT_SUCCEED = "sys.user.import.succeed"; + + /** + * 部门名称不存在 + */ + String SYS_DEPT_DEPTNAME_INEXISTENCE = "sys.dept.deptName.inexistence"; + + /** + * 岗位名称不存在 + */ + String SYS_POST_POSTNAME_INEXISTENCE = "sys.post.postName.inexistence"; + + /** + * 岗位名称或编码已经存在 + */ + String SYS_POST_NAMEORCODE_EXISTING = "sys.post.nameOrCode.existing"; + + /** + * 角色名称不存在 + */ + String SYS_ROLE_ROLENAME_INEXISTENCE = "sys.role.roleName.inexistence"; + + /** + * 角色名或角色编码已经存在 + */ + String SYS_ROLE_NAMEORCODE_EXISTING = "sys.role.nameOrCode.existing"; + + /** + * 菜单存在下级节点 删除失败 + */ + String SYS_MENU_DELETE_EXISTING = "sys.menu.delete.existing"; + + /** + * 系统内置字典不允许删除 + */ + String SYS_DICT_DELETE_SYSTEM = "sys.dict.delete.system"; + + /** + * 系统内置字典不能修改 + */ + String SYS_DICT_UPDATE_SYSTEM = "sys.dict.update.system"; + + /** + * 验证码发送频繁 + */ + String SYS_APP_SMS_OFTEN = "sys.app.sms.often"; + + /** + * 手机号未注册 + */ + String SYS_APP_PHONE_UNREGISTERED = "sys.app.phone.unregistered"; + +} diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/MsgUtils.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/MsgUtils.java new file mode 100644 index 000000000..9ee192ce3 --- /dev/null +++ b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/MsgUtils.java @@ -0,0 +1,37 @@ +package com.pig4cloud.pigx.common.core.util; + +import lombok.experimental.UtilityClass; +import org.springframework.context.MessageSource; + +import java.util.Locale; + +/** + * i18n 工具类 + * + * @author lengleng + * @date 2022/3/30 + */ +@UtilityClass +public class MsgUtils { + + /** + * 通过code 获取中文错误信息 + * @param code + * @return + */ + public String getMessage(String code) { + MessageSource messageSource = SpringContextHolder.getBean("messageSource"); + return messageSource.getMessage(code, null, Locale.CHINA); + } + + /** + * 通过code 和参数获取中文错误信息 + * @param code + * @return + */ + public String getMessage(String code, Object... objects) { + MessageSource messageSource = SpringContextHolder.getBean("messageSource"); + return messageSource.getMessage(code, objects, Locale.CHINA); + } + +} diff --git a/pigx-common/pigx-common-core/src/main/resources/i18n/messages_zh_CN.properties b/pigx-common/pigx-common-core/src/main/resources/i18n/messages_zh_CN.properties index e69de29bb..974780564 100644 --- a/pigx-common/pigx-common-core/src/main/resources/i18n/messages_zh_CN.properties +++ b/pigx-common/pigx-common-core/src/main/resources/i18n/messages_zh_CN.properties @@ -0,0 +1,24 @@ +sys.user.update.passwordError=\u539F\u5BC6\u7801\u9519\u8BEF\uFF0C\u4FEE\u6539\u5931\u8D25 +sys.user.query.error=\u83B7\u53D6\u5F53\u524D\u7528\u6237\u4FE1\u606F\u5931\u8D25 +sys.user.import.succeed=\u7528\u6237\u5BFC\u5165\u6210\u529F\uFF0C\u9ED8\u8BA4\u5BC6\u7801\u4E3A\u624B\u673A\u53F7 +sys.user.username.existing={0} \u7528\u6237\u540D\u5DF2\u5B58\u5728 +sys.user.userInfo.empty={0} \u7528\u6237\u4FE1\u606F\u4E3A\u7A7A + +sys.dept.deptName.inexistence={0} \u90E8\u95E8\u540D\u79F0\u4E0D\u5B58\u5728 + +sys.post.postName.inexistence={0} \u5C97\u4F4D\u540D\u79F0\u4E0D\u5B58\u5728 +sys.post.nameOrCode.existing={0} {1} \u5C97\u4F4D\u540D\u6216\u5C97\u4F4D\u7F16\u7801\u5DF2\u7ECF\u5B58\u5728 + +sys.role.roleName.inexistence={0} \u89D2\u8272\u540D\u79F0\u4E0D\u5B58\u5728 +sys.role.nameOrCode.existing={0} {1} \u89D2\u8272\u540D\u6216\u89D2\u8272\u7F16\u7801\u5DF2\u7ECF\u5B58\u5728 + +sys.param.delete.system=\u7CFB\u7EDF\u5185\u7F6E\u53C2\u6570\u4E0D\u80FD\u5220\u9664 +sys.param.config.error={0} \u7CFB\u7EDF\u53C2\u6570\u914D\u7F6E\u9519\u8BEF + +sys.menu.delete.existing=\u83DC\u5355\u542B\u6709\u4E0B\u7EA7\u4E0D\u80FD\u5220\u9664 + +sys.app.sms.often=\u9A8C\u8BC1\u7801\u53D1\u9001\u8FC7\u9891\u7E41 +sys.app.phone.unregistered={0} \u624B\u673A\u53F7\u672A\u6CE8\u518C + +sys.dict.delete.system=\u7CFB\u7EDF\u5185\u7F6E\u5B57\u5178\u9879\u76EE\u4E0D\u80FD\u5220\u9664 +sys.dict.update.system=\u7CFB\u7EDF\u5185\u7F6E\u5B57\u5178\u9879\u76EE\u4E0D\u80FD\u4FEE\u6539 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RegisterController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RegisterController.java new file mode 100644 index 000000000..c674ec178 --- /dev/null +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/RegisterController.java @@ -0,0 +1,41 @@ +package com.pig4cloud.pigx.admin.controller; + +import com.pig4cloud.pigx.admin.api.dto.UserDTO; +import com.pig4cloud.pigx.admin.service.SysUserService; +import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.log.annotation.SysLog; +import com.pig4cloud.pigx.common.security.annotation.Inner; +import lombok.RequiredArgsConstructor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author lengleng + * @date 2022/3/30 + *

+ * 客户端注册功能 register.user = false + */ +@RestController +@RequestMapping("/register") +@RequiredArgsConstructor +@ConditionalOnProperty(name = "register.user", matchIfMissing = true) +public class RegisterController { + + private final SysUserService userService; + + /** + * 注册用户 + * @param userDto 用户信息 + * @return success/false + */ + @Inner(value = false) + @SysLog("注册用户") + @PostMapping("/user") + public R registerUser(@RequestBody UserDTO userDto) { + return userService.registerUser(userDto); + } + +} diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java index 308250c44..e174f3acb 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysUserController.java @@ -26,6 +26,8 @@ import com.pig4cloud.pigx.admin.api.dto.UserDTO; import com.pig4cloud.pigx.admin.api.entity.SysUser; import com.pig4cloud.pigx.admin.api.vo.UserExcelVO; import com.pig4cloud.pigx.admin.service.SysUserService; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.excel.annotation.RequestExcel; import com.pig4cloud.pigx.common.excel.annotation.ResponseExcel; @@ -64,7 +66,7 @@ public class SysUserController { public R info(@PathVariable String username) { SysUser user = userService.getOne(Wrappers.query().lambda().eq(SysUser::getUsername, username)); if (user == null) { - return R.failed(null, String.format("用户信息为空 %s", username)); + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_USERINFO_EMPTY, username)); } return R.ok(userService.findUserInfo(user)); } @@ -78,7 +80,7 @@ public class SysUserController { String username = SecurityUtils.getUser().getUsername(); SysUser user = userService.getOne(Wrappers.query().lambda().eq(SysUser::getUsername, username)); if (user == null) { - return R.failed(null, "获取当前用户信息失败"); + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_QUERY_ERROR)); } return R.ok(userService.findUserInfo(user)); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java index 4bcbcc1ff..ac38eba8d 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/SysUserService.java @@ -110,4 +110,11 @@ public interface SysUserService extends IService { */ R importUser(List excelVOList, BindingResult bindingResult); + /** + * 注册用户 + * @param userDto 用户信息 + * @return success/false + */ + R registerUser(UserDTO userDto); + } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java index 82dfdd456..cf85d076c 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/MobileServiceImpl.java @@ -27,6 +27,8 @@ import com.pig4cloud.pigx.admin.service.MobileService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.SecurityConstants; import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; import com.pig4cloud.pigx.common.core.util.R; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -63,7 +65,7 @@ public class MobileServiceImpl implements MobileService { if (CollUtil.isEmpty(userList)) { log.info("手机号未注册:{}", mobile); - return R.ok(Boolean.FALSE, "手机号未注册"); + return R.ok(Boolean.FALSE, MsgUtils.getMessage(ErrorCodes.SYS_APP_PHONE_UNREGISTERED, mobile)); } Object codeObj = redisTemplate.opsForValue() @@ -71,7 +73,7 @@ public class MobileServiceImpl implements MobileService { if (codeObj != null) { log.info("手机号验证码未过期:{},{}", mobile, codeObj); - return R.ok(Boolean.FALSE, "验证码发送过频繁"); + return R.ok(Boolean.FALSE, MsgUtils.getMessage(ErrorCodes.SYS_APP_SMS_OFTEN)); } String code = RandomUtil.randomNumbers(Integer.parseInt(SecurityConstants.CODE_SIZE)); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDictItemServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDictItemServiceImpl.java index 0ffb6dc69..c9a1a2da0 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDictItemServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysDictItemServiceImpl.java @@ -24,6 +24,8 @@ import com.pig4cloud.pigx.admin.service.SysDictItemService; import com.pig4cloud.pigx.admin.service.SysDictService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.enums.DictTypeEnum; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; import com.pig4cloud.pigx.common.core.util.R; import lombok.AllArgsConstructor; import org.springframework.cache.annotation.CacheEvict; @@ -54,7 +56,7 @@ public class SysDictItemServiceImpl extends ServiceImpl impl SysDict dict = this.getById(id); // 系统内置 if (DictTypeEnum.SYSTEM.getType().equals(dict.getSystemFlag())) { - return R.failed("系统内置字典不能删除"); + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_DICT_DELETE_SYSTEM)); } baseMapper.deleteById(id); @@ -74,7 +76,7 @@ public class SysDictServiceImpl extends ServiceImpl impl SysDict sysDict = this.getById(dict.getId()); // 系统内置 if (DictTypeEnum.SYSTEM.getType().equals(sysDict.getSystemFlag())) { - return R.failed("系统内置字典不能修改"); + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_DICT_UPDATE_SYSTEM)); } return R.ok(this.updateById(dict)); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java index 48317ffa1..792a2d8de 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysMenuServiceImpl.java @@ -34,6 +34,8 @@ import com.pig4cloud.pigx.admin.service.SysMenuService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.constant.enums.MenuTypeEnum; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; import com.pig4cloud.pigx.common.core.util.R; import lombok.AllArgsConstructor; import org.springframework.beans.BeanUtils; @@ -78,7 +80,7 @@ public class SysMenuServiceImpl extends ServiceImpl impl // 查询父节点为当前节点的节点 List menuList = this.list(Wrappers.query().lambda().eq(SysMenu::getParentId, id)); if (CollUtil.isNotEmpty(menuList)) { - return R.failed("菜单含有下级不能删除"); + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_MENU_DELETE_EXISTING)); } sysRoleMenuMapper.delete(Wrappers.query().lambda().eq(SysRoleMenu::getMenuId, id)); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPostServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPostServiceImpl.java index 31b82e6d8..c4c7027da 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPostServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPostServiceImpl.java @@ -24,6 +24,8 @@ import com.pig4cloud.pigx.admin.api.entity.SysPost; import com.pig4cloud.pigx.admin.api.vo.PostExcelVO; import com.pig4cloud.pigx.admin.mapper.SysPostMapper; import com.pig4cloud.pigx.admin.service.SysPostService; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.excel.vo.ErrorMessage; import org.springframework.stereotype.Service; @@ -66,7 +68,8 @@ public class SysPostServiceImpl extends ServiceImpl impl || excel.getPostCode().equals(post.getPostCode())); if (existPost) { - errorMsg.add(String.format("%s %s 岗位名或岗位编码已经存在", excel.getPostName(), excel.getPostCode())); + errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_POST_NAMEORCODE_EXISTING, excel.getPostName(), + excel.getPostCode())); } // 数据合法情况 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java index 24070c101..b35d2d691 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysPublicParamServiceImpl.java @@ -24,6 +24,8 @@ import com.pig4cloud.pigx.admin.mapper.SysPublicParamMapper; import com.pig4cloud.pigx.admin.service.SysPublicParamService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.enums.DictTypeEnum; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; import com.pig4cloud.pigx.common.core.util.R; import lombok.AllArgsConstructor; import org.springframework.cache.annotation.CacheEvict; @@ -64,7 +66,7 @@ public class SysPublicParamServiceImpl extends ServiceImpl impl || excel.getRoleCode().equals(sysRole.getRoleCode())); if (existRole) { - errorMsg.add(String.format("%s %s 角色名或角色编码已经存在", excel.getRoleName(), excel.getRoleDesc())); + errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_ROLE_NAMEORCODE_EXISTING, excel.getRoleName(), + excel.getRoleCode())); } // 数据合法情况 diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java index 229e8dcd9..804b10ce5 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysUserServiceImpl.java @@ -36,8 +36,11 @@ import com.pig4cloud.pigx.admin.mapper.SysUserPostMapper; import com.pig4cloud.pigx.admin.service.*; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.data.datascope.DataScope; +import com.pig4cloud.pigx.common.data.resolver.ParamResolver; import com.pig4cloud.pigx.common.excel.vo.ErrorMessage; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -50,10 +53,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import java.time.LocalDateTime; -import java.util.HashSet; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -91,12 +91,14 @@ public class SysUserServiceImpl extends ServiceImpl impl sysUser.setPassword(ENCODER.encode(userDto.getPassword())); baseMapper.insert(sysUser); // 保存用户岗位信息 - userDto.getPost().stream().map(postId -> { - SysUserPost userPost = new SysUserPost(); - userPost.setUserId(sysUser.getUserId()); - userPost.setPostId(postId); - return userPost; - }).forEach(sysUserPostMapper::insert); + Optional.ofNullable(userDto.getPost()).ifPresent(posts -> { + posts.stream().map(postId -> { + SysUserPost userPost = new SysUserPost(); + userPost.setUserId(sysUser.getUserId()); + userPost.setPostId(postId); + return userPost; + }).forEach(sysUserPostMapper::insert); + }); List userRoleList = userDto.getRole().stream().map(roleId -> { SysUserRole userRole = new SysUserRole(); userRole.setUserId(sysUser.getUserId()); @@ -172,7 +174,7 @@ public class SysUserServiceImpl extends ServiceImpl impl UserVO userVO = baseMapper.getUserVoByUsername(userDto.getUsername()); if (!ENCODER.matches(userDto.getPassword(), userVO.getPassword())) { log.info("原密码错误,修改个人信息失败:{}", userDto.getUsername()); - return R.failed("原密码错误,修改个人信息失败"); + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_UPDATE_PASSWORDERROR)); } SysUser sysUser = new SysUser(); @@ -283,14 +285,14 @@ public class SysUserServiceImpl extends ServiceImpl impl .anyMatch(sysUser -> excel.getUsername().equals(sysUser.getUsername())); if (exsitUserName) { - errorMsg.add(String.format("%s 用户名已存在", excel.getUsername())); + errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, excel.getUsername())); } // 判断输入的部门名称列表是否合法 Optional deptOptional = deptList.stream() .filter(dept -> excel.getDeptName().equals(dept.getName())).findFirst(); if (!deptOptional.isPresent()) { - errorMsg.add(String.format("%s 部门名称不存在", excel.getDeptName())); + errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_DEPT_DEPTNAME_INEXISTENCE, excel.getDeptName())); } // 判断输入的角色名称列表是否合法 @@ -300,7 +302,7 @@ public class SysUserServiceImpl extends ServiceImpl impl .collect(Collectors.toList()); if (roleCollList.size() != roleNameList.size()) { - errorMsg.add(String.format("%s 角色名称不存在", excel.getRoleNameList())); + errorMsg.add(MsgUtils.getMessage(ErrorCodes.SYS_ROLE_ROLENAME_INEXISTENCE, excel.getRoleNameList())); } // 数据合法情况 @@ -317,7 +319,7 @@ public class SysUserServiceImpl extends ServiceImpl impl if (CollUtil.isNotEmpty(errorMessageList)) { return R.failed(errorMessageList); } - return R.ok(null, "用户导入成功,默认密码为手机号"); + return R.ok(null, MsgUtils.getMessage(ErrorCodes.SYS_USER_IMPORT_SUCCEED)); } /** @@ -341,4 +343,31 @@ public class SysUserServiceImpl extends ServiceImpl impl this.saveUser(userDTO); } + /** + * 注册用户 赋予用户默认角色 + * @param userDto 用户信息 + * @return success/false + */ + @Override + public R registerUser(UserDTO userDto) { + // 判断用户名是否存在 + SysUser sysUser = this.getOne(Wrappers.lambdaQuery().eq(SysUser::getUsername, userDto.getUsername())); + if (sysUser != null) { + String message = MsgUtils.getMessage(ErrorCodes.SYS_USER_USERNAME_EXISTING, userDto.getUsername()); + return R.failed(message); + } + + // 获取默认角色编码 + String defaultRole = ParamResolver.getStr("USER_DEFAULT_ROLE"); + // 默认角色 + SysRole sysRole = sysRoleService.getOne(Wrappers.lambdaQuery().eq(SysRole::getRoleCode, defaultRole)); + + if (sysRole == null) { + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_PARAM_CONFIG_ERROR, "USER_DEFAULT_ROLE")); + } + + userDto.setRole(Collections.singletonList(sysRole.getRoleId())); + return R.ok(saveUser(userDto)); + } + }