package com.oying.modules.maint.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.oying.modules.maint.domain.Server; import com.oying.modules.maint.domain.dto.ServerQueryCriteria; import com.oying.modules.maint.mapper.DeployServerMapper; import com.oying.modules.maint.mapper.ServerMapper; import lombok.RequiredArgsConstructor; import com.oying.modules.maint.service.ServerService; import com.oying.modules.maint.util.ExecuteShellUtil; import com.oying.utils.FileUtil; import com.oying.utils.PageResult; import com.oying.utils.PageUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.*; /** * @author Z * @date 2019-08-24 */ @Service @RequiredArgsConstructor public class ServerServiceImpl extends ServiceImpl implements ServerService { private final ServerMapper serverMapper; private final DeployServerMapper deployServerMapper; @Override public PageResult queryAll(ServerQueryCriteria criteria, Page page){ return PageUtil.toPage(serverMapper.findAll(criteria, page)); } @Override public List queryAll(ServerQueryCriteria criteria){ return serverMapper.findAll(criteria); } @Override public Server findByIp(String ip) { return serverMapper.findByIp(ip); } @Override public Boolean testConnect(Server resources) { ExecuteShellUtil executeShellUtil = null; try { executeShellUtil = new ExecuteShellUtil(resources.getIp(), resources.getAccount(), resources.getPassword(),resources.getPort()); return executeShellUtil.execute("ls")==0; } catch (Exception e) { return false; }finally { if (executeShellUtil != null) { executeShellUtil.close(); } } } @Override @Transactional(rollbackFor = Exception.class) public void create(Server resources) { save(resources); } @Override @Transactional(rollbackFor = Exception.class) public void update(Server resources) { Server server = getById(resources.getId()); server.copy(resources); saveOrUpdate(server); } @Override @Transactional(rollbackFor = Exception.class) public void delete(Set ids) { removeBatchByIds(ids); // 删除与之关联的服务 deployServerMapper.deleteByServerIds(ids); } @Override public void download(List servers, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (Server deploy : servers) { Map map = new LinkedHashMap<>(); map.put("服务器名称", deploy.getName()); map.put("服务器IP", deploy.getIp()); map.put("端口", deploy.getPort()); map.put("账号", deploy.getAccount()); map.put("创建日期", deploy.getCreateTime()); list.add(map); } FileUtil.downloadExcel(list, response); } }