ApiLogController.java
5.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
package com.huaheng.system.controller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huaheng.common.core.utils.StringUtils;
import com.huaheng.common.core.utils.poi.ExcelUtil;
import com.huaheng.common.core.web.controller.BaseController;
import com.huaheng.common.core.web.domain.AjaxResult;
import com.huaheng.common.core.web.page.PageDomain;
import com.huaheng.common.core.web.page.TableDataInfo;
import com.huaheng.common.core.web.page.TableSupport;
import com.huaheng.common.security.annotation.PreAuthorize;
import com.huaheng.system.api.domain.ApiLog;
import com.huaheng.system.api.domain.SysOperLog;
import com.huaheng.system.service.ApiLogService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@RestController
@RequestMapping("/apiLog")
@Api(tags = "接口日志")
public class ApiLogController extends BaseController {
@Resource
private ApiLogService apiLogService;
@PreAuthorize(hasPermi = "system:apiLog:list")
@GetMapping
public TableDataInfo list(ApiLog apiLog, String beginTime, String endTime) {
LambdaQueryWrapper<ApiLog> wrapper = Wrappers.lambdaQuery();
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
wrapper.like(StrUtil.isNotEmpty(apiLog.getApiName()), ApiLog::getApiName, apiLog.getApiName())
.like(StrUtil.isNotEmpty(apiLog.getApiMethod()), ApiLog::getApiMethod, apiLog.getApiMethod())
.like(StrUtil.isNotEmpty(apiLog.getIp()), ApiLog::getIp, apiLog.getIp())
.like(StrUtil.isNotEmpty(apiLog.getRequestFrom()), ApiLog::getRequestFrom, apiLog.getRequestFrom())
.like(StrUtil.isNotEmpty(apiLog.getResponseBy()), ApiLog::getResponseBy, apiLog.getResponseBy())
.like(StrUtil.isNotEmpty(apiLog.getUrl()), ApiLog::getUrl, apiLog.getUrl())
.like(StrUtil.isNotEmpty(apiLog.getHttpCode()), ApiLog::getHttpCode, apiLog.getHttpCode())
.like(StrUtil.isNotEmpty(apiLog.getRetCode()), ApiLog::getRetCode, apiLog.getRetCode())
.gt(ObjectUtil.isNotEmpty(apiLog.getDuration()), ApiLog::getDuration, apiLog.getDuration())
.apply(StringUtils.isNotEmpty(endTime),
"date_format (requestTime,'%Y-%m-%d') <= date_format('" + endTime + "','%Y-%m-%d')")
.ge(StringUtils.isNotEmpty(beginTime), ApiLog::getRequestTime, beginTime);
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
Page<ApiLog> page = new Page<>(pageNum, pageSize);
IPage<ApiLog> iPage = apiLogService.page(page, wrapper);
return getMpDataTable(iPage.getRecords(), iPage.getTotal());
} else {
List<ApiLog> list = apiLogService.list(wrapper);
return getDataTable(list);
}
}
@PreAuthorize(hasPermi = "system:apiLog:export")
@PostMapping("/export")
@ApiOperation(value = "导出操作日志")
public void export(HttpServletResponse response, ApiLog apiLog, String beginTime, String endTime) throws IOException {
LambdaQueryWrapper<ApiLog> wrapper = Wrappers.lambdaQuery();
wrapper.like(StrUtil.isNotEmpty(apiLog.getApiName()), ApiLog::getApiName, apiLog.getApiName())
.like(StrUtil.isNotEmpty(apiLog.getApiMethod()), ApiLog::getApiMethod, apiLog.getApiMethod())
.like(StrUtil.isNotEmpty(apiLog.getIp()), ApiLog::getIp, apiLog.getIp())
.like(StrUtil.isNotEmpty(apiLog.getRequestFrom()), ApiLog::getRequestFrom, apiLog.getRequestFrom())
.like(StrUtil.isNotEmpty(apiLog.getResponseBy()), ApiLog::getResponseBy, apiLog.getResponseBy())
.like(StrUtil.isNotEmpty(apiLog.getUrl()), ApiLog::getUrl, apiLog.getUrl())
.like(StrUtil.isNotEmpty(apiLog.getHttpCode()), ApiLog::getHttpCode, apiLog.getHttpCode())
.like(StrUtil.isNotEmpty(apiLog.getRetCode()), ApiLog::getRetCode, apiLog.getRetCode())
.gt(ObjectUtil.isNotEmpty(apiLog.getDuration()), ApiLog::getDuration, apiLog.getDuration())
.apply(StringUtils.isNotEmpty(endTime),
"date_format (requestTime,'%Y-%m-%d') <= date_format('" + endTime + "','%Y-%m-%d')")
.ge(StringUtils.isNotEmpty(beginTime), ApiLog::getRequestTime, beginTime);
List<ApiLog> apiLogList = apiLogService.list(wrapper);
ExcelUtil<ApiLog> util = new ExcelUtil<ApiLog>(ApiLog.class);
util.exportExcel(response, apiLogList, "接口日志");
}
@ApiOperation(value = "根据id查询")
@GetMapping("/{id}")
public AjaxResult getById(@PathVariable("id") Integer id) {
return AjaxResult.success(apiLogService.getById(id));
}
}