From 97ffb19c039f60e1c371304025683d7b069a14c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E6=BD=87=E5=87=AF?= Date: Fri, 6 Jun 2025 16:41:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E5=99=A8=E4=BB=A3=E7=90=86=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=A7=84=E8=8C=83=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../machine/dal/mysql/MachineProxyMapper.java | 18 ------------------ .../machine/enums/MachineProxyStatus.java | 12 +++++++++++- .../service/impl/MachineProxyServiceImpl.java | 12 +++++++++--- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineProxyMapper.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineProxyMapper.java index 93ef9f5b..5cc87bfd 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineProxyMapper.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/dal/mysql/MachineProxyMapper.java @@ -2,17 +2,10 @@ package cd.casic.module.machine.dal.mysql; import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.mybatis.core.mapper.BaseMapperX; import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX; -import cd.casic.module.machine.controller.vo.MachineEnvVO; import cd.casic.module.machine.controller.vo.MachineProxyVO; -import cd.casic.module.machine.dal.dataobject.MachineEnvDO; import cd.casic.module.machine.dal.dataobject.MachineProxyDO; -import cd.casic.module.machine.enums.MachineProxyStatus; import org.apache.ibatis.annotations.Mapper; -import java.util.List; - -import static com.baomidou.mybatisplus.extension.toolkit.Db.listObjs; - /** * 机器代理Mapper接口 */ @@ -29,16 +22,5 @@ public interface MachineProxyMapper extends BaseMapperX { .likeIfPresent(MachineProxyDO::getDescription, machineProxyVO.getDescription()) ); } - default List getOnlineProxyListInIds(List ids) { - LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX<>(); - // 1. 状态为在线(eqIfPresent 确保状态非空时拼接条件) - queryWrapper.eqIfPresent(MachineProxyDO::getStatus, MachineProxyStatus.ONLINE.getCode()); - - // 2. 传入的 ID 列表非空时,添加 IN 条件(使用 inIfPresent 自动过滤空值) - queryWrapper.inIfPresent(MachineProxyDO::getId, ids); - - // 4. 仅查询 ID 字段,提升性能 - return listObjs(queryWrapper.select(MachineProxyDO::getId)); - } } \ No newline at end of file diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/MachineProxyStatus.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/MachineProxyStatus.java index dc7acd77..12864b47 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/MachineProxyStatus.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/enums/MachineProxyStatus.java @@ -1,12 +1,15 @@ package cd.casic.module.machine.enums; +import cd.casic.framework.commons.core.IntArrayValuable; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.Arrays; + @Getter @AllArgsConstructor -public enum MachineProxyStatus implements CodeEnum { +public enum MachineProxyStatus implements IntArrayValuable { /** * 代理状态 (online, offline, installing, updating, error) */ @@ -16,7 +19,14 @@ public enum MachineProxyStatus implements CodeEnum { UPDATING(4, "updating"), ERROR(5, "error"); + public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MachineProxyStatus::getCode).toArray(); + private final int code; private final String message; + + @Override + public int[] array() { + return ARRAYS; + } } diff --git a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineProxyServiceImpl.java b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineProxyServiceImpl.java index 9a946b5d..e4c5d0be 100644 --- a/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineProxyServiceImpl.java +++ b/modules/module-ci-machine/src/main/java/cd/casic/module/machine/service/impl/MachineProxyServiceImpl.java @@ -107,9 +107,15 @@ public class MachineProxyServiceImpl implements MachineProxyService { @VisibleForTesting void validateMachineProxyOnline(List ids) { - List idList = machineProxyMapper.getOnlineProxyListInIds(ids); - if(!idList.isEmpty()){ - throw exception(MACHINE_PROXY_IS_ONLINE,idList); + List machineProxyDOS = machineProxyMapper.selectBatchIds(ids); + ListonlineId=new ArrayList<>(); + machineProxyDOS.forEach(machineProxyDO->{ + if (machineProxyDO.getStatus() == MachineProxyStatus.ONLINE.getCode()) { + onlineId.add(machineProxyDO.getId()); + } + }); + if(!onlineId.isEmpty()){ + throw exception(MACHINE_PROXY_IS_ONLINE,onlineId); } }