diff --git a/orion-ops-service/src/main/java/com/orion/ops/consts/MessageConst.java b/orion-ops-service/src/main/java/com/orion/ops/consts/MessageConst.java index 731b63c8..40acdda2 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/consts/MessageConst.java +++ b/orion-ops-service/src/main/java/com/orion/ops/consts/MessageConst.java @@ -66,7 +66,7 @@ public class MessageConst { public static final String INVALID_MACHINE = "未知的机器"; - public static final String MACHINE_NOT_ENABLE = "机器未启用"; + public static final String MACHINE_DISABLE = "机器未启用"; public static final String INVALID_PROXY = "未查询到代理信息"; @@ -110,6 +110,8 @@ public class MessageConst { public static final String NAME_PRESENT = "名称重复"; + public static final String TAG_PRESENT = "唯一标识重复"; + public static final String FORBID_DELETE = "禁止删除"; public static final String APP_ABSENT = "应用不存在"; diff --git a/orion-ops-service/src/main/java/com/orion/ops/controller/MachineInfoController.java b/orion-ops-service/src/main/java/com/orion/ops/controller/MachineInfoController.java index 87c7961d..bdd76d09 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/controller/MachineInfoController.java +++ b/orion-ops-service/src/main/java/com/orion/ops/controller/MachineInfoController.java @@ -134,6 +134,7 @@ public class MachineInfoController { Valid.gt(sshPort, 0, "ssh端口不正确"); Valid.lte(sshPort, 65535, "ssh端口不正确"); Valid.notBlank(request.getName()); + Valid.notBlank(request.getTag()); Valid.notBlank(request.getUsername()); } diff --git a/orion-ops-service/src/main/java/com/orion/ops/entity/domain/MachineInfoDO.java b/orion-ops-service/src/main/java/com/orion/ops/entity/domain/MachineInfoDO.java index 77361f40..25f88ffd 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/entity/domain/MachineInfoDO.java +++ b/orion-ops-service/src/main/java/com/orion/ops/entity/domain/MachineInfoDO.java @@ -53,7 +53,7 @@ public class MachineInfoDO implements Serializable { private String machineName; /** - * 机器标签 + * 机器标识符 */ @TableField("machine_tag") private String machineTag; diff --git a/orion-ops-service/src/main/java/com/orion/ops/entity/request/MachineInfoRequest.java b/orion-ops-service/src/main/java/com/orion/ops/entity/request/MachineInfoRequest.java index b5f4bbf9..366a6878 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/entity/request/MachineInfoRequest.java +++ b/orion-ops-service/src/main/java/com/orion/ops/entity/request/MachineInfoRequest.java @@ -53,7 +53,7 @@ public class MachineInfoRequest extends PageRequest { private String name; /** - * 机器标签 + * 机器标识符 */ private String tag; diff --git a/orion-ops-service/src/main/java/com/orion/ops/entity/vo/CommandExecVO.java b/orion-ops-service/src/main/java/com/orion/ops/entity/vo/CommandExecVO.java index aed6789f..7b0431aa 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/entity/vo/CommandExecVO.java +++ b/orion-ops-service/src/main/java/com/orion/ops/entity/vo/CommandExecVO.java @@ -69,7 +69,7 @@ public class CommandExecVO { private String machineHost; /** - * 机器标签 + * 机器标识符 */ private String machineTag; diff --git a/orion-ops-service/src/main/java/com/orion/ops/entity/vo/FileTailVO.java b/orion-ops-service/src/main/java/com/orion/ops/entity/vo/FileTailVO.java index fecff027..50864b1b 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/entity/vo/FileTailVO.java +++ b/orion-ops-service/src/main/java/com/orion/ops/entity/vo/FileTailVO.java @@ -48,6 +48,14 @@ public class FileTailVO { */ private String machineHost; + /** + * 机器状态 1有效 2无效 + * + * @see com.orion.ops.consts.Const#ENABLE + * @see com.orion.ops.consts.Const#DISABLE + */ + private Integer machineStatus; + /** * 文件 */ diff --git a/orion-ops-service/src/main/java/com/orion/ops/entity/vo/MachineInfoVO.java b/orion-ops-service/src/main/java/com/orion/ops/entity/vo/MachineInfoVO.java index 249808b0..72bf373f 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/entity/vo/MachineInfoVO.java +++ b/orion-ops-service/src/main/java/com/orion/ops/entity/vo/MachineInfoVO.java @@ -57,7 +57,7 @@ public class MachineInfoVO { private String name; /** - * 机器标签 + * 机器标识符 */ private String tag; diff --git a/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationInfoServiceImpl.java b/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationInfoServiceImpl.java index b286c1fc..b0a98fdd 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationInfoServiceImpl.java +++ b/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationInfoServiceImpl.java @@ -68,14 +68,16 @@ public class ApplicationInfoServiceImpl implements ApplicationInfoService { @Override public Long insertApp(ApplicationInfoRequest request) { - // 检查是否存在 String name = request.getName(); - // 重复检查 + String tag = request.getTag(); + // 名称重复检查 this.checkNamePresent(null, name); + // 标识重复检查 + this.checkTagPresent(null, tag); // 插入 ApplicationInfoDO insert = new ApplicationInfoDO(); insert.setAppName(name); - insert.setAppTag(request.getTag()); + insert.setAppTag(tag); insert.setVcsId(request.getVcsId()); insert.setDescription(request.getDescription()); insert.setAppSort(this.getNextSort()); @@ -89,15 +91,18 @@ public class ApplicationInfoServiceImpl implements ApplicationInfoService { public Integer updateApp(ApplicationInfoRequest request) { Long id = request.getId(); String name = request.getName(); + String tag = request.getTag(); // 查询应用 ApplicationInfoDO app = Valid.notNull(applicationInfoDAO.selectById(id), MessageConst.APP_ABSENT); - // 重复检查 + // 名称重复检查 this.checkNamePresent(id, name); + // 标识重复检查 + this.checkTagPresent(id, tag); // 更新 ApplicationInfoDO update = new ApplicationInfoDO(); update.setId(id); update.setAppName(name); - update.setAppTag(request.getTag()); + update.setAppTag(tag); update.setVcsId(request.getVcsId()); update.setDescription(request.getDescription()); update.setUpdateTime(new Date()); @@ -362,7 +367,9 @@ public class ApplicationInfoServiceImpl implements ApplicationInfoService { ApplicationInfoDO app = Valid.notNull(applicationInfoDAO.selectById(appId), MessageConst.APP_ABSENT); String beforeName = app.getAppName(); app.setId(null); - app.setAppName(app.getAppName() + Utils.getCopySuffix()); + String copySuffix = Utils.getCopySuffix(); + app.setAppName(beforeName + copySuffix); + app.setAppTag(app.getAppTag() + copySuffix); app.setAppSort(this.getNextSort()); app.setCreateTime(null); app.setUpdateTime(null); @@ -386,7 +393,7 @@ public class ApplicationInfoServiceImpl implements ApplicationInfoService { } /** - * 检查是否存在 + * 检查名称是否存在 * * @param id id * @param name name @@ -399,6 +406,20 @@ public class ApplicationInfoServiceImpl implements ApplicationInfoService { Valid.isTrue(!present, MessageConst.NAME_PRESENT); } + /** + * 检查标签是否存在 + * + * @param id id + * @param tag tag + */ + private void checkTagPresent(Long id, String tag) { + LambdaQueryWrapper presentWrapper = new LambdaQueryWrapper() + .ne(id != null, ApplicationInfoDO::getId, id) + .eq(ApplicationInfoDO::getAppTag, tag); + boolean present = DataQuery.of(applicationInfoDAO).wrapper(presentWrapper).present(); + Valid.isTrue(!present, MessageConst.TAG_PRESENT); + } + /** * 获取下一个排序 * diff --git a/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationProfileServiceImpl.java b/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationProfileServiceImpl.java index 6148e710..f70b4416 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationProfileServiceImpl.java +++ b/orion-ops-service/src/main/java/com/orion/ops/service/impl/ApplicationProfileServiceImpl.java @@ -61,12 +61,15 @@ public class ApplicationProfileServiceImpl implements ApplicationProfileService @Override public Long addProfile(ApplicationProfileRequest request) { String name = request.getName(); - // 重复检查 + String tag = request.getTag(); + // 重复名称检查 this.checkNamePresent(null, name); + // 重复标识检查 + this.checkTagPresent(null, tag); // 插入 ApplicationProfileDO insert = new ApplicationProfileDO(); - insert.setProfileName(request.getName()); - insert.setProfileTag(request.getTag()); + insert.setProfileName(name); + insert.setProfileTag(tag); insert.setDescription(request.getDescription()); insert.setReleaseAudit(request.getReleaseAudit()); applicationProfileDAO.insert(insert); @@ -85,13 +88,16 @@ public class ApplicationProfileServiceImpl implements ApplicationProfileService ApplicationProfileDO beforeProfile = applicationProfileDAO.selectById(id); Valid.notNull(beforeProfile, MessageConst.PROFILE_ABSENT); String name = request.getName(); - // 重复检查 + String tag = request.getTag(); + // 重复名称检查 this.checkNamePresent(id, name); + // 重复标识检查 + this.checkTagPresent(id, tag); // 修改 ApplicationProfileDO update = new ApplicationProfileDO(); update.setId(id); - update.setProfileName(request.getName()); - update.setProfileTag(request.getTag()); + update.setProfileName(name); + update.setProfileTag(tag); update.setDescription(request.getDescription()); update.setReleaseAudit(request.getReleaseAudit()); update.setUpdateTime(new Date()); @@ -177,7 +183,7 @@ public class ApplicationProfileServiceImpl implements ApplicationProfileService } /** - * 检查是否存在 + * 检查名称是否存在 * * @param id id * @param name name @@ -190,6 +196,20 @@ public class ApplicationProfileServiceImpl implements ApplicationProfileService Valid.isTrue(!present, MessageConst.NAME_PRESENT); } + /** + * 检查标识符是否存在 + * + * @param id id + * @param tag tag + */ + private void checkTagPresent(Long id, String tag) { + LambdaQueryWrapper presentWrapper = new LambdaQueryWrapper() + .ne(id != null, ApplicationProfileDO::getId, id) + .eq(ApplicationProfileDO::getProfileTag, tag); + boolean present = DataQuery.of(applicationProfileDAO).wrapper(presentWrapper).present(); + Valid.isTrue(!present, MessageConst.TAG_PRESENT); + } + /** * 设置环境缓存 * diff --git a/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileTailServiceImpl.java b/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileTailServiceImpl.java index c96b2bb4..31017aeb 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileTailServiceImpl.java +++ b/orion-ops-service/src/main/java/com/orion/ops/service/impl/FileTailServiceImpl.java @@ -103,6 +103,7 @@ public class FileTailServiceImpl implements FileTailService { res.setMachineId(machine.getId()); res.setMachineName(machine.getMachineName()); res.setMachineHost(machine.getMachineHost()); + res.setMachineStatus(machine.getMachineStatus()); // 设置token String token = UUIds.random19(); res.setToken(token); @@ -205,6 +206,7 @@ public class FileTailServiceImpl implements FileTailService { if (machine != null) { p.setMachineName(machine.getMachineName()); p.setMachineHost(machine.getMachineHost()); + p.setMachineStatus(machine.getMachineStatus()); } }); return dataGrid; @@ -220,6 +222,7 @@ public class FileTailServiceImpl implements FileTailService { Valid.notNull(machine, MessageConst.INVALID_MACHINE); vo.setMachineName(machine.getMachineName()); vo.setMachineHost(machine.getMachineHost()); + vo.setMachineStatus(machine.getMachineStatus()); return vo; } diff --git a/orion-ops-service/src/main/resources/mapper/ApplicationPipelineMapper.xml b/orion-ops-service/src/main/resources/mapper/ApplicationPipelineMapper.xml index 7488848f..a464c7ec 100644 --- a/orion-ops-service/src/main/resources/mapper/ApplicationPipelineMapper.xml +++ b/orion-ops-service/src/main/resources/mapper/ApplicationPipelineMapper.xml @@ -4,13 +4,13 @@ - - - - - - - + + + + + + +