diff options
| author | shizhendong <[email protected]> | 2024-03-05 11:00:21 +0800 |
|---|---|---|
| committer | shizhendong <[email protected]> | 2024-03-05 11:00:21 +0800 |
| commit | ba90d7e6b9132f1966afb92eaf2e47e3cc408086 (patch) | |
| tree | cbba7deb8c8c2881ebb108a9cf26e040bc8512ad | |
| parent | 063d7226f1c781c5bc409774f3293867ceb8ffab (diff) | |
feat: NEZ-3418 asset 详情接口增加 feature 查询参数rel-24.01.06
5 files changed, 37 insertions, 11 deletions
diff --git a/nz-admin/src/main/java/com/nis/modules/asset/controller/AssetController.java b/nz-admin/src/main/java/com/nis/modules/asset/controller/AssetController.java index eb28ba0f..1e5e1e88 100644 --- a/nz-admin/src/main/java/com/nis/modules/asset/controller/AssetController.java +++ b/nz-admin/src/main/java/com/nis/modules/asset/controller/AssetController.java @@ -54,8 +54,8 @@ public class AssetController { */ @GetMapping("/asset/{id}") @SysLog(operation = OperationEnum.QUERY, type = TypeEnum.HARDWARE_ASSET) - public R queryAssetInfo(@PathVariable("id") Integer id) { - return R.ok(assetAssetService.queryAssetInfo(id)); + public R queryAssetInfo(@PathVariable("id") Integer id, @RequestParam(value = "feature", required = false) Integer feature) { + return R.ok(assetAssetService.queryAssetWithFeatureInfo(id, feature)); } /** diff --git a/nz-admin/src/main/java/com/nis/modules/asset/entity/AssetAsset.java b/nz-admin/src/main/java/com/nis/modules/asset/entity/AssetAsset.java index dfdf536e..a8126082 100644 --- a/nz-admin/src/main/java/com/nis/modules/asset/entity/AssetAsset.java +++ b/nz-admin/src/main/java/com/nis/modules/asset/entity/AssetAsset.java @@ -342,4 +342,11 @@ public class AssetAsset implements Serializable { */ @TableField(exist = false) private String modules; + + /** + * asset basic info + */ + @TableField(exist = false) + private Map<String, Object> feature; + } diff --git a/nz-admin/src/main/java/com/nis/modules/asset/service/AssetAssetService.java b/nz-admin/src/main/java/com/nis/modules/asset/service/AssetAssetService.java index f3e73994..59c33e89 100644 --- a/nz-admin/src/main/java/com/nis/modules/asset/service/AssetAssetService.java +++ b/nz-admin/src/main/java/com/nis/modules/asset/service/AssetAssetService.java @@ -25,6 +25,8 @@ public interface AssetAssetService extends IService<AssetAsset> { AssetAsset queryAssetInfo(Integer id); + AssetAsset queryAssetWithFeatureInfo(Integer id, Integer feature); + PageUtils queryAssetPage(Map<String, Object> params); Map<String,List> queryAssetGroupBy(Map<String, Object> params); diff --git a/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetAssetServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetAssetServiceImpl.java index 121f16ca..291ee5eb 100644 --- a/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetAssetServiceImpl.java +++ b/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetAssetServiceImpl.java @@ -263,6 +263,27 @@ public class AssetAssetServiceImpl extends ServiceImpl<AssetAssetDao, AssetAsset return asset; } + @SuppressWarnings("unchecked") + @Override + public AssetAsset queryAssetWithFeatureInfo(Integer id, Integer feature) { + AssetAsset assetInfo = this.queryAssetInfo(id); + ValidateUtils.is(assetInfo).notNull(RCode.ASSET_NOT_EXIST); + + // feature + feature = ObjectUtil.defaultIfNull(feature, 0); + if (ObjectUtil.equal(1, feature)) { + try { + List<AssetFeature> featureList = assetFeatureService.list(new LambdaQueryWrapper<AssetFeature>().eq(AssetFeature::getAssetId, assetInfo.getId())); + Map<String, Object> featureMap = featureList.stream().collect(Collectors.toMap(obj -> obj.getItem(), obj -> JSONObject.parse(obj.getValue()))); + MapUtil.renameKey(featureMap, "networkIF", "interface"); + assetInfo.setFeature(featureMap); + } catch (Exception e) { + log.error(e, "[queryAssetWithFeatureInfo] [feature error] [asset: {}]", id); + } + } + return assetInfo; + } + private void handleQueryAssetParam(Map<String, Object> params) { String ids = (String) params.get("ids"); if (StrUtil.isNotBlank(ids)) { diff --git a/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetFeatureServiceImpl.java b/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetFeatureServiceImpl.java index 67bde24e..f91e78e6 100644 --- a/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetFeatureServiceImpl.java +++ b/nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetFeatureServiceImpl.java @@ -230,18 +230,14 @@ public class AssetFeatureServiceImpl extends ServiceImpl<AssetFeatureDao, AssetF session = SshUtil.getSshConnection(asset); if (StrUtil.isNotEmpty(sshCollectScript)) { - String cmd = """ + String writeScriptContentCmd = """ cat > /tmp/device_info_collector.sh << "EOF" - + %s + EOF """; - cmd += sshCollectScript; - String cmdEnd = """ - - EOF - """; - cmd += cmdEnd; + writeScriptContentCmd = String.format(writeScriptContentCmd, sshCollectScript); // 写入 - Tool.JschUtil.exec(session, cmd, StandardCharsets.UTF_8); + Tool.JschUtil.exec(session, writeScriptContentCmd, StandardCharsets.UTF_8); // 执行 String result = Tool.JschUtil.exec(session, "chmod +x /tmp/device_info_collector.sh && /tmp/device_info_collector.sh", |
