feat: 日志分页列表和添加操作日志记录
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
package com.youlai.system.controller;
|
||||
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.system.common.model.Option;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.form.DeptForm;
|
||||
import com.youlai.system.model.query.DeptQuery;
|
||||
import com.youlai.system.model.vo.DeptVO;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.SysDeptService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -31,8 +33,9 @@ public class SysDeptController {
|
||||
|
||||
private final SysDeptService deptService;
|
||||
|
||||
@Operation(summary = "获取部门列表")
|
||||
@Operation(summary = "部门列表")
|
||||
@GetMapping
|
||||
@LogAnnotation( value = "部门列表",module = LogModuleEnum.DEPT)
|
||||
public Result<List<DeptVO>> getDeptList(
|
||||
DeptQuery queryParams
|
||||
) {
|
||||
@@ -40,7 +43,7 @@ public class SysDeptController {
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
@Operation(summary = "获取部门下拉列表")
|
||||
@Operation(summary = "部门下拉列表")
|
||||
@GetMapping("/options")
|
||||
public Result<List<Option>> getDeptOptions() {
|
||||
List<Option> list = deptService.listDeptOptions();
|
||||
|
||||
@@ -4,10 +4,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.common.model.Option;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.model.vo.DictPageVO;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.system.model.form.DictForm;
|
||||
import com.youlai.system.model.query.DictTypePageQuery;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.SysDictService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -34,6 +36,7 @@ public class SysDictController {
|
||||
|
||||
@Operation(summary = "字典分页列表")
|
||||
@GetMapping("/page")
|
||||
@LogAnnotation( value = "字典分页列表",module = LogModuleEnum.DICT)
|
||||
public PageResult<DictPageVO> getDictPage(
|
||||
DictTypePageQuery queryParams
|
||||
) {
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.youlai.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.model.query.RolePageQuery;
|
||||
import com.youlai.system.model.vo.LogPageVO;
|
||||
import com.youlai.system.service.SysLogService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
|
||||
/**
|
||||
* 日志控制层
|
||||
*
|
||||
* @author Ray
|
||||
* @since 2022/10/16
|
||||
*/
|
||||
@Tag(name = "08.日志接口")
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/logs")
|
||||
@RequiredArgsConstructor
|
||||
public class SysLogController {
|
||||
|
||||
private final SysLogService logService;
|
||||
|
||||
@Operation(summary = "日志分页列表")
|
||||
@GetMapping("/page")
|
||||
public PageResult<LogPageVO> listPagedLogs(
|
||||
RolePageQuery queryParams
|
||||
) {
|
||||
Page<LogPageVO> result = logService.listPagedLogs(queryParams);
|
||||
return PageResult.success(result);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +1,14 @@
|
||||
package com.youlai.system.controller;
|
||||
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.system.model.form.MenuForm;
|
||||
import com.youlai.system.model.query.MenuQuery;
|
||||
import com.youlai.system.model.vo.MenuVO;
|
||||
import com.youlai.system.common.model.Option;
|
||||
import com.youlai.system.model.vo.RouteVO;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.SysMenuService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
@@ -35,6 +37,7 @@ public class SysMenuController {
|
||||
|
||||
@Operation(summary = "菜单列表")
|
||||
@GetMapping
|
||||
@LogAnnotation( value = "菜单列表",module = LogModuleEnum.MENU)
|
||||
public Result<List<MenuVO>> listMenus(MenuQuery queryParams) {
|
||||
List<MenuVO> menuList = menuService.listMenus(queryParams);
|
||||
return Result.success(menuList);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.youlai.system.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.system.common.model.Option;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
@@ -8,6 +9,7 @@ import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.model.form.RoleForm;
|
||||
import com.youlai.system.model.query.RolePageQuery;
|
||||
import com.youlai.system.model.vo.RolePageVO;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.SysRoleService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -37,6 +39,7 @@ public class SysRoleController {
|
||||
|
||||
@Operation(summary = "角色分页列表")
|
||||
@GetMapping("/page")
|
||||
@LogAnnotation( value = "角色分页列表",module = LogModuleEnum.ROLE)
|
||||
public PageResult<RolePageVO> getRolePage(
|
||||
RolePageQuery queryParams
|
||||
) {
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.youlai.system.common.result.PageResult;
|
||||
import com.youlai.system.common.result.Result;
|
||||
import com.youlai.system.common.util.ExcelUtils;
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import com.youlai.system.model.dto.UserImportDTO;
|
||||
import com.youlai.system.plugin.norepeat.annotation.PreventRepeatSubmit;
|
||||
import com.youlai.system.plugin.easyexcel.UserImportListener;
|
||||
@@ -16,6 +17,7 @@ import com.youlai.system.model.query.UserPageQuery;
|
||||
import com.youlai.system.model.dto.UserExportDTO;
|
||||
import com.youlai.system.model.vo.UserInfoVO;
|
||||
import com.youlai.system.model.vo.UserPageVO;
|
||||
import com.youlai.system.plugin.syslog.annotation.LogAnnotation;
|
||||
import com.youlai.system.service.SysUserService;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -52,6 +54,7 @@ public class SysUserController {
|
||||
|
||||
@Operation(summary = "用户分页列表")
|
||||
@GetMapping("/page")
|
||||
@LogAnnotation( value = "用户分页列表",module = LogModuleEnum.USER)
|
||||
public PageResult<UserPageVO> listPagedUsers(
|
||||
UserPageQuery queryParams
|
||||
) {
|
||||
|
||||
@@ -24,9 +24,9 @@ public interface UserConverter {
|
||||
@Mappings({
|
||||
@Mapping(target = "genderLabel", expression = "java(com.youlai.system.common.base.IBaseEnum.getLabelByValue(bo.getGender(), com.youlai.system.enums.GenderEnum.class))")
|
||||
})
|
||||
UserPageVO bo2PageVo(UserBO bo);
|
||||
UserPageVO toPageVo(UserBO bo);
|
||||
|
||||
Page<UserPageVO> bo2PageVo(Page<UserBO> bo);
|
||||
Page<UserPageVO> toPageVo(Page<UserBO> bo);
|
||||
|
||||
UserForm convertToForm(SysUser entity);
|
||||
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.youlai.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.model.entity.SysLog;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.youlai.system.model.query.RolePageQuery;
|
||||
import com.youlai.system.model.vo.LogPageVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
|
||||
@@ -14,6 +17,7 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
@Mapper
|
||||
public interface SysLogMapper extends BaseMapper<SysLog> {
|
||||
|
||||
Page<LogPageVO> listPagedLogs(Page page, RolePageQuery queryParams);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.youlai.system.model.query;
|
||||
|
||||
import com.youlai.system.common.base.BasePageQuery;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 日志分页查询对象
|
||||
*
|
||||
* @author Ray
|
||||
* @since 2.10.0
|
||||
*/
|
||||
@Schema(description = "日志分页查询对象")
|
||||
@Getter
|
||||
@Setter
|
||||
public class LogPageQuery extends BasePageQuery {
|
||||
|
||||
@Schema(description="关键字(日志内容/请求路径/请求方法/地区/浏览器/终端系统)")
|
||||
private String keywords;
|
||||
}
|
||||
@@ -2,16 +2,18 @@ package com.youlai.system.model.query;
|
||||
|
||||
import com.youlai.system.common.base.BasePageQuery;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 角色分页查询实体
|
||||
* 角色分页查询对象
|
||||
*
|
||||
* @author haoxr
|
||||
* @author Ray
|
||||
* @since 2022/6/3
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "角色分页查询对象")
|
||||
@Getter
|
||||
@Setter
|
||||
public class RolePageQuery extends BasePageQuery {
|
||||
|
||||
@Schema(description="关键字(角色名称/角色编码)")
|
||||
|
||||
59
src/main/java/com/youlai/system/model/vo/LogPageVO.java
Normal file
59
src/main/java/com/youlai/system/model/vo/LogPageVO.java
Normal file
@@ -0,0 +1,59 @@
|
||||
package com.youlai.system.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.youlai.system.enums.LogModuleEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 系统日志分页VO
|
||||
*
|
||||
* @author Ray
|
||||
* @since 2.10.0
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "系统日志分页VO")
|
||||
public class LogPageVO implements Serializable {
|
||||
|
||||
@Schema(description = "主键")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "日志模块")
|
||||
private LogModuleEnum module;
|
||||
|
||||
@Schema(description = "日志内容")
|
||||
private String content;
|
||||
|
||||
@Schema(description = "请求路径")
|
||||
private String requestUri;
|
||||
|
||||
@Schema(description = "请求方法")
|
||||
private String method;
|
||||
|
||||
@Schema(description = "IP 地址")
|
||||
private String ip;
|
||||
|
||||
@Schema(description = "地区")
|
||||
private String region;
|
||||
|
||||
@Schema(description = "浏览器")
|
||||
private String browser;
|
||||
|
||||
@Schema(description = "终端系统")
|
||||
private String os;
|
||||
|
||||
@Schema(description = "执行时间(毫秒)")
|
||||
private Long executionTime;
|
||||
|
||||
@Schema(description = "创建人ID")
|
||||
private Long createBy;
|
||||
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "操作人")
|
||||
private String operator;
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.youlai.system.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.youlai.system.model.entity.SysLog;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.youlai.system.model.query.RolePageQuery;
|
||||
import com.youlai.system.model.vo.LogPageVO;
|
||||
|
||||
/**
|
||||
* 系统日志 服务接口
|
||||
@@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface SysLogService extends IService<SysLog> {
|
||||
|
||||
Page<LogPageVO> listPagedLogs(RolePageQuery queryParams);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
package com.youlai.system.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.youlai.system.model.entity.SysLog;
|
||||
import com.youlai.system.model.query.RolePageQuery;
|
||||
import com.youlai.system.model.vo.LogPageVO;
|
||||
import com.youlai.system.service.SysLogService;
|
||||
import com.youlai.system.mapper.SysLogMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -16,6 +19,17 @@ import org.springframework.stereotype.Service;
|
||||
public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog>
|
||||
implements SysLogService {
|
||||
|
||||
/**
|
||||
* 获取日志分页列表
|
||||
*
|
||||
* @param queryParams 查询参数
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Page<LogPageVO> listPagedLogs(RolePageQuery queryParams) {
|
||||
return this.baseMapper.listPagedLogs(new Page(queryParams.getPageNum(), queryParams.getPageSize()),
|
||||
queryParams);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
Page<UserBO> userPage = this.baseMapper.listPagedUsers(page, queryParams);
|
||||
|
||||
// 实体转换
|
||||
return userConverter.bo2PageVo(userPage);
|
||||
return userConverter.toPageVo(userPage);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user