package com.wgcloud.service; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.wgcloud.dto.SubtitleDto; import com.wgcloud.entity.DockerState; import com.wgcloud.mapper.DockerStateMapper; import com.wgcloud.util.DateUtil; import com.wgcloud.util.FormatUtil; import com.wgcloud.util.UUIDUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; import java.util.List; import java.util.Map; /** * @version v3.3 * @ClassName:DockerStateService.java * @author: http://www.wgstart.com * @date: 2021年1月16日 * @Description: DockerStateService.java * @Copyright: 2019-2021 wgcloud. All rights reserved. */ @Service public class DockerStateService { public PageInfo selectByParams(Map params, int currPage, int pageSize) throws Exception { PageHelper.startPage(currPage, pageSize); List list = dockerStateMapper.selectByParams(params); PageInfo pageInfo = new PageInfo(list); return pageInfo; } public void save(DockerState DockerState) throws Exception { DockerState.setId(UUIDUtil.getUUID()); DockerState.setCreateTime(DateUtil.getNowTime()); DockerState.setDateStr(DateUtil.getDateTimeString(DockerState.getCreateTime())); dockerStateMapper.save(DockerState); } public void saveRecord(List recordList) throws Exception { if (recordList.size() < 1) { return; } for (DockerState as : recordList) { as.setId(UUIDUtil.getUUID()); as.setDateStr(DateUtil.getDateTimeString(as.getCreateTime())); } dockerStateMapper.insertList(recordList); } public int deleteByAppInfoId(String appInfoId) throws Exception { return dockerStateMapper.deleteByDockerInfoId(appInfoId); } public int deleteById(String[] id) throws Exception { return dockerStateMapper.deleteById(id); } public DockerState selectById(String id) throws Exception { return dockerStateMapper.selectById(id); } public List selectAllByParams(Map params) throws Exception { return dockerStateMapper.selectAllByParams(params); } public int deleteByDate(Map map) throws Exception{ return dockerStateMapper.deleteByDate(map); } /** * 设置图表的副标题,内存的最高、平均、最低值 * * @param model * @param dockerStateList docker容器状态数据 */ public void setSubtitle(Model model, List dockerStateList) { //内存使用率最高 Double maxMem = 0d; //内存使用率最低 Double minMem = 100000d; //内存使用率平均 Double avgMem = 0d; Double sumMem = 0d; for (DockerState dockerState : dockerStateList) { if (null != dockerState.getMemPer()) { if (dockerState.getMemPer() > maxMem) { maxMem = dockerState.getMemPer(); } if (dockerState.getMemPer() < minMem) { minMem = dockerState.getMemPer(); } sumMem += dockerState.getMemPer(); } } if (dockerStateList.size() > 0) { avgMem = sumMem / dockerStateList.size(); } else { minMem = 0d; } SubtitleDto memSubtitleDto = new SubtitleDto(); memSubtitleDto.setAvgValue(FormatUtil.formatDouble(avgMem, 2) + ""); memSubtitleDto.setMaxValue(maxMem + ""); memSubtitleDto.setMinValue(minMem + ""); model.addAttribute("memSubtitleDto", memSubtitleDto); } @Autowired private DockerStateMapper dockerStateMapper; }