package com.vci.ubcs.log.controller; import com.alibaba.nacos.common.utils.StringUtils; import com.vci.ubcs.log.vo.LocalLogVO; import com.vci.ubcs.log.service.ILogLocalService; import com.vci.ubcs.log.entity.LocalLog; import com.vci.ubcs.resource.utils.FileDownloadUtil; import com.vci.ubcs.starter.web.util.ControllerUtil; import com.vci.ubcs.starter.web.util.LangBaseUtil; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.rmi.ServerException; import java.util.List; /** * 本地系统日志 * @author ludc * @date 2023/10/31 15:37 */ @NonDS @Slf4j @RestController @AllArgsConstructor @RequestMapping("/localLog") public class LogLocalController { private final ILogLocalService logLocalService; /** * 获取日志文件列表 * @param localLog * @return */ @PostMapping("/lazy-list") public R> getSystemLogList(@RequestBody LocalLog localLog){ return R.data(logLocalService.getSystemLogList(localLog.getLogPath())); } /** * 下载日志文件 * @param localLogVO 下载日志的全路径集合 * @param response * @return */ @RequestMapping(value = "/downLoadLog",method = {RequestMethod.GET,RequestMethod.POST}) public void downloadLogByServiceName(@RequestBody LocalLogVO localLogVO, HttpServletResponse response) throws IOException { try { //ControllerUtil.writeFileToResponse(response,excelName); FileDownloadUtil.downloadFileLocal(response, logLocalService.downloadLogByServiceNameAndFileName(localLogVO),true); } catch (Throwable e) { //如果出错,把错误信息写到text String msg = LangBaseUtil.getErrorMsg(e); if(StringUtils.isBlank(msg)){ msg = "未知错误"; } ControllerUtil.writeDataToResponse(response,msg.getBytes(StandardCharsets.UTF_8),null); } } /** * 删除日志文件 * @param localLogVO * @return * @throws ServerException */ @DeleteMapping("/deleteLogFile") public R deleteLogFile(@RequestBody LocalLogVO localLogVO) throws ServerException { return logLocalService.deleteLogFile(localLogVO); } }