package com.wgcloud.service;
|
|
import com.wgcloud.entity.*;
|
import com.wgcloud.util.DateUtil;
|
import com.wgcloud.util.FormatUtil;
|
import com.wgcloud.util.HostUtil;
|
import com.wgcloud.util.staticvar.StaticKeys;
|
import org.apache.commons.lang3.StringUtils;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.math.BigDecimal;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @version v3.3
|
* @ClassName:TaskUtilService.java
|
* @author: http://www.wgstart.com
|
* @date: 2021年4月19日
|
* @Description: 任务数据处理辅助service
|
* @Copyright: 2019-2021 wgcloud. All rights reserved.
|
*/
|
@Service
|
public class TaskUtilService {
|
|
private Logger logger = LoggerFactory.getLogger(TaskUtilService.class);
|
|
@Autowired
|
SystemInfoService systemInfoService;
|
@Autowired
|
AppInfoService appInfoService;
|
@Autowired
|
DockerInfoService dockerInfoService;
|
@Autowired
|
PortInfoService portInfoService;
|
@Autowired
|
DiskStateService diskStateService;
|
|
/**
|
* 清理历史数据过程中,将主机、端口、进程、docker的更新时间刷新为当前时间
|
*
|
* @throws Exception
|
*/
|
@Transactional
|
public void refreshCommitDate() throws Exception {
|
Date nowDate = DateUtil.getNowTime();
|
logger.info("刷新监控数据更新时间:" + nowDate);
|
Map<String, Object> params = new HashMap<String, Object>();
|
params.put("state", StaticKeys.ON_STATE);
|
List<SystemInfo> systemInfolist = systemInfoService.selectAllByParams(params);
|
for (SystemInfo systemInfo : systemInfolist) {
|
systemInfo.setCreateTime(nowDate);
|
}
|
systemInfoService.updateRecord(systemInfolist);//更新
|
}
|
|
|
/**
|
* 获取所有磁盘总容量之和,转为G 或 T
|
*
|
* @return
|
* @throws Exception
|
*/
|
public String sumDiskSizeCache(HttpServletRequest request) throws Exception {
|
Map<String, Object> params = new HashMap<String, Object>();
|
|
//校验是否添加过滤用户查询条件
|
HostUtil.addAccountquery(request, params);
|
|
//监控主机所有磁盘
|
List<DiskState> deskStateList = diskStateService.selectAllByParams(params);
|
BigDecimal sumSize = new BigDecimal(0);
|
for (DiskState deskState : deskStateList) {
|
if (!StringUtils.isEmpty(deskState.getDiskSize())) {
|
try {
|
sumSize = sumSize.add(new BigDecimal(deskState.getDiskSize().replace("G", "")));
|
} catch (Exception e) {
|
logger.error("double类型转换错误:", e);
|
}
|
}
|
}
|
String sumSizeStr = String.valueOf(sumSize);
|
if (sumSizeStr.indexOf(".") > 0) {
|
sumSizeStr = sumSizeStr.substring(0, sumSizeStr.lastIndexOf("."));
|
}
|
return FormatUtil.gToT(sumSizeStr);
|
}
|
|
|
}
|