From 1e453e43122c00fde8f85d2b4fccf9403da28714 Mon Sep 17 00:00:00 2001 From: lijiahang Date: Fri, 22 Sep 2023 19:08:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=A7=98=E9=92=A5=E6=97=B6?= =?UTF-8?q?=E5=80=99=E6=B8=85=E7=A9=BA=E9=85=8D=E7=BD=AE.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../orion-server-module-service-impl.java.vm | 4 ++++ .../orion-server-provider-api-impl.java.vm | 3 +++ .../ops/module/asset/dao/HostConfigDAO.java | 17 +++++++++++++++++ .../service/impl/HostIdentityServiceImpl.java | 8 ++++++-- .../asset/service/impl/HostKeyServiceImpl.java | 8 ++++++-- .../main/resources/mapper/HostConfigMapper.xml | 16 ++++++++++++++++ 6 files changed, 52 insertions(+), 4 deletions(-) diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm index 93a0c46b..807f06df 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-module-service-impl.java.vm @@ -132,6 +132,10 @@ public class ${table.serviceImplName} implements ${table.serviceName} { @Override public Integer delete${type}ById(Long id) { log.info("${type}Service-delete${type}ById id: {}", id); + // 检查数据是否存在 + ${type}DO record = ${typeLower}DAO.selectById(id); + Valid.notNull(record, ErrorMessage.DATA_ABSENT); + // 删除 int effect = ${typeLower}DAO.deleteById(id); log.info("${type}Service-delete${type}ById effect: {}", effect); return effect; diff --git a/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm b/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm index 1e6cafa9..e09b1728 100644 --- a/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm +++ b/orion-ops-launch/src/main/resources/templates/orion-server-provider-api-impl.java.vm @@ -123,6 +123,9 @@ public class ${type}ApiImpl implements ${type}Api { public Integer delete${type}ById(Long id) { log.info("${type}Api.delete${type}ById id: {}", id); Valid.notNull(id, ErrorMessage.ID_MISSING); + // 检查数据是否存在 + ${type}DO record = ${typeLower}DAO.selectById(id); + Valid.notNull(record, ErrorMessage.DATA_ABSENT); // 删除 int effect = ${typeLower}DAO.deleteById(id); log.info("${type}Api.delete${type}ById effect: {}", effect); diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/dao/HostConfigDAO.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/dao/HostConfigDAO.java index 0cd59ecf..bcb2bb7b 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/dao/HostConfigDAO.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/dao/HostConfigDAO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.orion.ops.framework.mybatis.core.mapper.IMapper; import com.orion.ops.module.asset.entity.domain.HostConfigDO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -89,4 +90,20 @@ public interface HostConfigDAO extends IMapper { return this.delete(wrapper); } + /** + * 设置 keyId 为 NULL + * + * @param keyId keyId + * @return effect + */ + int setKeyIdWithNull(@Param("keyId") Long keyId); + + /** + * 设置 identityId 为 NULL + * + * @param identityId identityId + * @return effect + */ + int setIdentityIdWithNull(@Param("identityId") Long identityId); + } diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java index 5ccb977d..7c09a9f7 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostIdentityServiceImpl.java @@ -11,6 +11,7 @@ import com.orion.ops.framework.common.security.PasswordModifier; import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisMaps; import com.orion.ops.module.asset.convert.HostIdentityConvert; +import com.orion.ops.module.asset.dao.HostConfigDAO; import com.orion.ops.module.asset.dao.HostIdentityDAO; import com.orion.ops.module.asset.dao.HostKeyDAO; import com.orion.ops.module.asset.define.HostCacheKeyDefine; @@ -48,6 +49,9 @@ public class HostIdentityServiceImpl implements HostIdentityService { @Resource private HostKeyDAO hostKeyDAO; + @Resource + private HostConfigDAO hostConfigDAO; + @Override public Long createHostIdentity(HostIdentityCreateRequest request) { log.info("HostIdentityService-createHostIdentity request: {}", JSON.toJSONString(request)); @@ -168,8 +172,8 @@ public class HostIdentityServiceImpl implements HostIdentityService { Valid.notNull(record, ErrorMessage.DATA_ABSENT); // 删除数据库 int effect = hostIdentityDAO.deleteById(id); - // TODO config - + // 删除主机配置 + hostConfigDAO.setIdentityIdWithNull(id); // 删除缓存 RedisMaps.delete(HostCacheKeyDefine.HOST_IDENTITY.getKey(), record.getId()); log.info("HostIdentityService-deleteHostIdentityById effect: {}", effect); diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java index fc713ed9..708ab8a0 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/java/com/orion/ops/module/asset/service/impl/HostKeyServiceImpl.java @@ -11,6 +11,7 @@ import com.orion.ops.framework.common.utils.CryptoUtils; import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.redis.core.utils.RedisMaps; import com.orion.ops.module.asset.convert.HostKeyConvert; +import com.orion.ops.module.asset.dao.HostConfigDAO; import com.orion.ops.module.asset.dao.HostIdentityDAO; import com.orion.ops.module.asset.dao.HostKeyDAO; import com.orion.ops.module.asset.define.HostCacheKeyDefine; @@ -46,6 +47,9 @@ public class HostKeyServiceImpl implements HostKeyService { @Resource private HostIdentityDAO hostIdentityDAO; + @Resource + private HostConfigDAO hostConfigDAO; + @Override public Long createHostKey(HostKeyCreateRequest request) { log.info("HostKeyService-createHostKey request: {}", JSON.toJSONString(request)); @@ -166,8 +170,8 @@ public class HostKeyServiceImpl implements HostKeyService { int effect = hostKeyDAO.deleteById(id); // 删除关联 hostIdentityDAO.setKeyWithNull(id); - // TODO config - + // 删除主机配置 + hostConfigDAO.setKeyIdWithNull(id); // 删除缓存 RedisMaps.delete(HostCacheKeyDefine.HOST_KEY.getKey(), record.getId()); log.info("HostKeyService-deleteHostKeyById effect: {}", effect); diff --git a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/resources/mapper/HostConfigMapper.xml b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/resources/mapper/HostConfigMapper.xml index e3ac4c70..f41d5516 100644 --- a/orion-ops-module-asset/orion-ops-module-asset-service/src/main/resources/mapper/HostConfigMapper.xml +++ b/orion-ops-module-asset/orion-ops-module-asset-service/src/main/resources/mapper/HostConfigMapper.xml @@ -22,4 +22,20 @@ id, host_id, type, status, config, version, create_time, update_time, creator, updater, deleted + + UPDATE host_config + SET version = version + 1, + config = JSON_REMOVE(config, '$.keyId') + WHERE deleted = 0 + AND JSON_CONTAINS(config, JSON_OBJECT('keyId', #{keyId})) + + + + UPDATE host_config + SET version = version + 1, + config = JSON_REMOVE(config, '$.identityId') + WHERE deleted = 0 + AND JSON_CONTAINS(config, JSON_OBJECT('identityId', #{identityId})) + +