diff --git a/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/GroupConfig.java b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/GroupConfig.java index f523bed4..8522b65d 100644 --- a/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/GroupConfig.java +++ b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/GroupConfig.java @@ -25,6 +25,8 @@ public class GroupConfig extends CreateUpdateDt { private String groupName; + private String groupNameCn; + private Integer groupStatus; private Integer groupPartition; diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/GroupConfigRequestVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/GroupConfigRequestVO.java index 5e5f168e..180ddee5 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/GroupConfigRequestVO.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/GroupConfigRequestVO.java @@ -20,6 +20,9 @@ public class GroupConfigRequestVO { @Pattern(regexp = "^[A-Za-z0-9_-]{1,64}$", message = "Only supports 1~64 characters, including numbers, letters, underscores, and hyphens") private String groupName; + @NotBlank( message = "Group name CN cannot be null") + private String groupNameCn; // 新增字段 + @NotNull(message = "Group status cannot be null") private Integer groupStatus; diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/GroupConfigResponseVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/GroupConfigResponseVO.java index ba815310..a5c15ae3 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/GroupConfigResponseVO.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/GroupConfigResponseVO.java @@ -16,6 +16,8 @@ public class GroupConfigResponseVO { private String groupName; + private String groupNameCn; + private String namespaceId; private String namespaceName; diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/GroupConfigService.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/GroupConfigService.java index adb492c2..f6582293 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/GroupConfigService.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/GroupConfigService.java @@ -9,6 +9,7 @@ import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -40,4 +41,6 @@ public interface GroupConfigService { String exportGroup(ExportGroupVO exportGroupVO); boolean deleteByGroupName(String groupName); + + Map getGroupNameCns(Set uniqueGroupNames); } diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/GroupConfigServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/GroupConfigServiceImpl.java index 0eaac412..406d24d4 100644 --- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/GroupConfigServiceImpl.java +++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/GroupConfigServiceImpl.java @@ -7,7 +7,6 @@ import cn.hutool.core.util.StrUtil; import com.aizuda.snailjob.common.core.enums.StatusEnum; import com.aizuda.snailjob.common.core.util.JsonUtil; import com.aizuda.snailjob.common.core.util.StreamUtils; -import com.aizuda.snailjob.server.common.config.SystemProperties; import com.aizuda.snailjob.server.common.dto.PartitionTask; import com.aizuda.snailjob.server.common.enums.IdGeneratorModeEnum; import com.aizuda.snailjob.server.common.exception.SnailJobServerException; @@ -25,7 +24,6 @@ import com.aizuda.snailjob.server.web.service.convert.GroupConfigResponseVOConve import com.aizuda.snailjob.server.web.util.UserSessionUtils; import com.aizuda.snailjob.template.datasource.access.AccessTemplate; import com.aizuda.snailjob.template.datasource.access.ConfigAccess; -import com.aizuda.snailjob.template.datasource.access.TaskAccess; import com.aizuda.snailjob.template.datasource.enums.DbTypeEnum; import com.aizuda.snailjob.template.datasource.persistence.mapper.*; import com.aizuda.snailjob.template.datasource.persistence.po.*; @@ -38,7 +36,6 @@ import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.jetbrains.annotations.NotNull; -import org.springframework.jdbc.BadSqlGrammarException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -51,6 +48,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDateTime; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -417,4 +415,22 @@ public class GroupConfigServiceImpl implements GroupConfigService { setId(config.getId()); } } + + public Map getGroupNameCns(Set uniqueGroupNames) { + Map groupConfigMap = new HashMap<>(); + if (CollUtil.isNotEmpty(uniqueGroupNames)) { + ConfigAccess groupConfigAccess = accessTemplate.getGroupConfigAccess(); + List groupConfigs = groupConfigAccess.list( + new LambdaQueryWrapper() + .select(GroupConfig::getGroupName, GroupConfig::getNamespaceId, GroupConfig::getGroupNameCn) + .in(GroupConfig::getGroupName, uniqueGroupNames) + .eq(GroupConfig::getNamespaceId, UserSessionUtils.currentUserSession().getNamespaceId())); // 确保在当前命名空间下查询 + + List groupConfigNames= GroupConfigResponseVOConverter.INSTANCE.convertList(groupConfigs); + groupConfigMap = groupConfigNames.stream() + .collect(Collectors.toMap(GroupConfigResponseVO::getGroupName, Function.identity())); + } + return groupConfigMap; + } + }