package com.dayrain.log.controller;
import com.dayrain.log.core.JdkFindEngine;
import com.dayrain.log.core.LinkCredential;
import com.dayrain.log.core.PageControl;
import com.dayrain.log.core.PageControlGroup;
import com.dayrain.log.core.constants.ServerCode;
import com.dayrain.log.core.utils.JsonUtils;
import com.dayrain.log.core.utils.NetUtils;
import com.dayrain.log.entity.JsonParam;
import com.dayrain.log.entity.Page;
import com.dayrain.log.entity.PageGroup;
import com.dayrain.log.entity.R;
import com.fasterxml.jackson.databind.node.ObjectNode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.io.FileNotFoundException;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
@Slf4j
@RestController
@RequestMapping("/view")
public class ViewController {
@PostMapping("/page/query")
public R query(HttpServletRequest request, @RequestBody JsonParam jsonParam) throws FileNotFoundException {
long pageIndex = jsonParam.getLong("pageIndex");
String fileUrl = jsonParam.getString("fileUrl");
long pageSize = jsonParam.getLong("pageSize");
PageControl control = getControl(NetUtils.getIpAddr(request), fileUrl);
if(pageSize != control.getPageSize()) {
control.setPageSize(pageSize);
control.refresh();
}
Page page = control.getPage(pageIndex - 1);
System.out.println(pageIndex - 1);
return R.success(new String(page.bytes, StandardCharsets.UTF_8));
}
@PostMapping("/pagesize/refresh")
public R pageSizeRefresh(HttpServletRequest request, @RequestBody JsonParam jsonParam) throws FileNotFoundException {
String fileUrl = jsonParam.getString("fileUrl");
long pageSize = jsonParam.getLong("pageSize");
PageControl control = getControl(NetUtils.getIpAddr(request), fileUrl);
if(pageSize != control.getPageSize()) {
control.setPageSize(pageSize);
control.refresh();
}
return R.success();
}
@PostMapping("/page/info")
public R info(HttpServletRequest request, @RequestBody JsonParam jsonParam) throws FileNotFoundException {
String fileUrl = jsonParam.getString("fileUrl");
PageControl control = getControl(NetUtils.getIpAddr(request), fileUrl);
ObjectNode result = JsonUtils.buildNode().put("totalPage", control.getTotalPage())
.put("pageSize", control.getPageSize());
return R.success(result);
}
@PostMapping("/page/search")
public R search(HttpServletRequest request, @RequestBody JsonParam jsonParam) throws FileNotFoundException {
String fileUrl = jsonParam.getString("fileUrl");
String keyword = jsonParam.getString("keyword");
long startIndex = jsonParam.getLong("startIndex");
long endIndex = jsonParam.getLong("endIndex");
PageControl control = getControl(NetUtils.getIpAddr(request), fileUrl);
JdkFindEngine jdkFindEngine = new JdkFindEngine();
PageGroup pageGroup = jdkFindEngine.find(control, startIndex - 1, endIndex - 1, keyword);
if (pageGroup.getIndexes().size() > 5000) {
return R.fail(ServerCode.OVERFLOW, pageGroup.getIndexes().size(), "结果超过5000条");
}
Collections.reverse(pageGroup.getIndexes());
return R.success(pageGroup);
}
@PostMapping("/realtime")
public R realtime(HttpServletRequest request, @RequestBody JsonParam jsonParam) throws FileNotFoundException {
String fileUrl = jsonParam.getString("fileUrl");
log.info("load realtime log");
PageControl control = getControl(NetUtils.getIpAddr(request), fileUrl);
String realtimeContent = control.getRealtimeContent();
return R.success(realtimeContent);
}
@PostMapping("/refresh")
public R refresh(HttpServletRequest request, @RequestBody JsonParam jsonParam) throws FileNotFoundException {
String fileUrl = jsonParam.getString("fileUrl");
PageControl control = getControl(NetUtils.getIpAddr(request), fileUrl);
control.refresh();
return R.success();
}
private PageControl getControl(String ip, String fileUrl) throws FileNotFoundException {
LinkCredential linkCredential = new LinkCredential(ip, fileUrl);
return PageControlGroup.getControl(linkCredential);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载体验!下载完使用问题请私信沟通。 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 【资源说明】 基于Java的大文件日志查询系统源码.zip基于Java的大文件日志查询系统源码.zip基于Java的大文件日志查询系统源码.zip基于Java的大文件日志查询系统源码.zip基于Java的大文件日志查询系统源码.zip基于Java的大文件日志查询系统源码.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于Java的大文件日志查询系统源码.zip (38个子文件)
pom.xml 2KB
src
main
resources
logback.xml 3KB
static
js
jquery-3.6.4.js 286KB
jquery.cookie.js 3KB
file.js 23B
bootstrap.bundle.min.js 79KB
bootstrap-select.js 125KB
css
bootstrap.min.css 227KB
bootstrap-select.min.css 11KB
helper.css 139B
index.html 22KB
application.yml 22B
java
com
dayrain
log
LogViewStarter.java 1KB
controller
FileController.java 2KB
ViewController.java 5KB
core
PageControlGroup.java 1KB
ServerException.java 163B
LuceneFindEngine.java 360B
PageAbbr.java 241B
LinkCredential.java 257B
utils
NetUtils.java 2KB
JsonUtils.java 380B
DateUtils.java 64B
FileUtils.java 971B
FindEngine.java 438B
PageConstants.java 106B
PageControl.java 2KB
constants
ServerCode.java 160B
JdkFindEngine.java 1KB
FileRandomAccessReader.java 953B
entity
JsonParam.java 881B
PageGroup.java 452B
Page.java 364B
R.java 825B
config
WebConfig.java 907B
test
com
dayrain
log
core
PageControlTest.java 527B
logs
sys_2023-04-05.log 2KB
info_2023-04-05.log 1003B
共 38 条
- 1
资源评论
北航程序员小C
- 粉丝: 2622
- 资源: 1828
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功