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 params = new HashMap(); params.put("state", StaticKeys.ON_STATE); List 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 params = new HashMap(); //校验是否添加过滤用户查询条件 HostUtil.addAccountquery(request, params); //监控主机所有磁盘 List 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); } }