主要是新增功能,然后无论失败或者成功都要存日志表,失败要存失败表
@ApiOperation("新增数据")
@PostMapping
public R insert(@RequestBody CarInout carInout) {
try {
HttpServletRequest request = CommonUtil.getHttpRequest();
Boolean save = carInoutService.save(carInout);
apiLogService.saveLog(request);
if (!save) {
failRecordService.saveFail(request);
}
return save ? success("操作成功") : failed("操作失败");
} catch (Exception e) {
log.error(e.getMessage());
return failed("服务器错误!");
}
}
保存日志与错误信息需要从request中获得json数据
public void saveLog(HttpServletRequest request) throws IOException {
ApiLog log = new ApiLog();
BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
StringBuilder responseStrBuilder = new StringBuilder();
String inputStr;
while ((inputStr = streamReader.readLine()) != null) {
responseStrBuilder.append(inputStr);
}
streamReader.close();
log.setPrimalityData(responseStrBuilder.toString());
log.setSource("海康");
log.setTime(new Date());
this.save(log);
}
以上通过request.getInputStream()来获取输入流以及new了一个InputStreamReader来将输入流的字节读取为字符流对象,再从字符输入流中读取文本,缓冲字符,最终得到一个输出缓冲流对象streamReader
最后再读取,就可以了