package com.wgcloud.service; import cn.hutool.core.bean.BeanUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.wgcloud.entity.HostGroup; import com.wgcloud.entity.PortInfo; import com.wgcloud.mapper.PortInfoMapper; import com.wgcloud.util.DateUtil; import com.wgcloud.util.HostUtil; import com.wgcloud.util.UUIDUtil; 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.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @version v3.3 * @ClassName:PortInfoService.java * @author: http://www.wgstart.com * @date: 2021年1月16日 * @Description: PortInfoService.java * @Copyright: 2019-2021 wgcloud. All rights reserved. */ @Service public class PortInfoService { private static final Logger logger = LoggerFactory.getLogger(PortInfoService.class); public PageInfo selectByParams(Map params, int currPage, int pageSize) throws Exception { PageHelper.startPage(currPage, pageSize); List list = portInfoMapper.selectByParams(params); PageInfo pageInfo = new PageInfo(list); return pageInfo; } public void save(PortInfo PortInfo, HttpServletRequest request) throws Exception { PortInfo.setId(UUIDUtil.getUUID()); Date nowDate = DateUtil.getNowTime(); PortInfo.setCreateTime(nowDate); if (!StringUtils.isEmpty(PortInfo.getPort())) { PortInfo.setPort(PortInfo.getPort().trim()); } if (StringUtils.isEmpty(PortInfo.getPort())) { return; } portInfoMapper.save(PortInfo); //保存页面动态添加的端口数据 addExtDataForm(PortInfo, request, nowDate); } /** * 保存页面动态添加的端口数据 * * @param portInfo * @param request */ private void addExtDataForm(PortInfo portInfo, HttpServletRequest request, Date nowDate) throws Exception { String dataFromIndex = request.getParameter("dataFromIndex"); int rowsLen = 0; if (!StringUtils.isEmpty(dataFromIndex)) { for (int i = 0; i <= Integer.valueOf(dataFromIndex); i++) { String port = request.getParameter("port_" + i); String portName = request.getParameter("portName_" + i); if (StringUtils.isEmpty(port) || StringUtils.isEmpty(portName)) { continue; } PortInfo portInfoExt = new PortInfo(); BeanUtil.copyProperties(portInfo, portInfoExt, true); portInfoExt.setId(UUIDUtil.getUUID()); portInfoExt.setCreateTime(nowDate); portInfoExt.setPort(port.trim()); portInfoExt.setPortName(portName.trim()); portInfoMapper.save(portInfoExt); saveLog(request, StaticKeys.LOG_ADD, portInfoExt); rowsLen += 1; } } } public int deleteByHostName(Map map) throws Exception { return portInfoMapper.deleteByHostName(map); } @Transactional public void saveRecord(List recordList) throws Exception { if (recordList.size() < 1) { return; } for (PortInfo as : recordList) { as.setId(UUIDUtil.getUUID()); } portInfoMapper.insertList(recordList); } public void downByHostName(List recordList) throws Exception { if (recordList.size() < 1) { return; } portInfoMapper.downByHostName(recordList); } public int countByParams(Map params) throws Exception { return portInfoMapper.countByParams(params); } @Transactional public int deleteById(String[] id) throws Exception { return portInfoMapper.deleteById(id); } @Transactional public void updateRecord(List recordList) throws Exception { if (recordList.size() < 1) { return; } portInfoMapper.updateList(recordList); } public void updateById(PortInfo PortInfo) throws Exception { portInfoMapper.updateById(PortInfo); } public PortInfo selectById(String id) throws Exception { return portInfoMapper.selectById(id); } public List selectAllByParams(Map params) throws Exception { return portInfoMapper.selectAllByParams(params); } /** * 设置资源分组 begin * * @param recordList */ public List setGroupInList(List recordList) throws Exception { Map params = new HashMap(); params.put("groupType", StaticKeys.HOST_GROUP_1); List hostGroupList = hostGroupService.selectAllByParams(params); //查询所有主机分组列表,封装为map Map hostGroupMap = new HashMap<>(); for (HostGroup hostGroup : hostGroupList) { hostGroupMap.put(hostGroup.getId(), hostGroup.getGroupName()); } for (PortInfo portInfo : recordList) { if (!StringUtils.isEmpty(portInfo.getGroupId())) { portInfo.setGroupId(hostGroupMap.get(portInfo.getGroupId())); } } return hostGroupList; } /** * 保存操作日志 * * @param request 获取当前登录用户 * @param action 操作标识 */ public void saveLog(HttpServletRequest request, String action, PortInfo portInfo) { if (null == portInfo) { return; } logInfoService.save(HostUtil.getAccountByRequest(request).getAccount() + action + "端口监测信息:" + portInfo.getHostname() + "," + portInfo.getPortName(), "telnet " + portInfo.getTelnetIp() + " " + portInfo.getPort(), StaticKeys.LOG_XTCZ); } @Autowired private PortInfoMapper portInfoMapper; @Resource private HostGroupService hostGroupService; @Autowired private LogInfoService logInfoService; }