机器代理管理规范化
This commit is contained in:
parent
2d4653b29a
commit
97ffb19c03
@ -2,17 +2,10 @@ package cd.casic.module.machine.dal.mysql;
|
|||||||
import cd.casic.framework.commons.pojo.PageResult;
|
import cd.casic.framework.commons.pojo.PageResult;
|
||||||
import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
|
import cd.casic.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cd.casic.framework.mybatis.core.query.LambdaQueryWrapperX;
|
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.controller.vo.MachineProxyVO;
|
||||||
import cd.casic.module.machine.dal.dataobject.MachineEnvDO;
|
|
||||||
import cd.casic.module.machine.dal.dataobject.MachineProxyDO;
|
import cd.casic.module.machine.dal.dataobject.MachineProxyDO;
|
||||||
import cd.casic.module.machine.enums.MachineProxyStatus;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import static com.baomidou.mybatisplus.extension.toolkit.Db.listObjs;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 机器代理Mapper接口
|
* 机器代理Mapper接口
|
||||||
*/
|
*/
|
||||||
@ -29,16 +22,5 @@ public interface MachineProxyMapper extends BaseMapperX<MachineProxyDO> {
|
|||||||
.likeIfPresent(MachineProxyDO::getDescription, machineProxyVO.getDescription())
|
.likeIfPresent(MachineProxyDO::getDescription, machineProxyVO.getDescription())
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
default List<Long> getOnlineProxyListInIds(List<Long> ids) {
|
|
||||||
LambdaQueryWrapperX<MachineProxyDO> 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));
|
|
||||||
}
|
|
||||||
}
|
}
|
@ -1,12 +1,15 @@
|
|||||||
package cd.casic.module.machine.enums;
|
package cd.casic.module.machine.enums;
|
||||||
|
|
||||||
|
|
||||||
|
import cd.casic.framework.commons.core.IntArrayValuable;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum MachineProxyStatus implements CodeEnum {
|
public enum MachineProxyStatus implements IntArrayValuable {
|
||||||
/**
|
/**
|
||||||
* 代理状态 (online, offline, installing, updating, error)
|
* 代理状态 (online, offline, installing, updating, error)
|
||||||
*/
|
*/
|
||||||
@ -16,7 +19,14 @@ public enum MachineProxyStatus implements CodeEnum {
|
|||||||
UPDATING(4, "updating"),
|
UPDATING(4, "updating"),
|
||||||
ERROR(5, "error");
|
ERROR(5, "error");
|
||||||
|
|
||||||
|
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(MachineProxyStatus::getCode).toArray();
|
||||||
|
|
||||||
private final int code;
|
private final int code;
|
||||||
|
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] array() {
|
||||||
|
return ARRAYS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -107,9 +107,15 @@ public class MachineProxyServiceImpl implements MachineProxyService {
|
|||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void validateMachineProxyOnline(List<Long> ids) {
|
void validateMachineProxyOnline(List<Long> ids) {
|
||||||
List<Long> idList = machineProxyMapper.getOnlineProxyListInIds(ids);
|
List<MachineProxyDO> machineProxyDOS = machineProxyMapper.selectBatchIds(ids);
|
||||||
if(!idList.isEmpty()){
|
List<Long>onlineId=new ArrayList<>();
|
||||||
throw exception(MACHINE_PROXY_IS_ONLINE,idList);
|
machineProxyDOS.forEach(machineProxyDO->{
|
||||||
|
if (machineProxyDO.getStatus() == MachineProxyStatus.ONLINE.getCode()) {
|
||||||
|
onlineId.add(machineProxyDO.getId());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(!onlineId.isEmpty()){
|
||||||
|
throw exception(MACHINE_PROXY_IS_ONLINE,onlineId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user