From 45ac0f23e12ac2a45c6affe9e39d0897e4fad618 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期四, 16 二月 2023 17:06:10 +0800 Subject: [PATCH] !286 合并 多租户功能 * add 新增 ruoyi-common-tenant 多租户模块 全框架适配多租户改动 * update 优化 隐藏页面主键 * remove 移除 缓存列表功能(多租户缓存功能繁杂多样 没有办法在页面管理) * update 重构 全局缓存KEY 与 常用缓存KEY做区分 * update 重构 OssFactory 加载方式 改为每次比对配置做实例更新 * update 优化 SaTokenDao 改为 Bean 注入 便于扩展 * update 重构 项目初始化数据改为懒加载 不提供热加载 * update 重构 验证码开关使用配置文件(经调查少有动态开启需求) * update 优化 启用 sqlserver 高版本语法 简化sql脚本语法 * update 优化 DataPermissionHelper 增加 开启/关闭 忽略数据权限功能 * update 优化 连接池增加 keepaliveTime 探活参数 * update 优化 调整连接池最长生命周期 防止出现警告 * update 优化 代码生成页面模板 校验不必要的表单数据 * add 新增 StringUtils splitTo 与 splitList 方法 优化业务代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/service/SysRegisterService.java | 29 +++++++++++++++++------------ 1 files changed, 17 insertions(+), 12 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java b/ruoyi-admin/src/main/java/com/ruoyi/web/service/SysRegisterService.java similarity index 69% rename from ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/service/SysRegisterService.java index 5621cb8..3f23c21 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/SysRegisterService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/service/SysRegisterService.java @@ -1,8 +1,8 @@ -package com.ruoyi.system.service; +package com.ruoyi.web.service; import cn.dev33.satoken.secure.BCrypt; -import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.constant.GlobalConstants; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.domain.model.RegisterBody; import com.ruoyi.common.core.enums.UserType; @@ -15,7 +15,9 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.log.event.LogininforEvent; import com.ruoyi.common.redis.utils.RedisUtils; +import com.ruoyi.common.web.config.properties.CaptchaProperties; import com.ruoyi.system.domain.bo.SysUserBo; +import com.ruoyi.system.service.ISysUserService; import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -30,22 +32,23 @@ public class SysRegisterService { private final ISysUserService userService; - private final ISysConfigService configService; + private final CaptchaProperties captchaProperties; /** * 娉ㄥ唽 */ public void register(RegisterBody registerBody) { HttpServletRequest request = ServletUtils.getRequest(); + String tenantId = registerBody.getTenantId(); String username = registerBody.getUsername(); String password = registerBody.getPassword(); // 鏍¢獙鐢ㄦ埛绫诲瀷鏄惁瀛樺湪 String userType = UserType.getUserType(registerBody.getUserType()).getUserType(); - boolean captchaEnabled = configService.selectCaptchaEnabled(); + boolean captchaEnabled = captchaProperties.getEnable(); // 楠岃瘉鐮佸紑鍏� if (captchaEnabled) { - validateCaptcha(username, registerBody.getCode(), registerBody.getUuid(), request); + validateCaptcha(tenantId, username, registerBody.getCode(), registerBody.getUuid(), request); } SysUserBo sysUser = new SysUserBo(); sysUser.setUserName(username); @@ -56,11 +59,11 @@ if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(sysUser))) { throw new UserException("user.register.save.error", username); } - boolean regFlag = userService.registerUser(sysUser); + boolean regFlag = userService.registerUser(sysUser, tenantId); if (!regFlag) { throw new UserException("user.register.error"); } - recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.register.success")); + recordLogininfor(tenantId, username, Constants.REGISTER, MessageUtils.message("user.register.success")); } /** @@ -71,16 +74,16 @@ * @param uuid 鍞竴鏍囪瘑 * @return 缁撴灉 */ - public void validateCaptcha(String username, String code, String uuid, HttpServletRequest request) { - String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, ""); + public void validateCaptcha(String tenantId, String username, String code, String uuid, HttpServletRequest request) { + String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + StringUtils.defaultString(uuid, ""); String captcha = RedisUtils.getCacheObject(verifyKey); RedisUtils.deleteObject(verifyKey); if (captcha == null) { - recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.jcaptcha.expire")); + recordLogininfor(tenantId, username, Constants.REGISTER, MessageUtils.message("user.jcaptcha.expire")); throw new CaptchaExpireException(); } if (!code.equalsIgnoreCase(captcha)) { - recordLogininfor(username, Constants.REGISTER, MessageUtils.message("user.jcaptcha.error")); + recordLogininfor(tenantId, username, Constants.REGISTER, MessageUtils.message("user.jcaptcha.error")); throw new CaptchaException(); } } @@ -88,13 +91,15 @@ /** * 璁板綍鐧诲綍淇℃伅 * + * @param tenantId 绉熸埛ID * @param username 鐢ㄦ埛鍚� * @param status 鐘舵�� * @param message 娑堟伅鍐呭 * @return */ - private void recordLogininfor(String username, String status, String message) { + private void recordLogininfor(String tenantId, String username, String status, String message) { LogininforEvent logininforEvent = new LogininforEvent(); + logininforEvent.setTenantId(tenantId); logininforEvent.setUsername(username); logininforEvent.setStatus(status); logininforEvent.setMessage(message); -- Gitblit v1.9.3