fix - 日志上传

This commit is contained in:
2026-06-03 23:11:20 +08:00
parent ebfcc2a1b4
commit 274a7cd9b8
8 changed files with 79 additions and 67 deletions

View File

@@ -25,6 +25,9 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
/**
* 小程序二维码进场Controller
@@ -148,6 +151,38 @@ public class AdminNettyController extends BaseApiController {
return ResponseDTO.ok();
}
/**
* 接收客户端上传的日志文件
*/
@RequestMapping(value = "/api/log/receive", method = RequestMethod.POST)
public ResponseDTO receiveLog(@RequestBody Map<String, String> logData) {
try {
String deviceSn = logData.get("deviceSn");
String commLog = logData.get("commLog");
String errorLog = logData.get("errorLog");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(new Date());
if (commLog != null) {
String fileName = "/home/uploadlog/comm-" + deviceSn + "-" + dateStr + "-client.log";
try (FileOutputStream fos = new FileOutputStream(fileName)) {
fos.write(commLog.getBytes());
}
}
if (errorLog != null) {
String fileName = "/home/uploadlog/error-" + deviceSn + "-" + dateStr + "-client.log";
try (FileOutputStream fos = new FileOutputStream(fileName)) {
fos.write(errorLog.getBytes());
}
}
logger.info("log received from device: " + deviceSn);
return ResponseDTO.ok();
} catch (Exception e) {
logger.error("receive log fail", e);
throw new ServiceException("receive log fail");
}
}
/**
* 下载线下入场凭证(二维码)
* @param id

View File

@@ -12,11 +12,7 @@ import io.netty.handler.timeout.IdleStateEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileOutputStream;
import java.net.InetSocketAddress;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Set;
/**
@@ -85,9 +81,6 @@ public class ServerHandler extends SimpleChannelInboundHandler<String> {
}
}
break;
case LOG_DATA:
handleLogData(message);
break;
default:
logger.info( "default");
}
@@ -147,34 +140,6 @@ public class ServerHandler extends SimpleChannelInboundHandler<String> {
}
}
private void handleLogData(VenueMessage message) {
try {
String json = message.getMessage();
Map<String, String> logData = JsonUtils.decode(json, Map.class);
String deviceSn = logData.get("deviceSn");
String commLog = logData.get("commLog");
String errorLog = logData.get("errorLog");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = sdf.format(new Date());
if (commLog != null) {
String fileName = "/home/uploadlog/comm-" + deviceSn + "-" + dateStr + "-client.log";
try (FileOutputStream fos = new FileOutputStream(fileName)) {
fos.write(commLog.getBytes());
}
}
if (errorLog != null) {
String fileName = "/home/uploadlog/error-" + deviceSn + "-" + dateStr + "-client.log";
try (FileOutputStream fos = new FileOutputStream(fileName)) {
fos.write(errorLog.getBytes());
}
}
logger.info("log data saved for device: " + deviceSn);
} catch (Exception e) {
logger.error("handle log data fail", e);
}
}
/**
* IdleStateHandler 如果几秒之后没有读操作,那么就会触发这个方法
*/