package com.zt.life.modules.mainPart.sys.service; import com.zt.common.exception.RenException; import com.zt.common.service.BaseService; import com.zt.life.modules.mainPart.sys.dao.SysMysqlDao; import com.zt.life.modules.mainPart.sys.model.ColumnsTemp; import com.zt.life.modules.mainPart.sys.model.SysMysql; import com.zt.life.modules.mainPart.taskReliability.service.SimulatAssessService; import org.apache.commons.io.input.ReversedLinesFileReader; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Service public class SysMysqlService extends BaseService { @Value("${zt.oss.log-path}") private String logPath; @Autowired private SimulatAssessService simulatAssessService; public SysMysql check(String sql) { try { SysMysql sysMysql = new SysMysql(); List> data = baseDao.check(sql); List tableColumns = new ArrayList<>(); for (Map map : data) { ColumnsTemp obj = null; for (Map.Entry entry : map.entrySet()) { obj = new ColumnsTemp(); obj.setProp(entry.getKey()); obj.setLabel(entry.getKey()); tableColumns.add(obj); } break; } sysMysql.setTableColumns(tableColumns); sysMysql.setTableData(data); return sysMysql; } catch (Exception e) { e.printStackTrace(); throw new RenException(String.valueOf(e)); } } public void execute(String sql) { try { baseDao.execute(sql); } catch (Exception e) { e.printStackTrace(); throw new RenException(String.valueOf(e)); } } public void logDownload(HttpServletRequest request, HttpServletResponse response) { int n = 300; // 要读取的行数 try { File file = new File(logPath); ReversedLinesFileReader reader = new ReversedLinesFileReader(file); List lines = new ArrayList<>(); String line; while ((line = reader.readLine()) != null) { lines.add(line); if (lines.size() == n) { break; } } reader.close(); Collections.reverse(lines); String result = lines.stream().collect(Collectors.joining(", ")); String formattedResult = result.replace(", ", "\n"); simulatAssessService.writeToTxt(request, response, formattedResult, "日志文件"); } catch (IOException e) { e.printStackTrace(); } } }