diff --git a/config/nacos/application-common.yml b/config/nacos/application-common.yml index 8249270b..e60c9d3e 100644 --- a/config/nacos/application-common.yml +++ b/config/nacos/application-common.yml @@ -100,8 +100,8 @@ spring: redis: host: localhost port: 6379 - # 密码(如没有密码请注释掉) - # password: + # redis 密码必须配置 + password: ruoyi123 database: 0 timeout: 10s ssl.enabled: false diff --git a/config/nacos/ruoyi-gateway.yml b/config/nacos/ruoyi-gateway.yml index ba82112a..b51856f7 100644 --- a/config/nacos/ruoyi-gateway.yml +++ b/config/nacos/ruoyi-gateway.yml @@ -92,6 +92,8 @@ spring: server-addr: ${spring.cloud.nacos.server-addr} dataId: sentinel-${spring.application.name}.json groupId: ${spring.cloud.nacos.config.group} + username: ${spring.cloud.nacos.username} + password: ${spring.cloud.nacos.password} namespace: ${spring.profiles.active} data-type: json rule-type: gw-flow diff --git a/docker/rabbitmq/Dockerfile b/docker/rabbitmq/Dockerfile index 2fd2d79d..47e0a05e 100644 --- a/docker/rabbitmq/Dockerfile +++ b/docker/rabbitmq/Dockerfile @@ -1,6 +1,6 @@ FROM rabbitmq:3.13.3-management -MAINTAINER Lion Li +LABEL maintainer="Lion Li" ADD ./rabbitmq_delayed_message_exchange-3.13.0.ez /plugins diff --git a/docker/skywalking/agent/plugins/apm-seata-skywalking-plugin-1.7.1.jar b/docker/skywalking/agent/plugins/apm-seata-skywalking-plugin-1.7.1.jar new file mode 100644 index 00000000..2e944fa4 Binary files /dev/null and b/docker/skywalking/agent/plugins/apm-seata-skywalking-plugin-1.7.1.jar differ diff --git a/docker/skywalking/agent/plugins/apm-seata-skywalking-plugin-2.1.0.jar b/docker/skywalking/agent/plugins/apm-seata-skywalking-plugin-2.1.0.jar deleted file mode 100644 index 5f9d562e..00000000 Binary files a/docker/skywalking/agent/plugins/apm-seata-skywalking-plugin-2.1.0.jar and /dev/null differ diff --git a/pom.xml b/pom.xml index abeb7a18..3ba38fce 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ RuoYi-Cloud-Plus微服务系统 - 2.2.0-BETA2 + 2.2.0 UTF-8 UTF-8 17 diff --git a/ruoyi-api/ruoyi-api-bom/pom.xml b/ruoyi-api/ruoyi-api-bom/pom.xml index 748bcb68..8bdae831 100644 --- a/ruoyi-api/ruoyi-api-bom/pom.xml +++ b/ruoyi-api/ruoyi-api-bom/pom.xml @@ -15,7 +15,7 @@ - 2.2.0-BETA2 + 2.2.0 diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java index 2b79e22f..5ce7c5a0 100644 --- a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteFileServiceMock.java @@ -20,6 +20,7 @@ public class RemoteFileServiceMock implements RemoteFileService { * @param file 文件信息 * @return 结果 */ + @Override public RemoteFile upload(String name, String originalFilename, String contentType, byte[] file) { log.warn("服务调用异常 -> 降级处理"); return null; @@ -31,11 +32,18 @@ public class RemoteFileServiceMock implements RemoteFileService { * @param ossIds ossId串逗号分隔 * @return url串逗号分隔 */ + @Override public String selectUrlByIds(String ossIds) { log.warn("服务调用异常 -> 降级处理"); return StringUtils.EMPTY; } + /** + * 通过ossId查询列表 + * + * @param ossIds ossId串逗号分隔 + * @return 列表 + */ @Override public List selectByIds(String ossIds) { log.warn("服务调用异常 -> 降级处理"); diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageService.java b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageService.java index c6ea3f51..6c168507 100644 --- a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageService.java +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageService.java @@ -15,5 +15,10 @@ public interface RemoteMessageService { */ void publishMessage(Long sessionKey, String message); + /** + * 发布订阅的消息(群发) + * + * @param message 消息内容 + */ void publishAll(String message); } diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageServiceStub.java b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageServiceStub.java index 3c9ec8bf..68f55401 100644 --- a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageServiceStub.java +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteMessageServiceStub.java @@ -20,6 +20,7 @@ public class RemoteMessageServiceStub implements RemoteMessageService { * @param sessionKey session主键 一般为用户id * @param message 消息文本 */ + @Override public void publishMessage(Long sessionKey, String message) { try { remoteMessageService.publishMessage(sessionKey, message); @@ -28,6 +29,12 @@ public class RemoteMessageServiceStub implements RemoteMessageService { } } + /** + * 发布订阅的消息(群发) + * + * @param message 消息内容 + */ + @Override public void publishAll(String message) { try { remoteMessageService.publishAll(message); diff --git a/ruoyi-auth/Dockerfile b/ruoyi-auth/Dockerfile index 406bb65d..393ab9e5 100644 --- a/ruoyi-auth/Dockerfile +++ b/ruoyi-auth/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/auth/logs \ /ruoyi/auth/temp \ @@ -9,6 +11,10 @@ RUN mkdir -p /ruoyi/auth/logs \ WORKDIR /ruoyi/auth +# 补全alpine镜像缺失字体问题 +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +RUN apk add fontconfig && apk add --update ttf-dejavu && fc-cache --force + ENV SERVER_PORT=9210 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" EXPOSE ${SERVER_PORT} diff --git a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java index 1b652297..20293ccb 100644 --- a/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java +++ b/ruoyi-auth/src/main/java/org/dromara/auth/service/impl/SocialAuthStrategy.java @@ -14,8 +14,8 @@ import org.apache.dubbo.config.annotation.DubboReference; import org.dromara.auth.domain.vo.LoginVo; import org.dromara.auth.form.SocialLoginBody; import org.dromara.auth.service.IAuthStrategy; -import org.dromara.auth.service.SysLoginService; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.ValidatorUtils; import org.dromara.common.json.utils.JsonUtils; import org.dromara.common.satoken.utils.LoginHelper; @@ -43,7 +43,6 @@ import java.util.Optional; public class SocialAuthStrategy implements IAuthStrategy { private final SocialProperties socialProperties; - private final SysLoginService loginService; @DubboReference private RemoteSocialService remoteSocialService; @@ -83,7 +82,7 @@ public class SocialAuthStrategy implements IAuthStrategy { } RemoteSocialVo socialVo; if (TenantHelper.isEnable()) { - Optional opt = list.stream().filter(x -> x.getTenantId().equals(loginBody.getTenantId())).findAny(); + Optional opt = StreamUtils.findAny(list, x -> x.getTenantId().equals(loginBody.getTenantId())); if (opt.isEmpty()) { throw new ServiceException("对不起,你没有权限登录当前租户!"); } diff --git a/ruoyi-common/ruoyi-common-alibaba-bom/pom.xml b/ruoyi-common/ruoyi-common-alibaba-bom/pom.xml index 57504d4b..e2f4f110 100644 --- a/ruoyi-common/ruoyi-common-alibaba-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-alibaba-bom/pom.xml @@ -14,7 +14,7 @@ - 2.2.0-BETA2 + 2.2.0 2023.0.1.0 1.8.8 1.7.1 diff --git a/ruoyi-common/ruoyi-common-bom/pom.xml b/ruoyi-common/ruoyi-common-bom/pom.xml index 0b599698..dcafd753 100644 --- a/ruoyi-common/ruoyi-common-bom/pom.xml +++ b/ruoyi-common/ruoyi-common-bom/pom.xml @@ -14,7 +14,7 @@ - 2.2.0-BETA2 + 2.2.0 @@ -40,6 +40,7 @@ ${revision} + org.dromara ruoyi-common-satoken @@ -88,91 +89,105 @@ ${revision} + org.dromara ruoyi-common-job ${revision} + org.dromara ruoyi-common-dubbo ${revision} + org.dromara ruoyi-common-seata ${revision} + org.dromara ruoyi-common-loadbalancer ${revision} + org.dromara ruoyi-common-oss ${revision} - + org.dromara ruoyi-common-ratelimiter ${revision} + org.dromara ruoyi-common-idempotent ${revision} + org.dromara ruoyi-common-mail ${revision} + org.dromara ruoyi-common-sms ${revision} + org.dromara ruoyi-common-logstash ${revision} + org.dromara ruoyi-common-elasticsearch ${revision} + org.dromara ruoyi-common-sentinel ${revision} + org.dromara ruoyi-common-skylog ${revision} + org.dromara ruoyi-common-prometheus ${revision} + org.dromara ruoyi-common-translation @@ -193,6 +208,7 @@ ${revision} + org.dromara ruoyi-common-encrypt @@ -206,24 +222,28 @@ ${revision} + org.dromara ruoyi-common-websocket ${revision} + org.dromara ruoyi-common-social ${revision} + org.dromara ruoyi-common-nacos ${revision} + org.dromara ruoyi-common-bus diff --git a/ruoyi-common/ruoyi-common-bus/pom.xml b/ruoyi-common/ruoyi-common-bus/pom.xml index d89de614..e0256f86 100644 --- a/ruoyi-common/ruoyi-common-bus/pom.xml +++ b/ruoyi-common/ruoyi-common-bus/pom.xml @@ -12,7 +12,7 @@ ruoyi-common-bus - ruoyi-common-bus 模块 + ruoyi-common-bus 消息总线模块 @@ -25,6 +25,11 @@ + + + + + diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java index 967612ef..f9e53a50 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/StreamUtils.java @@ -34,6 +34,34 @@ public class StreamUtils { return collection.stream().filter(function).collect(Collectors.toList()); } + /** + * 找到流中满足条件的第一个元素 + * + * @param collection 需要查询的集合 + * @param function 过滤方法 + * @return 找到符合条件的第一个元素,没有则返回null + */ + public static E findFirst(Collection collection, Predicate function) { + if (CollUtil.isEmpty(collection)) { + return null; + } + return collection.stream().filter(function).findFirst().orElse(null); + } + + /** + * 找到流中任意一个满足条件的元素 + * + * @param collection 需要查询的集合 + * @param function 过滤方法 + * @return 找到符合条件的任意一个元素,没有则返回null + */ + public static Optional findAny(Collection collection, Predicate function) { + if (CollUtil.isEmpty(collection)) { + return Optional.empty(); + } + return collection.stream().filter(function).findAny(); + } + /** * 将collection拼接 * diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java index f94f9164..bc9c371e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/ValidatorUtils.java @@ -18,6 +18,13 @@ public class ValidatorUtils { private static final Validator VALID = SpringUtils.getBean(Validator.class); + /** + * 对给定对象进行参数校验,并根据指定的校验组进行校验 + * + * @param object 要进行校验的对象 + * @param groups 校验组 + * @throws ConstraintViolationException 如果校验不通过,则抛出参数校验异常 + */ public static void validate(T object, Class... groups) { Set> validate = VALID.validate(object, groups); if (!validate.isEmpty()) { diff --git a/ruoyi-common/ruoyi-common-dubbo/pom.xml b/ruoyi-common/ruoyi-common-dubbo/pom.xml index b5cee969..5f0088c3 100644 --- a/ruoyi-common/ruoyi-common-dubbo/pom.xml +++ b/ruoyi-common/ruoyi-common-dubbo/pom.xml @@ -12,7 +12,7 @@ ruoyi-common-dubbo - ruoyi-common-dubbo + ruoyi-common-dubbo RPC服务 diff --git a/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/utils/JsonUtils.java b/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/utils/JsonUtils.java index 42af8daf..65c2faae 100644 --- a/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/utils/JsonUtils.java +++ b/ruoyi-common/ruoyi-common-json/src/main/java/org/dromara/common/json/utils/JsonUtils.java @@ -7,10 +7,10 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.exc.MismatchedInputException; -import org.dromara.common.core.utils.SpringUtils; -import org.dromara.common.core.utils.StringUtils; import lombok.AccessLevel; import lombok.NoArgsConstructor; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.common.core.utils.StringUtils; import java.io.IOException; import java.util.ArrayList; @@ -30,6 +30,13 @@ public class JsonUtils { return OBJECT_MAPPER; } + /** + * 将对象转换为JSON格式的字符串 + * + * @param object 要转换的对象 + * @return JSON格式的字符串,如果对象为null,则返回null + * @throws RuntimeException 如果转换过程中发生JSON处理异常,则抛出运行时异常 + */ public static String toJsonString(Object object) { if (ObjectUtil.isNull(object)) { return null; @@ -41,6 +48,15 @@ public class JsonUtils { } } + /** + * 将JSON格式的字符串转换为指定类型的对象 + * + * @param text JSON格式的字符串 + * @param clazz 要转换的目标对象类型 + * @param 目标对象的泛型类型 + * @return 转换后的对象,如果字符串为空则返回null + * @throws RuntimeException 如果转换过程中发生IO异常,则抛出运行时异常 + */ public static T parseObject(String text, Class clazz) { if (StringUtils.isEmpty(text)) { return null; @@ -52,6 +68,15 @@ public class JsonUtils { } } + /** + * 将字节数组转换为指定类型的对象 + * + * @param bytes 字节数组 + * @param clazz 要转换的目标对象类型 + * @param 目标对象的泛型类型 + * @return 转换后的对象,如果字节数组为空则返回null + * @throws RuntimeException 如果转换过程中发生IO异常,则抛出运行时异常 + */ public static T parseObject(byte[] bytes, Class clazz) { if (ArrayUtil.isEmpty(bytes)) { return null; @@ -63,6 +88,15 @@ public class JsonUtils { } } + /** + * 将JSON格式的字符串转换为指定类型的对象,支持复杂类型 + * + * @param text JSON格式的字符串 + * @param typeReference 指定类型的TypeReference对象 + * @param 目标对象的泛型类型 + * @return 转换后的对象,如果字符串为空则返回null + * @throws RuntimeException 如果转换过程中发生IO异常,则抛出运行时异常 + */ public static T parseObject(String text, TypeReference typeReference) { if (StringUtils.isBlank(text)) { return null; @@ -74,6 +108,13 @@ public class JsonUtils { } } + /** + * 将JSON格式的字符串转换为Dict对象 + * + * @param text JSON格式的字符串 + * @return 转换后的Dict对象,如果字符串为空或者不是JSON格式则返回null + * @throws RuntimeException 如果转换过程中发生IO异常,则抛出运行时异常 + */ public static Dict parseMap(String text) { if (StringUtils.isBlank(text)) { return null; @@ -88,6 +129,13 @@ public class JsonUtils { } } + /** + * 将JSON格式的字符串转换为Dict对象的列表 + * + * @param text JSON格式的字符串 + * @return 转换后的Dict对象的列表,如果字符串为空则返回null + * @throws RuntimeException 如果转换过程中发生IO异常,则抛出运行时异常 + */ public static List parseArrayMap(String text) { if (StringUtils.isBlank(text)) { return null; @@ -99,6 +147,15 @@ public class JsonUtils { } } + /** + * 将JSON格式的字符串转换为指定类型对象的列表 + * + * @param text JSON格式的字符串 + * @param clazz 要转换的目标对象类型 + * @param 目标对象的泛型类型 + * @return 转换后的对象的列表,如果字符串为空则返回空列表 + * @throws RuntimeException 如果转换过程中发生IO异常,则抛出运行时异常 + */ public static List parseArray(String text, Class clazz) { if (StringUtils.isEmpty(text)) { return new ArrayList<>(); diff --git a/ruoyi-common/ruoyi-common-mail/src/main/java/org/dromara/common/mail/config/MailConfig.java b/ruoyi-common/ruoyi-common-mail/src/main/java/org/dromara/common/mail/config/MailConfig.java deleted file mode 100644 index 1b51c272..00000000 --- a/ruoyi-common/ruoyi-common-mail/src/main/java/org/dromara/common/mail/config/MailConfig.java +++ /dev/null @@ -1,37 +0,0 @@ -package org.dromara.common.mail.config; - -import org.dromara.common.mail.config.properties.MailProperties; -import org.dromara.common.mail.utils.MailAccount; -import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; - -/** - * JavaMail 配置 - * - * @author Michelle.Chung - */ -@AutoConfiguration -@EnableConfigurationProperties(MailProperties.class) -public class MailConfig { - - @Bean - @ConditionalOnProperty(value = "mail.enabled", havingValue = "true") - public MailAccount mailAccount(MailProperties mailProperties) { - MailAccount account = new MailAccount(); - account.setHost(mailProperties.getHost()); - account.setPort(mailProperties.getPort()); - account.setAuth(mailProperties.getAuth()); - account.setFrom(mailProperties.getFrom()); - account.setUser(mailProperties.getUser()); - account.setPass(mailProperties.getPass()); - account.setSocketFactoryPort(mailProperties.getPort()); - account.setStarttlsEnable(mailProperties.getStarttlsEnable()); - account.setSslEnable(mailProperties.getSslEnable()); - account.setTimeout(mailProperties.getTimeout()); - account.setConnectionTimeout(mailProperties.getConnectionTimeout()); - return account; - } - -} diff --git a/ruoyi-common/ruoyi-common-nacos/pom.xml b/ruoyi-common/ruoyi-common-nacos/pom.xml index bdee2fd2..9a87e45b 100644 --- a/ruoyi-common/ruoyi-common-nacos/pom.xml +++ b/ruoyi-common/ruoyi-common-nacos/pom.xml @@ -11,7 +11,7 @@ ruoyi-common-nacos - ruoyi-common-nacos + ruoyi-common-nacos 配置中心 diff --git a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java index 3fc3aac0..67be2fb7 100644 --- a/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java +++ b/ruoyi-common/ruoyi-common-redis/src/main/java/org/dromara/common/redis/utils/RedisUtils.java @@ -65,6 +65,12 @@ public class RedisUtils { consumer.accept(msg); } + /** + * 发布消息到指定的频道 + * + * @param channelKey 通道key + * @param msg 发送数据 + */ public static void publish(String channelKey, T msg) { RTopic topic = CLIENT.getTopic(channelKey); topic.publish(msg); diff --git a/ruoyi-common/ruoyi-common-satoken/pom.xml b/ruoyi-common/ruoyi-common-satoken/pom.xml index 733927be..ecdb7630 100644 --- a/ruoyi-common/ruoyi-common-satoken/pom.xml +++ b/ruoyi-common/ruoyi-common-satoken/pom.xml @@ -12,7 +12,7 @@ ruoyi-common-satoken - ruoyi-common-satoken + ruoyi-common-satoken 权限认证服务 diff --git a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java index ae067e89..896d3726 100644 --- a/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java +++ b/ruoyi-common/ruoyi-common-satoken/src/main/java/org/dromara/common/satoken/utils/LoginHelper.java @@ -193,7 +193,11 @@ public class LoginHelper { * @return 结果 */ public static boolean isLogin() { - return getLoginUser() != null; + try { + return getLoginUser() != null; + } catch (Exception e) { + return false; + } } } diff --git a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java index 0f789286..39092cce 100644 --- a/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java +++ b/ruoyi-common/ruoyi-common-web/src/main/java/org/dromara/common/web/config/UndertowConfig.java @@ -16,15 +16,12 @@ import org.springframework.core.task.VirtualThreadTaskExecutor; @AutoConfiguration public class UndertowConfig implements WebServerFactoryCustomizer { - /** - * 设置 Undertow 的 websocket 缓冲池 - */ @Override public void customize(UndertowServletWebServerFactory factory) { // 默认不直接分配内存 如果项目中使用了 websocket 建议直接分配 factory.addDeploymentInfoCustomizers(deploymentInfo -> { WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo(); - webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(false, 512)); + webSocketDeploymentInfo.setBuffers(new DefaultByteBufferPool(true, 1024)); deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo); // 使用虚拟线程 if (SpringUtils.isVirtual()) { diff --git a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java index 9f570a3a..fafe699d 100644 --- a/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java +++ b/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java @@ -1,5 +1,6 @@ package org.dromara.common.websocket.interceptor; +import cn.dev33.satoken.exception.NotLoginException; import lombok.extern.slf4j.Slf4j; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.system.api.model.LoginUser; @@ -31,9 +32,14 @@ public class PlusWebSocketInterceptor implements HandshakeInterceptor { */ @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map attributes) { - LoginUser loginUser = LoginHelper.getLoginUser(); - attributes.put(LOGIN_USER_KEY, loginUser); - return true; + try { + LoginUser loginUser = LoginHelper.getLoginUser(); + attributes.put(LOGIN_USER_KEY, loginUser); + return true; + } catch (NotLoginException e) { + log.error("WebSocket 认证失败'{}',无法访问系统资源", e.getMessage()); + return false; + } } /** diff --git a/ruoyi-gateway/Dockerfile b/ruoyi-gateway/Dockerfile index a0b24dbf..ae82e1f6 100644 --- a/ruoyi-gateway/Dockerfile +++ b/ruoyi-gateway/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/gateway/logs \ /ruoyi/gateway/temp \ diff --git a/ruoyi-modules/ruoyi-gen/Dockerfile b/ruoyi-modules/ruoyi-gen/Dockerfile index 5e7dab3f..82454309 100644 --- a/ruoyi-modules/ruoyi-gen/Dockerfile +++ b/ruoyi-modules/ruoyi-gen/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/gen/logs diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/service.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/service.java.vm index f1fa3d99..9f69eacd 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/service.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/service.java.vm @@ -21,33 +21,53 @@ public interface I${ClassName}Service { /** * 查询${functionName} + * + * @param ${pkColumn.javaField} 主键 + * @return ${functionName} */ ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}); #if($table.crud) /** - * 查询${functionName}列表 + * 分页查询${functionName}列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return ${functionName}分页列表 */ TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery); #end /** - * 查询${functionName}列表 + * 查询符合条件的${functionName}列表 + * + * @param bo 查询条件 + * @return ${functionName}列表 */ List<${ClassName}Vo> queryList(${ClassName}Bo bo); /** * 新增${functionName} + * + * @param bo ${functionName} + * @return 是否新增成功 */ Boolean insertByBo(${ClassName}Bo bo); /** * 修改${functionName} + * + * @param bo ${functionName} + * @return 是否修改成功 */ Boolean updateByBo(${ClassName}Bo bo); /** * 校验并批量删除${functionName}信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid); } diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl.java.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl.java.vm index e0642f1a..67690ca6 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl.java.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/java/serviceImpl.java.vm @@ -35,6 +35,9 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { /** * 查询${functionName} + * + * @param ${pkColumn.javaField} 主键 + * @return ${functionName} */ @Override public ${ClassName}Vo queryById(${pkColumn.javaType} ${pkColumn.javaField}){ @@ -43,7 +46,11 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { #if($table.crud) /** - * 查询${functionName}列表 + * 分页查询${functionName}列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return ${functionName}分页列表 */ @Override public TableDataInfo<${ClassName}Vo> queryPageList(${ClassName}Bo bo, PageQuery pageQuery) { @@ -54,7 +61,10 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { #end /** - * 查询${functionName}列表 + * 查询符合条件的${functionName}列表 + * + * @param bo 查询条件 + * @return ${functionName}列表 */ @Override public List<${ClassName}Vo> queryList(${ClassName}Bo bo) { @@ -91,6 +101,9 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { /** * 新增${functionName} + * + * @param bo ${functionName} + * @return 是否新增成功 */ @Override public Boolean insertByBo(${ClassName}Bo bo) { @@ -106,6 +119,9 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { /** * 修改${functionName} + * + * @param bo ${functionName} + * @return 是否修改成功 */ @Override public Boolean updateByBo(${ClassName}Bo bo) { @@ -122,7 +138,11 @@ public class ${ClassName}ServiceImpl implements I${ClassName}Service { } /** - * 批量删除${functionName} + * 校验并批量删除${functionName}信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 */ @Override public Boolean deleteWithValidByIds(Collection<${pkColumn.javaType}> ids, Boolean isValid) { diff --git a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/ts/types.ts.vm b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/ts/types.ts.vm index 4e0ab5ee..c3f6ed1f 100644 --- a/ruoyi-modules/ruoyi-gen/src/main/resources/vm/ts/types.ts.vm +++ b/ruoyi-modules/ruoyi-gen/src/main/resources/vm/ts/types.ts.vm @@ -1,6 +1,6 @@ export interface ${BusinessName}VO { #foreach ($column in $columns) -#if($column.insert || $column.edit) +#if($column.list) /** * $column.columnComment */ @@ -35,6 +35,7 @@ export interface ${BusinessName}Form extends BaseEntity { } export interface ${BusinessName}Query #if(!${treeCode})extends PageQuery #end{ + #foreach ($column in $columns) #if($column.query) /** @@ -47,4 +48,11 @@ export interface ${BusinessName}Query #if(!${treeCode})extends PageQuery #end{ #end #end #end + /** + * 日期范围参数 + */ + params?: any; } + + + diff --git a/ruoyi-modules/ruoyi-job/Dockerfile b/ruoyi-modules/ruoyi-job/Dockerfile index 2f182dda..4c9c194f 100644 --- a/ruoyi-modules/ruoyi-job/Dockerfile +++ b/ruoyi-modules/ruoyi-job/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/job/logs \ /ruoyi/job/temp \ diff --git a/ruoyi-modules/ruoyi-resource/Dockerfile b/ruoyi-modules/ruoyi-resource/Dockerfile index 78569b9d..05991dbe 100644 --- a/ruoyi-modules/ruoyi-resource/Dockerfile +++ b/ruoyi-modules/ruoyi-resource/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/resource/logs \ /ruoyi/resource/temp \ diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java index f3fe1478..61d0371d 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteFileServiceImpl.java @@ -81,6 +81,7 @@ public class RemoteFileServiceImpl implements RemoteFileService { * @param ossIds ossId串逗号分隔 * @return 列表 */ + @Override public List selectByIds(String ossIds){ List sysOssVos = sysOssService.listByIds(StringUtils.splitTo(ossIds, Convert::toLong)); return MapstructUtils.convert(sysOssVos, RemoteFile.class); diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteMailServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteMailServiceImpl.java index 81badffe..b31c65fa 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteMailServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteMailServiceImpl.java @@ -26,6 +26,7 @@ public class RemoteMailServiceImpl implements RemoteMailService { * @param subject 标题 * @param text 内容 */ + @Override public void send(String to, String subject, String text) throws ServiceException { MailUtils.sendText(to, subject, text); } diff --git a/ruoyi-modules/ruoyi-system/Dockerfile b/ruoyi-modules/ruoyi-system/Dockerfile index 1984ac3c..9414ea04 100644 --- a/ruoyi-modules/ruoyi-system/Dockerfile +++ b/ruoyi-modules/ruoyi-system/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/system/logs \ /ruoyi/system/temp \ diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java index b00b1fb1..07901bce 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysDeptController.java @@ -75,8 +75,6 @@ public class SysDeptController extends BaseController { public R add(@Validated @RequestBody SysDeptBo dept) { if (!deptService.checkDeptNameUnique(dept)) { return R.fail("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在"); - } else if (StringUtils.isNotBlank(dept.getDeptCategory()) && !deptService.checkDeptCategoryUnique(dept)) { - return R.fail("新增部门'" + dept.getDeptName() + "'失败,部门类别编码已存在"); } return toAjax(deptService.insertDept(dept)); } @@ -92,8 +90,6 @@ public class SysDeptController extends BaseController { deptService.checkDeptDataScope(deptId); if (!deptService.checkDeptNameUnique(dept)) { return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在"); - } else if (StringUtils.isNotBlank(dept.getDeptCategory()) && !deptService.checkDeptCategoryUnique(dept)) { - return R.fail("修改部门'" + dept.getDeptName() + "'失败,部门类别编码已存在"); } else if (dept.getParentId().equals(deptId)) { return R.fail("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己"); } else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java index 011254ea..7ad2759b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java @@ -103,6 +103,11 @@ public class SysUserBo extends BaseEntity { */ private Long roleId; + /** + * 排除不查询的用户(工作流用) + */ + private String excludeUserIds; + public SysUserBo(Long userId) { this.userId = userId; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java index bc9a4665..dbd417b9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java @@ -18,6 +18,12 @@ public class RemoteDeptServiceImpl implements RemoteDeptService { private final ISysDeptService sysDeptService; + /** + * 通过部门ID查询部门名称 + * + * @param deptIds 部门ID串逗号分隔 + * @return 部门名称串逗号分隔 + */ @Override public String selectDeptNameByIds(String deptIds) { return sysDeptService.selectDeptNameByIds(deptIds); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java index 10f9dffe..1caf755c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDictServiceImpl.java @@ -23,7 +23,12 @@ public class RemoteDictServiceImpl implements RemoteDictService { private final ISysDictTypeService sysDictTypeService; - + /** + * 根据字典类型查询字典数据 + * + * @param dictType 字典类型 + * @return 字典数据集合信息 + */ @Override public List selectDictDataByType(String dictType) { List list = sysDictTypeService.selectDictDataByType(dictType); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java index bcb0e058..48a8d489 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteLogServiceImpl.java @@ -26,6 +26,11 @@ public class RemoteLogServiceImpl implements RemoteLogService { private final ISysOperLogService operLogService; private final ISysLogininforService logininforService; + /** + * 保存系统日志 + * + * @param remoteOperLogBo 日志实体 + */ @Async @Override public void saveLog(RemoteOperLogBo remoteOperLogBo) { @@ -33,6 +38,11 @@ public class RemoteLogServiceImpl implements RemoteLogService { operLogService.insertOperlog(sysOperLogBo); } + /** + * 保存访问记录 + * + * @param remoteLogininforBo 访问实体 + */ @Async @Override public void saveLogininfor(RemoteLogininforBo remoteLogininforBo) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java index 7adf2584..b5e1af1e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteSocialServiceImpl.java @@ -26,7 +26,10 @@ public class RemoteSocialServiceImpl implements RemoteSocialService { private final ISysSocialService sysSocialService; /** - * 根据 authId 查询用户信息 + * 根据 authId 查询用户授权信息 + * + * @param authId 认证id + * @return 授权信息 */ @Override public List selectByAuthId(String authId) { @@ -34,6 +37,11 @@ public class RemoteSocialServiceImpl implements RemoteSocialService { return MapstructUtils.convert(list, RemoteSocialVo.class); } + /** + * 查询列表 + * + * @param bo 社会化关系业务对象 + */ @Override public List queryList(RemoteSocialBo bo) { SysSocialBo params = MapstructUtils.convert(bo, SysSocialBo.class); @@ -43,6 +51,8 @@ public class RemoteSocialServiceImpl implements RemoteSocialService { /** * 保存社会化关系 + * + * @param bo 社会化关系业务对象 */ @Override public void insertByBo(RemoteSocialBo bo) { @@ -51,6 +61,8 @@ public class RemoteSocialServiceImpl implements RemoteSocialService { /** * 更新社会化关系 + * + * @param bo 社会化关系业务对象 */ @Override public void updateByBo(RemoteSocialBo bo) { @@ -59,6 +71,9 @@ public class RemoteSocialServiceImpl implements RemoteSocialService { /** * 删除社会化关系 + * + * @param socialId 社会化关系ID + * @return 结果 */ @Override public Boolean deleteWithValidById(Long socialId) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java index 36871495..5c017abf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteUserServiceImpl.java @@ -46,6 +46,13 @@ public class RemoteUserServiceImpl implements RemoteUserService { private final ISysDeptService deptService; private final SysUserMapper userMapper; + /** + * 通过用户名查询用户信息 + * + * @param username 用户名 + * @param tenantId 租户id + * @return 结果 + */ @Override public LoginUser getUserInfo(String username, String tenantId) throws UserException { return TenantHelper.dynamic(tenantId, () -> { @@ -62,6 +69,13 @@ public class RemoteUserServiceImpl implements RemoteUserService { }); } + /** + * 通过用户id查询用户信息 + * + * @param userId 用户id + * @param tenantId 租户id + * @return 结果 + */ @Override public LoginUser getUserInfo(Long userId, String tenantId) throws UserException { return TenantHelper.dynamic(tenantId, () -> { @@ -78,6 +92,13 @@ public class RemoteUserServiceImpl implements RemoteUserService { }); } + /** + * 通过手机号查询用户信息 + * + * @param phonenumber 手机号 + * @param tenantId 租户id + * @return 结果 + */ @Override public LoginUser getUserInfoByPhonenumber(String phonenumber, String tenantId) throws UserException { return TenantHelper.dynamic(tenantId, () -> { @@ -94,6 +115,13 @@ public class RemoteUserServiceImpl implements RemoteUserService { }); } + /** + * 通过邮箱查询用户信息 + * + * @param email 邮箱 + * @param tenantId 租户id + * @return 结果 + */ @Override public LoginUser getUserInfoByEmail(String email, String tenantId) throws UserException { return TenantHelper.dynamic(tenantId, () -> { @@ -110,6 +138,12 @@ public class RemoteUserServiceImpl implements RemoteUserService { }); } + /** + * 通过openid查询用户信息 + * + * @param openid openid + * @return 结果 + */ @Override public XcxLoginUser getUserInfoByOpenid(String openid) throws UserException { // todo 自行实现 userService.selectUserByOpenid(openid); @@ -131,6 +165,12 @@ public class RemoteUserServiceImpl implements RemoteUserService { return loginUser; } + /** + * 注册用户信息 + * + * @param remoteUserBo 用户信息 + * @return 结果 + */ @Override public Boolean registerUserInfo(RemoteUserBo remoteUserBo) throws UserException, ServiceException { SysUserBo sysUserBo = MapstructUtils.convert(remoteUserBo, SysUserBo.class); @@ -219,7 +259,7 @@ public class RemoteUserServiceImpl implements RemoteUserService { loginUser.setRolePermission(permissionService.getRolePermission(userVo.getUserId())); TenantHelper.dynamic(userVo.getTenantId(), () -> { SysDeptVo dept = null; - if (ObjectUtil.isNotNull(userVo.getUserId())) { + if (ObjectUtil.isNotNull(userVo.getDeptId())) { dept = deptService.selectDeptById(userVo.getDeptId()); } loginUser.setDeptName(ObjectUtil.isNull(dept) ? "" : dept.getDeptName()); @@ -246,12 +286,24 @@ public class RemoteUserServiceImpl implements RemoteUserService { DataPermissionHelper.ignore(() -> userMapper.updateById(sysUser)); } + /** + * 通过用户ID查询用户列表 + * + * @param userIds 用户ids + * @return 用户列表 + */ @Override public List selectListByIds(List userIds) { List sysUserVos = userService.selectUserByIds(userIds, null); return MapstructUtils.convert(sysUserVos, RemoteUserVo.class); } + /** + * 通过角色ID查询用户ID + * + * @param roleIds 角色ids + * @return 用户ids + */ @Override public List selectUserIdsByRoleIds(List roleIds) { return userService.selectUserIdsByRoleIds(roleIds); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java index b4fc94cc..d0d7c93e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysDeptService.java @@ -100,13 +100,6 @@ public interface ISysDeptService { */ boolean checkDeptNameUnique(SysDeptBo dept); - /** - * 校验部门类别编码是否唯一 - * - * @param dept 部门信息 - * @return 结果 - */ - boolean checkDeptCategoryUnique(SysDeptBo dept); /** * 校验部门是否有数据权限 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java index 57d34b69..099dee42 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysSocialService.java @@ -12,45 +12,60 @@ import java.util.List; */ public interface ISysSocialService { - /** - * 查询社会化关系 + * 根据ID查询社会化关系 + * + * @param id 社会化关系的唯一标识符 + * @return 返回与给定ID对应的SysSocialVo对象,如果未找到则返回null */ SysSocialVo queryById(String id); /** * 查询社会化关系列表 + * + * @param bo 用于过滤查询条件的SysSocialBo对象 + * @return 返回符合条件的SysSocialVo对象列表 */ List queryList(SysSocialBo bo); /** - * 查询社会化关系列表 + * 根据用户ID查询社会化关系列表 + * + * @param userId 用户的唯一标识符 + * @return 返回与给定用户ID相关联的SysSocialVo对象列表 */ List queryListByUserId(Long userId); /** * 新增授权关系 + * + * @param bo 包含新增授权关系信息的SysSocialBo对象 + * @return 返回新增操作的结果,成功返回true,失败返回false */ Boolean insertByBo(SysSocialBo bo); /** * 更新社会化关系 + * + * @param bo 包含更新信息的SysSocialBo对象 + * @return 返回更新操作的结果,成功返回true,失败返回false */ - Boolean updateByBo(SysSocialBo bo); /** * 删除社会化关系信息 + * + * @param id 要删除的社会化关系的唯一标识符 + * @return 返回删除操作的结果,成功返回true,失败返回false */ Boolean deleteWithValidById(Long id); - /** - * 根据 authId 查询 SysSocial 表和 SysUser 表,返回 SysSocialAuthResult 映射的对象 + * 根据认证ID查询社会化关系和用户信息 + * * @param authId 认证ID - * @return SysSocial + * @return 返回包含SysSocial和用户信息的SysSocialVo对象列表 */ List selectByAuthId(String authId); - } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java index d421e313..f4c1a40b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java @@ -223,20 +223,6 @@ public class SysDeptServiceImpl implements ISysDeptService { return !exist; } - /** - * 校验部门类别编码是否唯一 - * - * @param dept 部门信息 - * @return 结果 - */ - @Override - public boolean checkDeptCategoryUnique(SysDeptBo dept) { - boolean exist = baseMapper.exists(new LambdaQueryWrapper() - .eq(SysDept::getDeptCategory, dept.getDeptCategory()) - .ne(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId())); - return !exist; - } - /** * 校验部门是否有数据权限 * diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java index 3f72ae36..49ceacf1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java @@ -37,7 +37,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; -import java.util.stream.Collectors; /** * 角色 业务层处理 @@ -106,7 +105,7 @@ public class SysRoleServiceImpl implements ISysRoleService { List userRoles = baseMapper.selectRolesByUserId(userId); List roles = selectRoleAll(); // 使用HashSet提高查找效率 - Set userRoleIds = userRoles.stream().map(SysRoleVo::getRoleId).collect(Collectors.toSet()); + Set userRoleIds = StreamUtils.toSet(userRoles, SysRoleVo::getRoleId); for (SysRoleVo role : roles) { if (userRoleIds.contains(role.getRoleId())) { role.setFlag(true); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java index d8eed0f3..365045ce 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysSocialServiceImpl.java @@ -26,9 +26,11 @@ public class SysSocialServiceImpl implements ISysSocialService { private final SysSocialMapper baseMapper; - /** - * 查询社会化关系 + * 根据ID查询社会化关系 + * + * @param id 社会化关系的唯一标识符 + * @return 返回与给定ID对应的SysSocialVo对象,如果未找到则返回null */ @Override public SysSocialVo queryById(String id) { @@ -36,7 +38,10 @@ public class SysSocialServiceImpl implements ISysSocialService { } /** - * 授权列表 + * 查询社会化关系列表 + * + * @param bo 用于过滤查询条件的SysSocialBo对象 + * @return 返回符合条件的SysSocialVo对象列表 */ @Override public List queryList(SysSocialBo bo) { @@ -47,14 +52,22 @@ public class SysSocialServiceImpl implements ISysSocialService { return baseMapper.selectVoList(lqw); } + /** + * 根据用户ID查询社会化关系列表 + * + * @param userId 用户的唯一标识符 + * @return 返回与给定用户ID相关联的SysSocialVo对象列表 + */ @Override public List queryListByUserId(Long userId) { return baseMapper.selectVoList(new LambdaQueryWrapper().eq(SysSocial::getUserId, userId)); } - /** - * 新增社会化关系 + * 新增授权关系 + * + * @param bo 包含新增授权关系信息的SysSocialBo对象 + * @return 返回新增操作的结果,成功返回true,失败返回false */ @Override public Boolean insertByBo(SysSocialBo bo) { @@ -73,6 +86,9 @@ public class SysSocialServiceImpl implements ISysSocialService { /** * 更新社会化关系 + * + * @param bo 包含更新信息的SysSocialBo对象 + * @return 返回更新操作的结果,成功返回true,失败返回false */ @Override public Boolean updateByBo(SysSocialBo bo) { @@ -81,7 +97,6 @@ public class SysSocialServiceImpl implements ISysSocialService { return baseMapper.updateById(update) > 0; } - /** * 保存前的数据校验 */ @@ -89,21 +104,22 @@ public class SysSocialServiceImpl implements ISysSocialService { //TODO 做一些数据校验,如唯一约束 } - /** - * 删除社会化关系 + * 删除社会化关系信息 + * + * @param id 要删除的社会化关系的唯一标识符 + * @return 返回删除操作的结果,成功返回true,失败返回false */ @Override public Boolean deleteWithValidById(Long id) { return baseMapper.deleteById(id) > 0; } - /** - * 根据 authId 查询用户信息 + * 根据认证ID查询社会化关系和用户信息 * - * @param authId 认证id - * @return 授权信息 + * @param authId 认证ID + * @return 返回包含SysSocial和用户信息的SysSocialVo对象列表 */ @Override public List selectByAuthId(String authId) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index 8fc8142a..68e4ae85 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -95,6 +95,9 @@ public class SysUserServiceImpl implements ISysUserService { ids.add(user.getDeptId()); w.in("u.dept_id", ids); }).orderByAsc("u.user_id"); + if (StringUtils.isNotBlank(user.getExcludeUserIds())) { + wrapper.notIn("u.user_id", StringUtils.splitList(user.getExcludeUserIds())); + } return wrapper; } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index cf3468ed..b9eced80 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -12,7 +12,7 @@ m.perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id - left join sys_role r on sur.role_id = r.role_id + left join sys_role r on rm.role_id = r.role_id ${ew.getCustomSqlSegment} diff --git a/ruoyi-modules/ruoyi-workflow/Dockerfile b/ruoyi-modules/ruoyi-workflow/Dockerfile index 42a0ee94..c312b820 100644 --- a/ruoyi-modules/ruoyi-workflow/Dockerfile +++ b/ruoyi-modules/ruoyi-workflow/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/workflow/logs \ /ruoyi/workflow/temp \ @@ -9,6 +11,10 @@ RUN mkdir -p /ruoyi/workflow/logs \ WORKDIR /ruoyi/workflow +# 补全alpine镜像缺失字体问题 +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories +RUN apk add fontconfig && apk add --update ttf-dejavu && fc-cache --force + ENV SERVER_PORT=9205 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="" EXPOSE ${SERVER_PORT} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/DeleteSequenceMultiInstanceCmd.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/DeleteSequenceMultiInstanceCmd.java index 6773eeff..a61daebc 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/DeleteSequenceMultiInstanceCmd.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/DeleteSequenceMultiInstanceCmd.java @@ -2,6 +2,7 @@ package org.dromara.workflow.flowable.cmd; import cn.hutool.core.util.ObjectUtil; import lombok.AllArgsConstructor; +import org.dromara.common.core.utils.StreamUtils; import org.flowable.common.engine.impl.interceptor.Command; import org.flowable.common.engine.impl.interceptor.CommandContext; import org.flowable.engine.impl.persistence.entity.ExecutionEntity; @@ -59,7 +60,7 @@ public class DeleteSequenceMultiInstanceCmd implements Command { } List userIdList = new ArrayList<>(); userIds.forEach(e -> { - Long userId = assignees.stream().filter(id -> ObjectUtil.equals(id, e)).findFirst().orElse(null); + Long userId = StreamUtils.findFirst(assignees, id -> ObjectUtil.equals(id, e)); if (userId == null) { userIdList.add(e); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index 76a3966b..4b90554a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -259,23 +259,23 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService List highLightedFlowList = QueryUtils.hisActivityInstanceQuery(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list(); for (HistoricActivityInstance tempActivity : highLightedFlowList) { Map task = new HashMap<>(); - if (!FlowConstant.SEQUENCE_FLOW.equals(tempActivity.getActivityType()) && - !FlowConstant.PARALLEL_GATEWAY.equals(tempActivity.getActivityType()) && - !FlowConstant.EXCLUSIVE_GATEWAY.equals(tempActivity.getActivityType()) && - !FlowConstant.INCLUSIVE_GATEWAY.equals(tempActivity.getActivityType()) - ) { - task.put("key", tempActivity.getActivityId()); - task.put("completed", tempActivity.getEndTime() != null); - task.put("activityType", tempActivity.getActivityType()); - taskList.add(task); + switch (tempActivity.getActivityType()) { + case FlowConstant.SEQUENCE_FLOW, FlowConstant.PARALLEL_GATEWAY, + FlowConstant.EXCLUSIVE_GATEWAY, FlowConstant.INCLUSIVE_GATEWAY -> {} + default -> { + task.put("key", tempActivity.getActivityId()); + task.put("completed", tempActivity.getEndTime() != null); + task.put("activityType", tempActivity.getActivityType()); + taskList.add(task); + } } } ProcessInstance processInstance = QueryUtils.instanceQuery(processInstanceId).singleResult(); if (processInstance != null) { - taskList = taskList.stream().filter(e -> !e.get("activityType").equals(FlowConstant.END_EVENT)).collect(Collectors.toList()); + taskList = StreamUtils.filter(taskList, e -> !e.get("activityType").equals(FlowConstant.END_EVENT)); } //查询出运行中节点 - List> runtimeNodeList = taskList.stream().filter(e -> !(Boolean) e.get("completed")).collect(Collectors.toList()); + List> runtimeNodeList = StreamUtils.filter(taskList, e -> !(Boolean) e.get("completed")); if (CollUtil.isNotEmpty(runtimeNodeList)) { Iterator> iterator = taskList.iterator(); while (iterator.hasNext()) { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java index 98134b47..78cb19d5 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java @@ -263,7 +263,8 @@ public class ActTaskServiceImpl implements IActTaskService { String userId = String.valueOf(LoginHelper.getUserId()); queryWrapper.eq("t.business_status_", BusinessStatusEnum.WAITING.getStatus()); queryWrapper.eq(TenantHelper.isEnable(), "t.tenant_id_", TenantHelper.getTenantId()); - queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' " + "and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN " + getInParam(roleIds) + " ) ))", userId))); + String ids = StreamUtils.join(roleIds, x -> "'" + x + "'"); + queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN ({1}) ) ))", userId, ids))); if (StringUtils.isNotBlank(taskBo.getName())) { queryWrapper.like("t.name_", taskBo.getName()); } @@ -292,19 +293,6 @@ public class ActTaskServiceImpl implements IActTaskService { return TableDataInfo.build(page); } - private String getInParam(List param) { - StringBuilder sb = new StringBuilder(); - sb.append("("); - for (int i = 0; i < param.size(); i++) { - sb.append("'").append(param.get(i)).append("'"); - if (i != param.size() - 1) { - sb.append(","); - } - } - sb.append(")"); - return sb.toString(); - } - /** * 查询当前租户所有待办任务 * diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskBackNodeServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskBackNodeServiceImpl.java index ba1fdbb6..6c255d3b 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskBackNodeServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfTaskBackNodeServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.exception.ServiceException; +import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.workflow.domain.WfTaskBackNode; @@ -56,7 +57,7 @@ public class WfTaskBackNodeServiceImpl implements IWfTaskBackNodeService { wfTaskBackNode.setOrderNo(0); wfTaskBackNodeMapper.insert(wfTaskBackNode); } else { - WfTaskBackNode taskNode = list.stream().filter(e -> e.getNodeId().equals(wfTaskBackNode.getNodeId()) && e.getOrderNo() == 0).findFirst().orElse(null); + WfTaskBackNode taskNode = StreamUtils.findFirst(list, e -> e.getNodeId().equals(wfTaskBackNode.getNodeId()) && e.getOrderNo() == 0); if (ObjectUtil.isEmpty(taskNode)) { wfTaskBackNode.setOrderNo(list.get(0).getOrderNo() + 1); WfTaskBackNode node = getListByInstanceIdAndNodeId(wfTaskBackNode.getInstanceId(), wfTaskBackNode.getNodeId()); diff --git a/ruoyi-visual/ruoyi-monitor/Dockerfile b/ruoyi-visual/ruoyi-monitor/Dockerfile index ad8f77f6..e7bfe956 100644 --- a/ruoyi-visual/ruoyi-monitor/Dockerfile +++ b/ruoyi-visual/ruoyi-monitor/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/monitor/logs diff --git a/ruoyi-visual/ruoyi-nacos/Dockerfile b/ruoyi-visual/ruoyi-nacos/Dockerfile index 630b9bb9..95ffe431 100644 --- a/ruoyi-visual/ruoyi-nacos/Dockerfile +++ b/ruoyi-visual/ruoyi-nacos/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/nacos diff --git a/ruoyi-visual/ruoyi-seata-server/Dockerfile b/ruoyi-visual/ruoyi-seata-server/Dockerfile index a981b105..903a5f25 100644 --- a/ruoyi-visual/ruoyi-seata-server/Dockerfile +++ b/ruoyi-visual/ruoyi-seata-server/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/seata-server/logs \ /ruoyi/skywalking/agent diff --git a/ruoyi-visual/ruoyi-sentinel-dashboard/Dockerfile b/ruoyi-visual/ruoyi-sentinel-dashboard/Dockerfile index fe925d90..9129d08d 100644 --- a/ruoyi-visual/ruoyi-sentinel-dashboard/Dockerfile +++ b/ruoyi-visual/ruoyi-sentinel-dashboard/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/sentinel-dashboard/logs \ /ruoyi/skywalking/agent diff --git a/ruoyi-visual/ruoyi-snailjob-server/Dockerfile b/ruoyi-visual/ruoyi-snailjob-server/Dockerfile index 42bb8813..8200c6f3 100644 --- a/ruoyi-visual/ruoyi-snailjob-server/Dockerfile +++ b/ruoyi-visual/ruoyi-snailjob-server/Dockerfile @@ -1,7 +1,9 @@ +# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/ +FROM bellsoft/liberica-openjdk-alpine:17.0.11-cds +#FROM bellsoft/liberica-openjdk-alpine:21.0.3-cds #FROM findepi/graalvm:java17-native -FROM openjdk:17.0.2-oraclelinux8 -MAINTAINER Lion Li +LABEL maintainer="Lion Li" RUN mkdir -p /ruoyi/snailjob/logs