机器代理管理规范化
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.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<MachineProxyDO> {
|
||||
.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;
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
@ -107,9 +107,15 @@ public class MachineProxyServiceImpl implements MachineProxyService {
|
||||
|
||||
@VisibleForTesting
|
||||
void validateMachineProxyOnline(List<Long> ids) {
|
||||
List<Long> idList = machineProxyMapper.getOnlineProxyListInIds(ids);
|
||||
if(!idList.isEmpty()){
|
||||
throw exception(MACHINE_PROXY_IS_ONLINE,idList);
|
||||
List<MachineProxyDO> machineProxyDOS = machineProxyMapper.selectBatchIds(ids);
|
||||
List<Long>onlineId=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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user