Skip to content

Commit ae6bbb2

Browse files
fix(operation-analysis): 云主机,磁盘分布添加过滤条件
1 parent 4d364b4 commit ae6bbb2

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

framework/sdk/backend/src/main/java/com/fit2cloud/base/mapper/BaseVmCloudDiskMapper.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,7 @@
2222
public interface BaseVmCloudDiskMapper extends MPJBaseMapper<VmCloudDisk> {
2323
@Select("SELECT source_id as `key`,count(*) as `value` FROM vm_cloud_disk ${ew.customSqlSegment} GROUP BY source_id")
2424
List<DefaultKeyValue<String, Integer>> groupSourceId(@Param(Constants.WRAPPER) Wrapper<VmCloudDisk> wrapper);
25+
26+
@Select("SELECT source_id as `key`,sum(size) as `value` FROM vm_cloud_disk ${ew.customSqlSegment} GROUP BY source_id")
27+
List<DefaultKeyValue<String, Integer>> groupSourceIdBySize(@Param(Constants.WRAPPER) Wrapper<VmCloudDisk> wrapper);
2528
}

services/operation-analysis/backend/src/main/java/com/fit2cloud/service/impl/DiskAnalysisServiceImpl.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ public Map<String, List<TreeNode>> analysisCloudDiskByOrgWorkspace(ResourceAnaly
266266
result.put("all", workspaceList);
267267
result.put("tree", workspaceList);
268268
} else {
269-
result = orgSpread();
269+
result = orgSpread(request);
270270

271271
}
272272
return result;
@@ -275,8 +275,8 @@ public Map<String, List<TreeNode>> analysisCloudDiskByOrgWorkspace(ResourceAnaly
275275
/**
276276
* 组织上的分布
277277
*/
278-
private Map<String, List<TreeNode>> orgSpread() {
279-
List<DefaultKeyValue<String, Integer>> groupSource = baseVmCloudDiskMapper.groupSourceId(new LambdaQueryWrapper<VmCloudDisk>().notIn(VmCloudDisk::getStatus, List.of("Deleted", "Failed")));
278+
private Map<String, List<TreeNode>> orgSpread(ResourceAnalysisRequest request) {
279+
List<DefaultKeyValue<String, Integer>> groupSource = groupSource(request);
280280
// 获取获取组织工作空间树
281281
List<OrganizationTree> tree = iBaseOrganizationService.tree("ORGANIZATION_AND_WORKSPACE");
282282
List<TreeNode> treeNodes = OperationUtils.orgCount(tree, (orgId, workspaceIds) -> getCount(orgId, workspaceIds, groupSource), groupSource.stream().mapToInt(DefaultKeyValue::getValue).sum());
@@ -287,6 +287,16 @@ private Map<String, List<TreeNode>> orgSpread() {
287287
return Map.of("tree", treeNodes);
288288
}
289289

290+
private List<DefaultKeyValue<String, Integer>> groupSource(ResourceAnalysisRequest request){
291+
LambdaQueryWrapper<VmCloudDisk> wrapper = new LambdaQueryWrapper<VmCloudDisk>().notIn(VmCloudDisk::getStatus, List.of("Deleted", "Failed"));
292+
wrapper.in(CollectionUtils.isNotEmpty(request.getAccountIds()),VmCloudDisk::getAccountId,request.getAccountIds());
293+
if(request.isStatisticalBlock()){
294+
return baseVmCloudDiskMapper.groupSourceId(wrapper);
295+
}else{
296+
return baseVmCloudDiskMapper.groupSourceIdBySize(wrapper);
297+
}
298+
}
299+
290300
/**
291301
* 获取组织或者工作空间统计
292302
*

services/operation-analysis/backend/src/main/java/com/fit2cloud/service/impl/ServerAnalysisServiceImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -474,8 +474,10 @@ public Map<String, List<TreeNode>> analysisVmCloudServerByOrgWorkspace(ResourceA
474474
*/
475475
private Map<String, List<TreeNode>> orgSpread(ResourceAnalysisRequest request) {
476476
Map<String, List<TreeNode>> result = new HashMap<>(1);
477-
478-
List<DefaultKeyValue<String, Integer>> groupSource = baseVmCloudServerMapper.groupSourceId(new LambdaQueryWrapper<VmCloudServer>().notIn(VmCloudServer::getInstanceStatus, List.of(SpecialAttributesConstants.StatusField.VM_DELETE, SpecialAttributesConstants.StatusField.FAILED)));
477+
LambdaQueryWrapper<VmCloudServer> wrapper = new LambdaQueryWrapper<VmCloudServer>().notIn(VmCloudServer::getInstanceStatus, List.of(SpecialAttributesConstants.StatusField.VM_DELETE, SpecialAttributesConstants.StatusField.FAILED));
478+
wrapper.in(CollectionUtils.isNotEmpty(request.getAccountIds()),VmCloudServer::getAccountId,request.getAccountIds());
479+
wrapper.in(CollectionUtils.isNotEmpty(request.getHostIds()),VmCloudServer::getHostId,request.getHostIds());
480+
List<DefaultKeyValue<String, Integer>> groupSource = baseVmCloudServerMapper.groupSourceId(wrapper);
479481
// 获取获取组织工作空间树
480482
List<OrganizationTree> tree = iBaseOrganizationService.tree("ORGANIZATION_AND_WORKSPACE");
481483
List<TreeNode> treeNodes = OperationUtils.orgCount(tree, (orgId, workspaceIds) ->

0 commit comments

Comments
 (0)