From 477daddedbd96e912e89e20d0bc4526031e12a52 Mon Sep 17 00:00:00 2001 From: Github_lizhw <171332584@qq.com> Date: Sat, 7 Dec 2024 23:17:21 +0800 Subject: [PATCH] =?UTF-8?q?sso=20server=20=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/core/constant/CacheNames.java | 5 + ruoyi-modules/ruoyi-sso-server/Dockerfile | 4 +- ruoyi-modules/ruoyi-sso-server/pom.xml | 330 +++++++++--------- .../server/controller/CaptchaController.java | 78 ----- .../controller/SsoServerController.java | 74 +++- .../src/main/resources/application.yml | 27 ++ .../convert/SysSaasClientVoConvert.java | 17 + .../convert/SysSaasDictDataVoConvert.java | 18 + .../convert/SysSaasLogininforBoConvert.java | 18 + .../convert/SysSaasOperLogBoConvert.java | 27 ++ .../convert/SysSaasSocialBoConvert.java | 17 + .../convert/SysSaasSocialVoConvert.java | 17 + .../convert/SysSaasTenantVoConvert.java | 18 + .../domain/convert/SysSaasUserBoConvert.java | 28 ++ .../domain/convert/SysSaasUserVoConvert.java | 17 + .../impl/SysSaasClientServiceImpl.java | 8 +- 16 files changed, 443 insertions(+), 260 deletions(-) delete mode 100644 ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/CaptchaController.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasClientVoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasDictDataVoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasLogininforBoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasOperLogBoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialBoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialVoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasTenantVoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserBoConvert.java create mode 100644 ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserVoConvert.java diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java index 28ba17739..4b5557a97 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheNames.java @@ -40,6 +40,11 @@ public interface CacheNames { */ String SYS_CLIENT = GlobalConstants.GLOBAL_REDIS_KEY + "sys_client#30d"; + /** + * 客户端 + */ + String SYS_SAAS_CLIENT = GlobalConstants.GLOBAL_REDIS_KEY + "sys_saas_client#30d"; + /** * 用户账户 */ diff --git a/ruoyi-modules/ruoyi-sso-server/Dockerfile b/ruoyi-modules/ruoyi-sso-server/Dockerfile index 17bcaf20d..5caf3ac6c 100644 --- a/ruoyi-modules/ruoyi-sso-server/Dockerfile +++ b/ruoyi-modules/ruoyi-sso-server/Dockerfile @@ -11,7 +11,9 @@ RUN mkdir -p /ruoyi/server/logs \ WORKDIR /ruoyi/server -ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" +ENV SERVER_PORT=19000 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" +# 设置一个默认的容器名 +ENV CONTAINER_NAME ruoyi-sso-server EXPOSE ${SERVER_PORT} diff --git a/ruoyi-modules/ruoyi-sso-server/pom.xml b/ruoyi-modules/ruoyi-sso-server/pom.xml index 327e7d638..9dce97c94 100644 --- a/ruoyi-modules/ruoyi-sso-server/pom.xml +++ b/ruoyi-modules/ruoyi-sso-server/pom.xml @@ -1,184 +1,178 @@ - - org.dromara - ruoyi-modules - ${revision} - - 4.0.0 - ruoyi-sso-server - jar + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + + org.dromara + ruoyi-modules + ${revision} + + 4.0.0 + ruoyi-sso-server + jar - sso-server + sso-server - - - 1.38.0 - + + + 1.38.0 + - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - + - - - org.springframework.boot - spring-boot-starter-web - + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-common-redis + ${revision} + - - org.dromara - ruoyi-common-core - - - - org.dromara - ruoyi-common-redis - ${revision} - + + + org.dromara + ruoyi-common-tenant + ${revision} + - - - org.dromara - ruoyi-common-redis - - - - cn.dev33 - sa-token-spring-boot3-starter - + + + org.dromara + ruoyi-api-system + + + org.dromara + ruoyi-common-log + + + org.dromara + ruoyi-common-ratelimiter + - - - cn.dev33 - sa-token-jwt - + + org.dromara + ruoyi-common-social + + + org.dromara + ruoyi-common-encrypt + - - - - - - - cn.dev33 - sa-token-redis-jackson - 1.38.0 - - - org.apache.commons - commons-pool2 - - - - - cn.dev33 - sa-token-sso - 1.38.0 - - - - - cn.dev33 - sa-token-sso - 1.38.0 - - - - - - - - - - - - org.dromara - ruoyi-common-tenant - ${revision} - - - - - org.dromara - ruoyi-api-system - - - - - org.apache.dubbo - dubbo-spring-boot-starter - - - - org.apache.dubbo - dubbo-nacos-spring-boot-starter - + + + + + + - - - me.zhyd.oauth - JustAuth - 1.16.6 - - - org.dromara - ruoyi-common-log - - - org.dromara - ruoyi-common-ratelimiter - + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + - - cn.hutool - hutool-captcha - - - org.dromara - ruoyi-common-social - - - org.dromara - ruoyi-common-encrypt - + + + org.springframework.boot + spring-boot-starter-web + - - - - - - - - - - + + + cn.dev33 + sa-token-spring-boot3-starter + - - - ${project.artifactId} - - - org.springframework.boot - spring-boot-maven-plugin - ${spring-boot.version} - - - - repackage - - - - - - org.apache.maven.plugins - maven-jar-plugin - ${maven-jar-plugin.version} - - - + + + cn.dev33 + sa-token-jwt + + + + + cn.dev33 + sa-token-redis-jackson + 1.38.0 + + + org.apache.commons + commons-pool2 + + + + + cn.dev33 + sa-token-sso + 1.38.0 + + + + + cn.dev33 + sa-token-sso + 1.38.0 + + + + + org.apache.dubbo + dubbo-spring-boot-starter + + + + org.apache.dubbo + dubbo-nacos-spring-boot-starter + + + + + + me.zhyd.oauth + JustAuth + 1.16.6 + + + + cn.hutool + hutool-captcha + + + + + + + + + + + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot.version} + + + + repackage + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + diff --git a/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/CaptchaController.java b/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/CaptchaController.java deleted file mode 100644 index 6620ae65c..000000000 --- a/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/CaptchaController.java +++ /dev/null @@ -1,78 +0,0 @@ -package org.ruoyi.sso.server.controller; - -import cn.hutool.captcha.AbstractCaptcha; -import cn.hutool.captcha.generator.CodeGenerator; -import cn.hutool.core.util.IdUtil; -import org.ruoyi.sso.server.domain.vo.CaptchaVo; -import org.ruoyi.sso.server.enums.CaptchaType; -import org.ruoyi.sso.server.properties.CaptchaProperties; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.dromara.common.core.constant.Constants; -import org.dromara.common.core.constant.GlobalConstants; -import org.dromara.common.core.domain.R; -import org.dromara.common.core.utils.SpringUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.core.utils.reflect.ReflectUtils; -import org.dromara.common.ratelimiter.annotation.RateLimiter; -import org.dromara.common.ratelimiter.enums.LimitType; -import org.dromara.common.redis.utils.RedisUtils; -import org.springframework.expression.Expression; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.time.Duration; - -/** - * 验证码操作处理 - * - * @author Lion Li - */ -@Slf4j -@Validated -@RequiredArgsConstructor -@RestController -public class CaptchaController { - - private final CaptchaProperties captchaProperties; - - /** - * 生成验证码 - */ - @RateLimiter(time = 60, count = 10, limitType = LimitType.IP) - @GetMapping("/code") - public R getCode() { - CaptchaVo captchaVo = new CaptchaVo(); - boolean captchaEnabled = captchaProperties.getEnabled(); - if (!captchaEnabled) { - captchaVo.setCaptchaEnabled(false); - return R.ok(captchaVo); - } - // 保存验证码信息 - String uuid = IdUtil.simpleUUID(); - String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + uuid; - // 生成验证码 - CaptchaType captchaType = captchaProperties.getType(); - boolean isMath = CaptchaType.MATH == captchaType; - Integer length = isMath ? captchaProperties.getNumberLength() : captchaProperties.getCharLength(); - CodeGenerator codeGenerator = ReflectUtils.newInstance(captchaType.getClazz(), length); - AbstractCaptcha captcha = SpringUtils.getBean(captchaProperties.getCategory().getClazz()); - captcha.setGenerator(codeGenerator); - captcha.createCode(); - // 如果是数学验证码,使用SpEL表达式处理验证码结果 - String code = captcha.getCode(); - if (isMath) { - ExpressionParser parser = new SpelExpressionParser(); - Expression exp = parser.parseExpression(StringUtils.remove(code, "=")); - code = exp.getValue(String.class); - } - RedisUtils.setCacheObject(verifyKey, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION)); - captchaVo.setUuid(uuid); - captchaVo.setImg(captcha.getImageBase64()); - return R.ok(captchaVo); - } - -} diff --git a/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java b/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java index a6d5a9ece..250070866 100644 --- a/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java +++ b/ruoyi-modules/ruoyi-sso-server/src/main/java/org/ruoyi/sso/server/controller/SsoServerController.java @@ -10,30 +10,46 @@ import cn.dev33.satoken.sso.util.SaSsoConsts; import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.util.SaFoxUtil; import cn.dev33.satoken.util.SaResult; +import cn.hutool.captcha.AbstractCaptcha; +import cn.hutool.captcha.generator.CodeGenerator; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; -import org.ruoyi.sso.server.domain.vo.LoginVo; -import org.ruoyi.sso.server.service.IAuthStrategy; -import org.ruoyi.sso.server.service.SysLoginService; -import org.ruoyi.sso.server.config.satoken.LoginSaasHelper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.constant.Constants; +import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.core.constant.UserConstants; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.model.LoginBody; import org.dromara.common.core.utils.MessageUtils; +import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.ValidatorUtils; +import org.dromara.common.core.utils.reflect.ReflectUtils; +import org.dromara.common.encrypt.annotation.ApiEncrypt; import org.dromara.common.json.utils.JsonUtils; +import org.dromara.common.ratelimiter.annotation.RateLimiter; +import org.dromara.common.ratelimiter.enums.LimitType; +import org.dromara.common.redis.utils.RedisUtils; import org.dromara.system.api.RemoteClientService; import org.dromara.system.api.domain.vo.RemoteClientVo; +import org.ruoyi.sso.server.config.satoken.LoginSaasHelper; +import org.ruoyi.sso.server.domain.vo.CaptchaVo; +import org.ruoyi.sso.server.domain.vo.LoginVo; +import org.ruoyi.sso.server.enums.CaptchaType; +import org.ruoyi.sso.server.properties.CaptchaProperties; +import org.ruoyi.sso.server.service.IAuthStrategy; +import org.ruoyi.sso.server.service.SysLoginService; import org.springframework.beans.factory.annotation.Autowired; -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; +import org.springframework.expression.Expression; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import java.time.Duration; + /** * Sa-Token-SSO Server端 Controller * @@ -44,10 +60,49 @@ import org.springframework.web.servlet.ModelAndView; @Slf4j public class SsoServerController { private final SysLoginService sysLoginService; + private final CaptchaProperties captchaProperties; @DubboReference private RemoteClientService remoteClientService; + + /** + * 生成验证码 + */ + @RateLimiter(time = 60, count = 10, limitType = LimitType.IP) + @GetMapping("/sso/getCaptcha") + public R getCode() { + CaptchaVo captchaVo = new CaptchaVo(); + boolean captchaEnabled = captchaProperties.getEnabled(); + if (!captchaEnabled) { + captchaVo.setCaptchaEnabled(false); + return R.ok(captchaVo); + } + // 保存验证码信息 + String uuid = IdUtil.simpleUUID(); + String verifyKey = GlobalConstants.CAPTCHA_CODE_KEY + uuid; + // 生成验证码 + CaptchaType captchaType = captchaProperties.getType(); + boolean isMath = CaptchaType.MATH == captchaType; + Integer length = isMath ? captchaProperties.getNumberLength() : captchaProperties.getCharLength(); + CodeGenerator codeGenerator = ReflectUtils.newInstance(captchaType.getClazz(), length); + AbstractCaptcha captcha = SpringUtils.getBean(captchaProperties.getCategory().getClazz()); + captcha.setGenerator(codeGenerator); + captcha.createCode(); + // 如果是数学验证码,使用SpEL表达式处理验证码结果 + String code = captcha.getCode(); + if (isMath) { + ExpressionParser parser = new SpelExpressionParser(); + Expression exp = parser.parseExpression(StringUtils.remove(code, "=")); + code = exp.getValue(String.class); + } + RedisUtils.setCacheObject(verifyKey, code, Duration.ofMinutes(Constants.CAPTCHA_EXPIRATION)); + captchaVo.setUuid(uuid); + captchaVo.setImg(captcha.getImageBase64()); + return R.ok(captchaVo); + } + + /** * SSO-Server端:处理所有SSO相关请求 * http://{host}:{port}/sso/auth -- 单点登录授权地址,接受参数:redirect=授权重定向地址 @@ -65,9 +120,10 @@ public class SsoServerController { return SaSsoServerProcessor.instance.dister(); } -// @ApiEncrypt + @ApiEncrypt @PostMapping("/sso/doLogin") public Object ssoDoLoginRequest(@RequestBody String body) { + //todo 验证码提前验证,额外加上限流 LoginBody loginBody = JsonUtils.parseObject(body, LoginBody.class); ValidatorUtils.validate(loginBody); // 授权类型和客户端id diff --git a/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml b/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml index 762a2edd3..dd913088e 100644 --- a/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml +++ b/ruoyi-modules/ruoyi-sso-server/src/main/resources/application.yml @@ -56,8 +56,35 @@ sa-token: auth-url: http://localhost:5173/#/sso-login active-timeout: 30 + +# api接口加密 +api-decrypt: + # 是否开启全局接口加密 + enabled: true + # AES 加密头标识 + headerFlag: encrypt-key + # 响应加密公钥 非对称算法的公私钥 如:SM2,RSA 使用者请自行更换 + # 对应前端解密私钥 MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE= + publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJnNwrj4hi/y3CCJu868ghCG5dUj8wZK++RNlTLcXoMmdZWEQ/u02RgD5LyLAXGjLOjbMtC+/J9qofpSGTKSx/MCAwEAAQ== + # 请求解密私钥 非对称算法的公私钥 如:SM2,RSA 使用者请自行更换 + # 对应前端加密公钥 MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ== + privateKey: MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAqhHyZfSsYourNxaY7Nt+PrgrxkiA50efORdI5U5lsW79MmFnusUA355oaSXcLhu5xxB38SMSyP2KvuKNPuH3owIDAQABAkAfoiLyL+Z4lf4Myxk6xUDgLaWGximj20CUf+5BKKnlrK+Ed8gAkM0HqoTt2UZwA5E2MzS4EI2gjfQhz5X28uqxAiEA3wNFxfrCZlSZHb0gn2zDpWowcSxQAgiCstxGUoOqlW8CIQDDOerGKH5OmCJ4Z21v+F25WaHYPxCFMvwxpcw99EcvDQIgIdhDTIqD2jfYjPTY8Jj3EDGPbH2HHuffvflECt3Ek60CIQCFRlCkHpi7hthhYhovyloRYsM+IS9h/0BzlEAuO0ktMQIgSPT3aFAgJYwKpqRYKlLDVcflZFCKY7u3UP8iWi1Qw0Y= + + # ruoyi-security配置 security: + captcha: + enabled: true + # 页面 <参数设置> 可开启关闭 验证码校验 + # 验证码类型 math 数组计算 char 字符验证 + type: MATH + # line 线段干扰 circle 圆圈干扰 shear 扭曲干扰 + category: CIRCLE + # 数字验证码位数 + numberLength: 1 + # 字符验证码长度 + charLength: 4 + # 排除路径 excludes: # 静态资源 diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasClientVoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasClientVoConvert.java new file mode 100644 index 000000000..c7f5cbecf --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasClientVoConvert.java @@ -0,0 +1,17 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.vo.RemoteClientVo; +import org.dromara.system.saas.domain.vo.SysSaasClientVo; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 客户端数据转换器 + * + * @author Michelle.Chung + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasClientVoConvert extends BaseMapper { +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasDictDataVoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasDictDataVoConvert.java new file mode 100644 index 000000000..cf5955282 --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasDictDataVoConvert.java @@ -0,0 +1,18 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.vo.RemoteDictDataVo; +import org.dromara.system.saas.domain.vo.SysSaasDictDataVo; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 字典数据转换器 + * + * @author zhujie + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasDictDataVoConvert extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasLogininforBoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasLogininforBoConvert.java new file mode 100644 index 000000000..ae0a50558 --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasLogininforBoConvert.java @@ -0,0 +1,18 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.bo.RemoteLogininforBo; +import org.dromara.system.saas.domain.bo.SysSaasLogininforBo; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 登录日志转换器 + * + * @author zhujie + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasLogininforBoConvert extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasOperLogBoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasOperLogBoConvert.java new file mode 100644 index 000000000..f30a2fc89 --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasOperLogBoConvert.java @@ -0,0 +1,27 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.bo.RemoteOperLogBo; +import org.dromara.system.saas.domain.bo.SysSaasOperLogBo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 操作日志转换器 + * + * @author zhujie + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasOperLogBoConvert extends BaseMapper { + + /** + * RemoteOperLogBoToSysOperLogBo + * + * @param remoteOperLogBo 待转换对象 + * @return 转换后对象 + */ + @Mapping(target = "businessTypes", ignore = true) + SysSaasOperLogBo convert(RemoteOperLogBo remoteOperLogBo); +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialBoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialBoConvert.java new file mode 100644 index 000000000..7b5c62ada --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialBoConvert.java @@ -0,0 +1,17 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.bo.RemoteSocialBo; +import org.dromara.system.saas.domain.bo.SysSaasSocialBo; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 社交数据转换器 + * + * @author Michelle.Chung + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasSocialBoConvert extends BaseMapper { +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialVoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialVoConvert.java new file mode 100644 index 000000000..f76d54f1d --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasSocialVoConvert.java @@ -0,0 +1,17 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.vo.RemoteSocialVo; +import org.dromara.system.saas.domain.vo.SysSaasSocialVo; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 社交数据转换器 + * + * @author Michelle.Chung + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasSocialVoConvert extends BaseMapper { +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasTenantVoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasTenantVoConvert.java new file mode 100644 index 000000000..344930c03 --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasTenantVoConvert.java @@ -0,0 +1,18 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.vo.RemoteTenantVo; +import org.dromara.system.saas.domain.vo.SysSaasTenantVo; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 租户转换器 + * + * @author zhujie + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasTenantVoConvert extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserBoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserBoConvert.java new file mode 100644 index 000000000..16a87d98b --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserBoConvert.java @@ -0,0 +1,28 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.bo.RemoteUserBo; +import org.dromara.system.saas.domain.bo.SysSaasUserBo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 用户信息转换器 + * + * @author zhujie + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasUserBoConvert extends BaseMapper { + + /** + * RemoteUserBoToSysUserBo + * + * @param remoteUserBo 待转换对象 + * @return 转换后对象 + */ + @Mapping(target = "roleIds", ignore = true) + @Mapping(target = "postIds", ignore = true) + SysSaasUserBo convert(RemoteUserBo remoteUserBo); +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserVoConvert.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserVoConvert.java new file mode 100644 index 000000000..433012973 --- /dev/null +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/domain/convert/SysSaasUserVoConvert.java @@ -0,0 +1,17 @@ +package org.dromara.system.saas.domain.convert; + +import io.github.linpeilie.BaseMapper; +import org.dromara.system.api.domain.vo.RemoteUserVo; +import org.dromara.system.saas.domain.vo.SysSaasUserVo; +import org.mapstruct.Mapper; +import org.mapstruct.MappingConstants; +import org.mapstruct.ReportingPolicy; + +/** + * 租户转换器 + * @author zhujie + */ +@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE) +public interface SysSaasUserVoConvert extends BaseMapper { + +} diff --git a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/service/impl/SysSaasClientServiceImpl.java b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/service/impl/SysSaasClientServiceImpl.java index b9b20aa70..5e00d65d0 100644 --- a/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/service/impl/SysSaasClientServiceImpl.java +++ b/ruoyi-modules/ruoyi-system-saas/src/main/java/org/dromara/system/saas/service/impl/SysSaasClientServiceImpl.java @@ -51,7 +51,7 @@ public class SysSaasClientServiceImpl implements ISysSaasClientService { /** * 查询客户端管理 */ - @Cacheable(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId") + @Cacheable(cacheNames = CacheNames.SYS_SAAS_CLIENT, key = "#clientId") @Override public SysSaasClientVo queryByClientId(String clientId) { return baseMapper.selectVoOne(new LambdaQueryWrapper().eq(SysSaasClient::getClientId, clientId)); @@ -109,7 +109,7 @@ public class SysSaasClientServiceImpl implements ISysSaasClientService { /** * 修改客户端管理 */ - @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, key = "#bo.clientId") + @CacheEvict(cacheNames = CacheNames.SYS_SAAS_CLIENT, key = "#bo.clientId") @Override public Boolean updateByBo(SysSaasClientBo bo) { SysSaasClient update = MapstructUtils.convert(bo, SysSaasClient.class); @@ -121,7 +121,7 @@ public class SysSaasClientServiceImpl implements ISysSaasClientService { /** * 修改状态 */ - @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, key = "#clientId") + @CacheEvict(cacheNames = CacheNames.SYS_SAAS_CLIENT, key = "#clientId") @Override public int updateUserStatus(String clientId, String status) { return baseMapper.update(null, @@ -140,7 +140,7 @@ public class SysSaasClientServiceImpl implements ISysSaasClientService { /** * 批量删除客户端管理 */ - @CacheEvict(cacheNames = CacheNames.SYS_CLIENT, allEntries = true) + @CacheEvict(cacheNames = CacheNames.SYS_SAAS_CLIENT, allEntries = true) @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) {