Skip to content

Commit 1d92b24

Browse files
committed
feat: 添加 Api log 入库及查询接口
1 parent ba2012f commit 1d92b24

12 files changed

Lines changed: 581 additions & 81 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package top.cadecode.uniboot.controller.system;
2+
3+
import cn.hutool.core.util.ObjectUtil;
4+
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5+
import io.swagger.annotations.Api;
6+
import io.swagger.annotations.ApiOperation;
7+
import lombok.RequiredArgsConstructor;
8+
import lombok.extern.slf4j.Slf4j;
9+
import org.springframework.validation.annotation.Validated;
10+
import org.springframework.web.bind.annotation.PostMapping;
11+
import org.springframework.web.bind.annotation.RequestBody;
12+
import org.springframework.web.bind.annotation.RequestMapping;
13+
import org.springframework.web.bind.annotation.RestController;
14+
import top.cadecode.uniboot.common.annotation.ApiFormat;
15+
import top.cadecode.uniboot.common.response.PageResult;
16+
import top.cadecode.uniboot.system.bean.po.SysLog;
17+
import top.cadecode.uniboot.system.bean.vo.SysLogVo.SysLogPageVo;
18+
import top.cadecode.uniboot.system.convert.SysLogConvert;
19+
import top.cadecode.uniboot.system.request.SysLogRequest.SysLogPageRequest;
20+
import top.cadecode.uniboot.system.service.SysLogService;
21+
22+
import javax.validation.Valid;
23+
import javax.validation.constraints.NotEmpty;
24+
import java.util.List;
25+
26+
/**
27+
* 日志管理
28+
*
29+
* @author Cade Li
30+
* @since 2023/5/26
31+
*/
32+
@ApiFormat
33+
@Slf4j
34+
@RequiredArgsConstructor
35+
@Api(tags = "日志管理")
36+
@RequestMapping("system/log")
37+
@RestController
38+
@Validated
39+
public class SysLogController {
40+
41+
private final SysLogService logService;
42+
43+
@ApiOperation("查询列表")
44+
@PostMapping("page")
45+
public PageResult<SysLogPageVo> page(@RequestBody @Valid SysLogPageRequest request) {
46+
Page<SysLog> page = logService.lambdaQuery()
47+
.setEntity(SysLog.builder()
48+
.exceptional(request.getExceptional())
49+
.build())
50+
.eq(ObjectUtil.isNotEmpty(request.getCreateTime()), SysLog::getCreateTime, request.getCreateTime())
51+
.in(ObjectUtil.isNotEmpty(request.getLogTypeList()), SysLog::getLogType, request.getLogTypeList())
52+
.likeRight(ObjectUtil.isNotEmpty(request.getAccessUser()), SysLog::getAccessUser, request.getAccessUser())
53+
.like(ObjectUtil.isNotEmpty(request.getUrl()), SysLog::getUrl, request.getUrl())
54+
.orderByDesc(SysLog::getCreateTime)
55+
.page(new Page<>(request.getPageNumber(), request.getPageSize()));
56+
List<SysLogPageVo> voList = SysLogConvert.INSTANCE.poToVo(page.getRecords());
57+
return new PageResult<>((int) page.getTotal(), voList);
58+
}
59+
60+
@ApiOperation("查询列表")
61+
@PostMapping("delete")
62+
public boolean delete(@RequestBody @NotEmpty List<Long> idList) {
63+
return logService.removeBatchByIds(idList);
64+
}
65+
66+
}

common/src/main/java/top/cadecode/uniboot/common/annotation/ApiLogger.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package top.cadecode.uniboot.common.annotation;
22

3+
import top.cadecode.uniboot.common.enums.LogTypeEnum;
4+
35
import java.lang.annotation.*;
46

57
/**
@@ -13,4 +15,23 @@
1315
@Documented
1416
public @interface ApiLogger {
1517
boolean value() default true;
18+
19+
LogTypeEnum type() default LogTypeEnum.OTHER;
20+
21+
String description() default "";
22+
23+
/**
24+
* 启用持久化
25+
*/
26+
boolean enableSave() default false;
27+
28+
/**
29+
* 保存参数
30+
*/
31+
boolean saveParams() default true;
32+
33+
/**
34+
* 保存结果
35+
*/
36+
boolean saveResult() default true;
1637
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package top.cadecode.uniboot.common.enums;
2+
3+
import com.baomidou.mybatisplus.annotation.EnumValue;
4+
import com.fasterxml.jackson.annotation.JsonValue;
5+
import lombok.Getter;
6+
7+
/**
8+
* Api log 类型
9+
*
10+
* @author Cade Li
11+
* @since 2023/5/26
12+
*/
13+
@Getter
14+
public enum LogTypeEnum {
15+
16+
/**
17+
* curd
18+
*/
19+
QUERY("Query"),
20+
UPDATE("Update"),
21+
REMOVE("Remove"),
22+
ADD("Add"),
23+
/**
24+
* 鉴权
25+
*/
26+
AUTH("Auth"),
27+
/**
28+
* 导入导出
29+
*/
30+
IMPORT("Import"),
31+
EXPORT("Export"),
32+
/**
33+
* 上传下载
34+
*/
35+
UPLOAD("Upload"),
36+
DOWNLOAD("Download"),
37+
/**
38+
* 其他
39+
*/
40+
OTHER("Other")
41+
;
42+
43+
@EnumValue
44+
@JsonValue
45+
private final String type;
46+
47+
LogTypeEnum(String type) {
48+
this.type = type;
49+
}
50+
}

0 commit comments

Comments
 (0)