summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshizhendong <[email protected]>2024-03-05 11:00:21 +0800
committershizhendong <[email protected]>2024-03-05 11:00:21 +0800
commitba90d7e6b9132f1966afb92eaf2e47e3cc408086 (patch)
treecbba7deb8c8c2881ebb108a9cf26e040bc8512ad
parent063d7226f1c781c5bc409774f3293867ceb8ffab (diff)
feat: NEZ-3418 asset 详情接口增加 feature 查询参数rel-24.01.06
-rw-r--r--nz-admin/src/main/java/com/nis/modules/asset/controller/AssetController.java4
-rw-r--r--nz-admin/src/main/java/com/nis/modules/asset/entity/AssetAsset.java7
-rw-r--r--nz-admin/src/main/java/com/nis/modules/asset/service/AssetAssetService.java2
-rw-r--r--nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetAssetServiceImpl.java21
-rw-r--r--nz-admin/src/main/java/com/nis/modules/asset/service/impl/AssetFeatureServiceImpl.java14
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",